The CMU Mach-US Multiserver Operating System
The Mach-US system is an OS developed as part of the
Carnegie Mellon MACH project.
It is comprised of a set of servers, each of which supports
orthogonal system services. For example, instead of a single server
or monolithic OS supplying all of the system services,
the Mach Multiserver (Mach-US) has several servers: a process manager
a file server, a tty server, an authentication server,
a network server, etc. It also has and emulation library that is mapped
dynamically into each user process, and uses the system servers to support
the application programmers interface (API) of the UNIX operating system.
The Mach-US Architecture
Mach-US: Properties of the CMU Mach Multi-server OS
-
Mach-US is an object-oriented multi-server OS
-
Implemented in C++ upon the Mach3.0 microkernel
-
Symmetric, has no central OS server
-
Runs unmodified UNIX BSD4.3 binaries
Mach-US: Research Rationale
-
Multiple system servers on a microkernel:
We wanted discover how
effective Multiple system servers on a Microkernel could be
in order to achieve better configability,
replaceablity, and security separation
of coherent subsystems of an OS implementation
-
Application Programmer Interface (API) neutral OS services :
We wished to determine if it is reasonable to
support multiple Application Programmer Interfaces,
like those of UNIX or OS2,
on the same standardized OS subsystems and interfaces.
Such standardized subsystems or interfaces are said to be
"API Neutral"
-
Remote Method Invocation (RMI) for OS services/objects
We wanted to evaluate object technology with Remote Method
Invocation for such a multi-server system
-
Client side OS computation:
to evaluate moving OS computation into the
client process to see how it might lower the load on the OS services
-
UNIX API re-implementation:
And to determine the feasibility of a UNIX implementation
in such an environment.
Mach-US: Status
-
Runs UNIX binaries:
Mach-US runs the day-to-day Unix utilities.
It does standard compilation, and has network access.
-
Daily UNIX utilities: ls, emacs, find, ...
-
Compilation: gcc, make, cpp, ...
-
Net Access: telnet(d), ftp(d), inetd
-
System Useability: The system is used/useable by researchers today.
-
Development environment for Mach-US test software:
It is used to write and build all the software to test
the system itself.
-
Self Building: And Mach-US has built itself.
-
Users say: "It feels like a regular UNIX"
Recent Mach-US Events
-
Usenix'95 Publication: "Mach-US UNIX On Generic OS Object Servers".
Paper examining the Mach-US operation system, and supplies an
analysis of the OS architectural research issues addressed
by its implementation. Presented in January'95 at the Usenix'95 Technical
Conference.
-
TechReport CMU-CS-94-191: "Client-Server Interactions in Multi-Server Operating Systems: The Mach-US Approach" 9/94.
Paper describing requirements placed upon client-server interaction
in a multi-server operating system and how to answer those requirements.
Addressed are the problems of binding maintenance in the face of:
remote method invocation,
forking, binding transfer, authentication,
asynchronous interruption, and client crashes.
-
Final Feature Release 10/31/94. Primary developement of the
system has been completed. Ongoing support exists for current and future
users/researchers. Code base additions/corrections made as necessary.
Tech Transfer
-
Active:
-
University of AZ - xKernel, Actively running and modifying the system.
Using Mach-US with development of security protocols
-
Talking:
-
University of Michigan Sechrest Group, sechrest@eecs.umich.edu
-
NCSC Synergy, Jeff_Turner@ncsc.mil
-
Syracuse University CASE/ECE SE Lab, craig@cat.syr.edu
-
University of Houston, CS Dept. johnson@cs.uh.edu