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
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 [email protected] 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 (126.96.36.199)
At this point the normal ftp commands will work. There are several
infomation files in that directory which should explain things
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.
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.
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".
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.