To: Burns Fisher; Info-VAX@Mvb.Saic.Com Subject: RE: Linux in OpenVMS Galaxy (was Re: "Compaq Strategic Directions" Presentation Now Posted -----Original Message----- From: Burns Fisher [mailto:fisher@nospam.skylab.enet.dec.com] Sent: Thursday, July 01, 1999 12:07 PM To: Info-VAX@Mvb.Saic.Com Subject: Re: Linux in OpenVMS Galaxy (was Re: "Compaq Strategic Directions" Presentation Now Posted There are multiple pieces to the Galaxy "equation" and we tend to apply the term Galaxy to all of them. This may be part of the confusion about what a Galaxy actually is. The Galaxy Software Architecture is an architecture that allows multiple instances of operating systems to partition or share some resources. This includes stuff like how to have locks across instances, how to allocate shared memory across instances, and (very important) how to deal with a failing or non-cooperative instance. In order to implement the Galaxy Software Architecture, you need a machine (and console) that supports soft partitions. We have sometimes called machines "Galaxy-class" machines (no, no, we don't watch Star Trek here!). Once you have the machine, then the operating system has to deal with several different issues: 1) The console tells each OS instance what resources it can use. In particular, the console builds a data structure that tells what belongs to whom. The OS must have to code to pay attention to this data structure. For example, don't probe (or even map in VMS' case) BUS 2 because it belongs to the other guy, or don't map physical memory between N and M because it belongs to the other guy. Once you have this data structure, the console steps out of the way (until something changes) and the OSes run on the bare hardware, possibly occasionally consulting the data structure (called the configuration tree). Notice that with this one piece, multiple OS instances can be booted. This is what I did with Linux for the DECUS demo. Notice also that you can do this with hard partitions 2) The console can exchange messages with the OSes about configuration changes such as CPU reassignment. The OS then does something about the message or not. I wrote Linux code to receive a message about receiving a new CPU, and to send a message about giving the CPU back. I did not write any code to actually do something with it. Depending on how you define hard partitions you may or may not be able to do this with hard partitions. 3) If an OS has shared memory, it can then have code to implement the whole Galaxy Software Archecture stuff which includes stuff like membership services, locking services, shared memory management, etc. All this stuff (mostly) does not have any console intervention. I did not, but could have implemented this on Linux. VMS has it implemented but you can turn it on and off with the GALAXY sysgen parameter. Notice that in all cases, the OS is not running on a virtual machine. In the first two cases it is using the console fairly infrequently to coordinate its ownership of resources. In the third case it is using procedures and interfaces defined by the Galaxy Software Architecture as well as shared memory to coordinate access to shared resources. (I did not do any of this for Linux. Another engineer and I did do a last-minute hack to show that Linux and VMS could share memory, but it was not even ready for 3 to 4 AM, say nothing of prime time.) This stuff is probably not doable with hard partitions, again depending on how you define hard partitions. Burns Fisher VMS Engineering ("Author" of Linux/VMS Galaxy Demo)