Subject: Distributions of Mach Author: Mary R. Thompson Date: Oct 1994 ------------------------------------------ Mach 2.5 -------- The Mach 2.5 distribution is a complete operating system that provides binary compatibility with most Unix application programs. It is based on the Mach 2.5 integrated kernel which has been mostly unchanged since early 1992. CMU now distributes Mach 2.5 for i386/i486 AT based machines and PS/2 machines. The non-kernel part of this distribution is based on the Tahoe release of BSD4.3. This distribution is free of charge but the recipient must have a Fourth Berkeley Software Distribution (4.3BSD) license (which in turn requires an AT&T/USL/Novell source license). This release is distributed by internet transfer(SUP) only. By now both the Mach integrated kernel and the 4.3BSD commands and libraries are fairly obsolete. If you are interested in more details about this distribution see FAQ/i386_announce. Mach 3.0 -------- The Mach 3.0 distribution is targeted to OS researchers interested in micro-kernels. As a result we have not attempted to provide a complete Unix environment as we did for Mach 2.5. The distribution consists of sources for the micro-kernel, Unix server, some Mach programs and the compilation tools needed to build them. The Unix server provides only the functionality of the Unix kernel. Neither sources nor binaries are supplied for a complete Unix environment. However, the Mach 3.0 kernel + the Unix server is compatible with with the Unix libraries and commands that are released as part of the Mach 2.5 release for the i386. If you are getting Mach 3.0 for a DecStation platform, many (but not all) Ultrix binaries will work, but you will need to pick up our Ultrix support programs and relink a few essential Ultrix binaries. Sources and executables are availiable for i386/i486's, DecStations 3100 and 5000, Dec Alpha's and Omron Luna 88k machines. This distribution is done only by electronic transfer over the internet. To get the licensed parts of the software our SUP program must be used. The stable unlicensed parts are available via FTP. See FAQ/ftp.mach3.cmu for more information. Additional unlicensed code is available only via SUP. Descriptions of the various pieces of the Mach 3.0 system follow. 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: DecStations 3100 & 5100, DEC alpha, various i386 boxes and the Omron Luna88k. The pure kernel has been running at CMU since early 1989. Single-Server ------------------------- 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 without recompilation or changes to conform to the new IPC semantics. 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. There are two versions of a U**x server. The orginal one called the Unix server has been in use at CMU since March of 1989. It is based on BSD4.3 kernel code. It supports a complete BSD4.3 environment but at the cost of requiring an AT&T source license. There is a second U**x server called LITES that is almost complete. It is based on BSD 4.4Lite and was written by Johannes Helander at Helsinki University of Technology. CMU will try to provide a resonably up-to-date copy of the sources in our public/src area, but for the most up-to-date version and information you should contact jvh@cs.hut.fi. POE --- An early effort to provide a non-licensed system environment exists called POE. POE is a user application which provides support for a simple user environment and bootstrapping programs designed to be run on the Mach micro-kernel. It uses the existing transparent emulation library used in the single-server environment. It can read but not write to a BSD 4.3 file system, do i/o to /dev/console, and supports some Unix signal semantics. It has no support for networking. 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". Mach_US Multi-Server ------------------------- Mach_US is a more experimental project. The code was released for SUP'ing in Aug. 1994. The complete sources and binaries of the system that supports the Tahoe BSD environment that is released as part of Mach 2.5 can be SUP'ed by any host already enabled to SUP BSD-licensed code. See mach3_supinfo for the SUP control information. 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 was 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. A few of the servers, notably the tty server and the file server do reuse some BSD code, hence the need for a BSD license to get the complete release. The licnese free parts of the sources can be anonymously FTP'ed from public/src/mach_us. WHAT TO DO NEXT --------------- If you want a complete Unix/Mach OS and have access to an i386/486 machine on the internet: Read FAQ/i386_announce and follow the instructions there. If you are already running a Mach variation and want to get new Mach 3.0 sources. Send mail to mach-coordinator@cs.cmu.edu and tell us that you want to SUP Mach 3.0 sources and the machine name and IP address of the machine to which you want to SUP. If you want to look at unlicensed Mach 3.0 sources and have access to a machine runing Unix on the internet. Either: Look at the INDEX file in the public/src directory and FTP what is there. Or: FTP the sources and documentation for SUP from the sup directory and build it for your machine. Send mail to mach-coordinator@cs.cmu.edu and tell us that you want to SUP Mach 3.0 unlicensed code only. Tell us the name and IP address of the machine you are going to SUP onto. Read doc/notes/mach3_supinfo to find out what collections you can SUP. If you want to look at licensed Mach 3.0 sources and have access to a machine runing Unix on the internet. Send mail to mach-coordinator@cs.cmu.edu and request a Mach license. You will need to be able to mail us a copy of the signature page of your 4.3BSD license. FTP the sources and documentation for SUP from sup subdirectory and build it for your machine. You will need to contact us by mail for the encrypting part of SUP. Once we have a signed license back from you, send us the name and IP address of the machine that you are going to SUP onto. Read doc/notes/mach3_supinfo to find out what collections you can SUP.