Subject: Research Distribution of Mach 3.0 Author: Mary R. Thompson Date: Feb, 1991 We are distributing the pure kernel with or without the single server Unix environment to outside research groups. Note that we are not providing a complete operating system and this should not be thought of as an upgrade from Mach 2.5 or 2.6 MSD. In fact, if you are not already running one of those systems, it will be hard to build or run Mach 3.0. At the moment Mach 3.0 with the Unix single server is a bit slower than Mach 2.5/6, is less reliable and subject to frequent changes. The purpose of distributing this system is to enable people to develop programs that will work in this environment. It should not be viewed as a stable operating system. Access to the Unix server requires Berkeley licensing as in Mach 2.5, but access to the kernel itself, Mach libraries, etc. does not. Currently the device drivers, which are part of the kernel, require licenses from the manufacturers as follows: Vax - BSD or Ultrix source license Sun 3 - SunOS 3.5 source license PMAX - No license required i386 - No license required The initial distribution consists of sources only for the kernel, Unix server and some Mach programs. The Unix server provides only the functionality of the Unix kernel. Neither the sources nor binaries are supplied for the complete Unix operating environment. The Mach 3.0 kernel + the Unix server is compatible with Unix BSD4.3 programs, but not with all Mach 2.5 programs. This distribution is done only by electronic transfer over the internet. To get the licensed parts of the software our Mach 2.5 SUP program must be used. The unlicensed parts are available via FTP. The system is under active development both at CMU and OSF and all the pieces are subject to change. Thus you should plan on doing periodic sup updates to keep up with bug fixes, additions and other changes. At the moment the system only builds with Mach 2.5 versions of make and cpp or our modified version of gcc-cpp. Possibly other Mach 2.5 tools are needed as well as our include files. If after reading the rest of this description you are interested in suping the Mach 3.0 sources, and if you have a 3.4 BSD source license, send mail to mach@cs.cmu.edu for further information. If you do not have a BSD source license you can anonymously ftp a compressed tar file of the kernel sources for the i386 and Decstation 3100/5000 platforms. At the moment, the makefiles that come with this release depend on the Mach 2.5/6 make program to build. This program requires a BSD source license so we cannot release it for anonymous ftp. This limits the value of this release to just reading the sources. It is our intent to switch to a non-licensed version of make as soon as possible. Note: CMU does not release Mach 2.5 for the DecStations, so unless you are running OSF/1 you will not be able to build or use these sources. To ftp from CMU PLEASE READ AND FOLLOW THESE INSTRUCTIONS. ftp cs.cmu.edu (128.2.222.173) user: anonymous passwd: (CR) cd mach3 At this point the normal ftp commands will work. There are several infomation files in that directory which should explain things further. Descriptions of the various pieces of the Mach 3.0 system follow. Pure or Micro Kernel The Mach 3.0 micro-kernel provides the following functions: virtual memory managment, inter-process comunication, scheduling primitives and device drivers. It does not provide a file system, tty i/o, network support or other Unix features like signal and Unix tasks. The pure kernel alone does not give you a usable operating system. The Mach 3.0 kernel currently runs on the following platforms: Vax, Sun 3, DecStations 3100 & 5100 and various i386 boxes. The pure kernel has been running at CMU since early 1989 on the Vax. Recent work in this area includes the ports to the other machine types, a new implementation of IPC, the addition of the processor-set support from Mach 2.5 and the removal of AT&T derived code. Single-Server environment The Unix single server complements the Mach micro-kernel by providing ufs and nfs file system support, Unix networking code, Unix tty and signal support. Together they provide an environment that is equivalent to the Unix kernel. Most BSD4.3 binaries should continue to run on this system. Not all Mach 2.5 programs will run with out recompilation or changes to conform to the new IPC semantics. Since March of 1989 we have had a usable operating environment running on top of the pure MACH 3.0 kernel. This environment consists of a multi-thread Unix server running as a user application and a transparent emulation library which resides in each Unix task. The Unix server supports a complete BSD4.3 environment but at the cost of requiring an AT&T license. POE Another effort to provide a non-licensed system environment has been started recently called POE. POE is a user application which supplies support for a simple user environment, such as editing, compiling and bootstrapping, using the existing transparent emulation library used in the single-server environment. POE does not aspire to be a complete Unix kernel environment, but only to give you enough tools to start building traditional "user level applications". Multi-Server environment The Multi-server environment is a more ambitious project which will not be ready for distribution for at least 6 months. The Mach 3.0 "multi-server" emulation system is an effort to produce a new design for a Unix emulator on top of the Mach 3.0 kernel. This design takes full advantage of the new opportunities and technologies offered by the micro-kernel architecture, without being hindered by the history of past implementations. The system is structured as a collection of independent servers and libraries cooperating to provide all the basic functions required by application programs. Each component is designed and built from scratch, and makes no special attempt to reuse any code from previous Unix implementations. The design makes aggressive use of new facilities such as IPC, shared memory, and object-oriented programming. The CMU team is currently working closely with a team at OSF to build a working prototype of a Unix 4.3 BSD emulation. From the CMU side, the emphasis of the design is on understanding the various issues and problems relating to the architecture of emulation systems, and on developing good solutions that are widely applicable in the field of operating system emulation in general, not necessarily limited to Unix. Beyond these considerations, the main goals of this design are to maximize the modularity and flexibility of the resulting system. It should be possible to construct various system configurations around a common framework, and to combine components from multiple sources. Finally, the proposed modular structure must be well-suited to the development of highly-secure system implementations. Unix is a trademark of AT&T.