Organization: IBM Almaden Research Center
Newsgroups: bit.listserv.vmesa-l
Date:         Wed, 14 Oct 1992 17:16:42 -0700
From:         "(Sam Drake)" <drake@ALMADEN.IBM.COM>
Subject:      Re: VM on RS/6000
Comments: To: VMESA-L%UAFSYSB.BITNET@ucbvax.Berkeley.EDU

In article <921014160019.vmesa-l.netforum.interest@almvma.vnet.ibm.com> you
 write:
>        Well ... it wouldn't have to look  *exactly*  like the CP we
>all know and love.   Can the 6K virtualize itself?   Apparently the
>processor in the RTs can (could).

Neither the '6000 nor the RT can self-virtualize.  The RT did indeed
create "virtual machines", with AIX running in one virtual machine (and
other operating systems such as PICK being available, too).  BUT,
unlike a VM/370-style "virtual machine", the virtual machines provided
by the VRM were not exact copies of the real machine.  Specifically,
the I/O model available to virtual machines was VERY different than the
I/O model of the real machine.

The idea was to let the VRM handle all device-dependent stuff, while AIX
stayed above the fray.  So AIX saw all disks alike, with the VRM managing
differences like SCSI vs ESDI.

A practical side-effect of this design was that UNIX developers were
not happy ... suppose you're a vendor that sells a peripheral for UNIX
boxes.  You sell both the hardware and a device driver.  Your device
driver's no good on the RT; you need to both port your UNIX driver to
AIX, *and* write a VRM driver from scratch.  While the resulting design
might have been nice, it wasn't standard, and made the cost of supporting
your hardware on AIX too high.

Self-virtualization is VERY expensive even on S/370 ... UNLESS extensive
assists are supplied (VM Assist, CP Assist, SIE, etc etc).  And
such microcode assists are impossible on a RISC system; hardware
implementations of the assists would probably not be worth the silicon.

>                                       Hasn't  'vrm'  been dropped?

Yes, AIX on the '6000 does not use the VRM; AIX boots directly on the
real hardware, and AIX device drivers speak to the real hardware directly.

>             Mach is the closest thing in the UNIX world to CP.
>(I've been told that you can run Mach on top of Mach,  and it's
>planned to support multiple  "environments",  like DOS and UNIX
>concurrently  (perhaps even OS/2 and/or VMS)  on Mach)
>Dunno if this is exclusive to the micro-kernel.

Yes, this is an interesting feature of "microkernel" style operating
systems.  But it's still not what a VM/370-type would call "virtual
machines".  Essentially, what Mach and similar systems can potentially
is to run programs that were written for a variety of operating systems
FOR THE SAME HARDWARE.  The operating system can tailor the appearance
of it's system call interfaces (SVCs, if you will) so that different
programs see different kernal interfaces ... an OS/2 program sees OS/2
compatible calls, while a DOS program sees DOS compatible calls, for
example.

This does NOT help if you want to run programs written for two
different architectures at once; MACH does not emulate VAX instructions
on a S/370, for example.  Nor does MACH, to my understanding, allow
other operating systems (such as MACH) to run under it; it does not
virtualize the CPU's supervisor state; it simply emulates the system
calls that various operating systems provide to problem state
programs.

--
Sam Drake / IBM Almaden Research Center