2008/05/12

The Labs.Com OS Lab InterOS
Last update 2003/10/21
The Labs - Design & Functionality For The Net

Inter Operating System Approaches

Many OS'es: FreeBSD, NetBSD, OpenBSD, Linux, Solaris, IRIX, MacOS, BeOS, Win3.1, Win95, Win98, WinNT, Win2000 - but how to operate between them?
  1. Virtual Machines
  2. Virtual Network Computing
  3. Emulators
  4. Multiple Machines
  5. Multi-Boot
  6. Win98 + Linux + FreeBSD
  7. Remote Booting Multiple OS
  8. OS Source
  9. Misc. Approaches
InterOS
1. Virtual Machines
Virtualization is one of the new emerging technologies available on PC (it was well known on expensive and large main-frames for long) since the PCs (e.g. x86-based PC) are performance-wise able to virtualize and partially emulate other systems and still be usuable:

VMWare
 On a x86 machine vmware allows to run various OS simultaneously on the same hardware (a hostOS is required: Linux, FreeBSD, or WinXX):
VMWare.Com
Main site

Note: You need at least PII 300 to use this (performance wise).

The virtual machines boots its own BIOS, and the hostOS can provide a virtual hard-disk, or can use a physical disk too. You actually install your guestOS on your hostOS as if you would have a plain physical machine (check our VMware-section).

OSes which we got to work with VMWare: Linux, FreeBSD NetBSD, OpenBSD, QNX, Win95/98.

It is definitly recommended this product, it is worth the money.

Plex86
 Another approach is Plex86, few guest OSes (DOS, Linux, Win95, NetNSD) are booting, host OS Linux & NetBSD, yet very slow (Dec 2000):
Plex86.Org
Main site (formely freemware.org)

The project is very promising as it provides virtual PC in source-code and therefore a lot of guest- as well host-OSes will become supported as time unfolds.

Linux In Linux
 UML (User Mode Linux) is truly a nice piece of software as it allows to run multiple Linux-kernels and filesystem (guest) within on a Linux-machine (host), a feature mainframes have:
UML (User Mode Linux)
Running Linux in user-mode(space) of Linux; check also UML-user list archive
  1. Download a root-filesystem e.g. root_fs_debian2.2_small
    and make a sym-link

     ln -s root_fs_debian2.2_small root_fs 

  2. Download the UML-kernel e.g. linux-2.4.0-test12
    and execute the kernel

     ./linux-2.4.0-test12 

The advantage is obvious:

  • great test-bed for other Linux variants
  • fastest virtualization (faster than vmware or plex86)
  • advanced resource accounting: nice the guest-Linux appropriatly on the host
  • true virtualized web-hosting
and beside, it prooves the Linux design being consistant in itself. The file-system is a flat-file and easily be backed-up or moved arround on other machines.

FreeBSD in FreeBSD
 FreeBSD has a nice feature called jail and enables to run FreeBSD within itself, check man jail:

The features:

  • virtual machines (with their own IP) in FreeBSD
  • advanced resource accounting possible for each jailed enviroment
Unlike UML does FreeBSD's jail use the host file-system and is accessible easily from the host. See Jail Tools, a toolset we developed for handling jails.

Misc Virtualism
 
a386
C programming library which provides a virtual machine. The virtual machine is an abstraction of an Intel 386 running in protected mode.
Brown Simulator
High-level machine simulator intended for operating system prototyping/instruction.
x86-64 (IA-64) AMD SimNow!
AMD's IA-64 software simulator
Win4Lin
Windows under Linux (commercial, $$)
LINE
Running linux-binaries under WinXX (GPL, free)
WinaXe
X11-server for WinXX (commercial, $$)

InterOS
2. Virtual Network Computing

VNC is based on synchronizing screen-buffer from the server to a client. VNC by ATT/UK has developed VNC-servers for
  • X11,
  • Win95/NT,
  • MacOS,
  • and other platforms (3rd party contributions)
and many clients for X11, WinXX, MacOS, and even as Java-applet; this means you can connect with any browser to your machine; VNC seems better supported than the (rather complex) X11 standard (status Feb 2001)
Virtual Network Computing (VNC)
Main homepage (GPL source)
WorkSpot.Com
Free linux desktop/account via VNC java-applet

InterOS
3. Emulators

Emulators is the slow way to run an alternate OS:

MacOS
 To run MacOS under Unix, BeOS or even WinXX:
Basilisk II: MacOS for Unix/BeOs/WinXX
Open source MacOS 68k emulator (requires MacOS ROM)
compile it, get yourself the disk-image (e.g. MacOS 7.5.5), and the MacOS ROM too (either 512K or 1MB). More info in MacOS-section.

Fun: Download MacVNC, and run Basilisk II under WinXX, on the WinXX start the VNC-server, then start within the Mac/Basilisk-II the MacVNC (full-screen) and . . . you will happen is a cascading recursive mirror-in-mirror . . . MacVNC views itself through Basilisk!

If you have an PPC and you run Linux, consider this
Mac on Linux
Run MacOS under Linux on a PPC (great feature!)

PalmPilot
 
PDA Lab: PalmPilot
XCopilot, PlamOS under X11

Others
 
OpenDirectory: Emulators
Overview

InterOS
4. Multiple Machines

The easiest approach is when you dedicate several machines to different OS'es. My recommendation is to get so called "all-in-one" boards which have video, sound and sometimes LAN (ethernet) on-board, e.g. Shuttle-599 "all-in-one" motherboard (video+sound on-board) (May 2000) with K6-2/500, with 64MB or 128MB DIMM, and 10/15/20GB IDE for less than $400 all for each machine. Also (Jan 2001) ASUS-CUSI-FX "all-in-one" (video+sound+ethernet on-board) with Celeron 700 and 20GB IDE for ~$360 each (no case, no kb/mouse or monitor).

Together with an 4x or 8x KVM Switch (check iogear.com for 4x or 8x switches incl. cables): one screen, keyboard and mouse to multiple machines:

  • Server: NFS (Network File System), Samba (NFS for WinXX), DNS (Domain Name Service), NAT (Network Address Translation)
  • Workstation: Programming and graphic-design
  • Lab-machine: multi-OS boot for testing releases, distributions and experimental kernels
InterOS Example
Some sample installation
MultiHead
Some infos on running multiple monitors
x86 PC
Some general infos on building a PC

InterOS
5. Multi-Boot: Win98 + Linux + FreeBSD

Here a procedure for a three-OS machine:
  1. boot Linux-Debian CD, make four partitions: 1) vfat (type=0c), 2) bsd/386 (type=a5), 3) linux (type=83), 4) linux-swap (type=82)
  2. install Linux-Debian on 3rd partition (it will recognize it automatically), install LILO on root-filesystem (not on the MBR!)
  3. install Win98 from CD, it will use the first partition and format it, go through all til done (Win98 may host QNX, MacOS Emulator, BeOS 5)
  4. install FreeBSD from CD:
    • fdisk will show freebsd-partition, don't alter anything
    • disklabel will show DOS parition, leave it untouched; add swap-space (twice your physical memory) plus root-filesystem (to keep it simple), it will put it within the 2nd partition (Note: FreeBSD partition(s) live within a slice; a slice is a partition in Linux/Windows terminology).
    • install boot-loader on MBR, it will recognize the DOS & Linux automatically:

       F1   Windows 
       F2   FreeBSD 
       F3   Linux 
        
       Default: F1 

It will take you aprx. 3hrs to install all three OSes, assuming you are experienced with all three OS installs. More experiences and details you find in InterOS Example.

InterOS
6. Remote Booting Multiple OS

An even more flexible solution is to boot machines diskless from a server which provides the OS. Yet, not all OSes provide diskless operation (such as WinXX, BeOS), most UNIX'es do allow diskless operation.

FreeBSD Diskless
Our own section

A disk-dump/boot where the OS-image (the content of an OS including applications is stored as one large file aka as disk-image) approach is
Remote OS-Booting HowTo
Booting various OS'es

How It Works
 To sum up the functionality: the server has the disk-image (e.g. 200MB) of an OS with the minimal configuration of a working OS; once the client boots the server provides this image and it will be unpacked on the local disk of the client and then booted. The user data are either provided by SAMBA (for WinXX systems) or ordinary NFS for UNIX-based OSes.

OS-image
 The OS-image is created with tools (e.g. mrzip) available at the above mentioned URL, this image you can store on the server. Use one test machine to install your OS you like to boot remotely, and generate from each OS a disk-image. Be conscious of is about the hardware configuration, as some OS (e.g. WinXX or even Linux) are very picky about different client-hardware configurations, therefore the OS-image should be made with the idea of supporting as many different hardware configurations as possible to be flexible by the time.

Advantage
 The advantage is that the OS is in a defined state and can only altered temporarly by the client as it runs a copy of the OS-image from the server, and the client cannot alter the original on the server, only the user data are on the server read/writeable. Additionally almost every PC-based OS can be booted this way: WinXX, QNX, BeOS, *BSD, Linux.

Disadvantage
 The disadvantage is that the very first booting of an OS can take up at least 90secs til 100MB compressed image is transfered to the client on a 100Mbit ethernet network, for the entire booting may use up to 5 mins (fast-format, dumping OS-image).

InterOS
7. OS Source

For the people who have a fast link to the net . . .
OS Lab
Brief overview of some OSes
LinuxISO.Org
ISO Images of common Linux & *BSD distributions (SuSE & Mandrake are the best May 2000)
Kernel.Org
Linux Kernel archive - unix workstation & multimedia
FreeBSD.Org
Homepage - server appliance
NetBSD.Org
Homepage - server appliance
OpenBSD.Org
Homepage - server appliance
BeBits.Com
BeOS Resource center
Sun: Solaris
Solaris 8.x - reliable server
OS Opinion.Com
News site about OS'es
FreeOS.Com
Free OS news site
Nick Rozanski: Multi Boot
Very good info about multios partitioning (a bit outdated though)

InterOS
8. Misc. Approaches

Other approaches worth to be mentioned:
Java Telnet Applet
Fully featured telnet applet
MindTerm
Another java-applet telnet/ssh

                                                                                                                                   

MacOS OS LabQemu

Last update 2003/10/21

All Rights Reserved - (C) 1997 - 2008 by The Labs.Com

Top of Page

The Labs.Com