[comp.os.mach] Some references on Mach..

ercal@mcs213a.cs.umr.edu (Dr. Fikret Ercal) (10/13/90)

Thanks for the responses to my request for references on Mach.
Here is a list I compiled from those responses :



			  MACH  BIBLIOGRAPHY

			   mt  Xinu,  Inc.
			  2560  Ninth Street
			 Berkeley, CA  94710

			 September  1,  1989
			     Version 0.0
				DRAFT


     This bibliography suggests background reading about Mach for the
forthcoming mt Xinu/CMU operating system release.*1 The release will
contain the Mach kernel and libraries, based on CMU Release 2.5; both
the Network File System (NFS) and the Andrew File System (AFS); the X
Window System, Version 11, Release 3 (including the Andrew Toolkit and
Message System); Camelot; the 4.3BSD-tahoe libraries and utilities;
and various user-contributed software.

     We have tried to include enough information about unpublished
works so that you will be able to obtain copies without too much
trouble. Whenever possible, we have included where to get these
documents by anonymous FTP.


[1] Mike Accetta, Robert Baron, David Golub, Richard Rashid, Avadis
    Tevanian, and Michael Young. Mach: A New Kernel Foundation for UNIX
    Development.  Technical Report, School of Computer Science, Carnegie
    Mellon University, Pittsburgh, August 1986.  Also in Proceedings of
    the Summer 1986 USENIX Conference, pp. 93--112, July 1986.

    This paper describes Mach and the motivations which led to its
    design.  Also described are some of the details of its implementation
    and status at the time of writing.


_____________________________________________1
    
     This material was developed under a subcontract sponsored by the
Defense Advanced Research Projects Agency (DoD), ARPA order 4864,
monitored by the Space and Naval Warfare Systems Command under
Contract Number N00039-87-C-0251. The views and conclusions contained
in this document are those of the authors and should not be
interpreted as representing official policies, either expressed or
implied, of the Defense Advanced Research Projects Agency or
Department of the Navy, Space and Naval Warfare Systems Command, or
Carnegie Mellon University, unless designated by other documentation.



				  1

[2] Robert V.  Baron, David Black, William Bolosky, Jonathan Chew,
    Richard P.  Draves, David B.  Golub, Richard F.  Rashid, Avadis
    Tevanian, Jr., and Michael Wayne Young.  Mach Kernel Interface
    Manual.  October 1988.  Unpublished manuscript from the School
    of Computer Science, Carnegie Mellon University.

    This manual describes the interface to the Mach kernel in detail
    for a wide variety of uniprocessor and multiprocessor architectures.

    Copies are available on host wb1.cs.cmu.edu in
    /usr/mach/public/doc/manual.ps
    through anonymous FTP.  You may also order printed copies from
    the School of Computer Science, Carnegie Mellon University by sending
    a message to mach@cs.cmu.edu or by calling 412/268-7665.

[3] David L. Black.  Mach Interface Proposals --- Priorities, Handoff,
    Wiring.  August 1989.  Unpublished manuscript from the School of
    Computer Science, Carnegie Mellon University.

    This paper proposes three sets of changes: 1) export priorities on
    individual threads to users, introducing the notion of scheduling
    policies and support for fixed-priority threads, 2) handoff scheduling,
    which specifies the next thread to run and related mechanisms, and 3)
    wiring, which locks data and threads into memory to prevent paging and
    swapping.

    Copies are available through anonymous FTP on host wb1.cs.cmu.edu in
    /usr/mach/public/doc/rfc/priority.ps.

[4] David L.  Black.  Mach Processor Allocation Interface.  August
    1989.  Unpublished manuscript from the School of Computer Science,
    Carnegie Mellon University.

    This document is a basic proposal for a processor allocation and
    control kernel interface which supports control over processors by
    user-mode programs. Application areas include gang scheduling and a
    method for speeding up benchmarks; both require allocating a specific
    number of processors to an application for the exclusive use of that
    application.

    Copies are available on host wb1.cs.cmu.edu in
    /usr/mach/public/doc/rfc/cpu.ps through anonymous FTP.

[5] David L. Black.  The Mach cpu_server: An Implementation of
    Processor Allocation.  August 1989.  Unpublished manuscript from the
    School of Computer Science, Carnegie Mellon University.

    This document describes the cpu_server, a user-mode server which
    performs processor allocation for the Mach operating system.

    Copies are available through anonymous FTP on host wb1.cs.cmu.edu
    in /usr/mach/public/doc/rfc/cpu_server.ps.

[6] David L.  Black, David B.  Golub, Richard F.  Rashid, Avadis
    Tevanian, Jr., and Michael W.  Young.  The Mach Exception Handling
    Facility.  Technical Report CMU-CS-88-129, School of Computer
    Science, Carnegie Mellon University, April 1988.




				  2






    Exceptions are caused by the occurrence of unusual conditions during
    program execution; raising an exception invokes the operating system
    to manage recovery from the unusual condition.  Although many
    exceptions can be handled and dismissed transparently to the user
    (e.g., page faults), some must be exported in some form (invoke
    handler, core dump, etc.). This paper concerns the design and
    implementation of exception handling facilities that perform this
    exporting for general purpose operating systems. It discusses both the
    overall design principles for these facilities and the specific design
    and implementation of an exception handling facility for the Mach
    operating system.  It also discusses the support provided to
    applications that use exception (e.g., debuggers) by this facility and
    other Mach kernel facilities.

    You may order printed copies from the School of Computer Science,
    Carnegie Mellon University by sending a message to mach@cs.cmu.edu or
    by calling 412/268-7665.

[7] Eric C.  Cooper and Richard P.  Draves. C Threads.  Technical
    Report CMU- CS-88-154, School of Computer Science, Carnegie Mellon
    University, February 1988.

    The C Threads package allows parallel programming in C under the Mach
    operating system.  The package provides multiple threads of control
    within a single shared address space, mutual exclusion locks for
    protection of critical regions, and condition variables for thread
    synchronization.

    Copies are available on host wb1.cs.cmu.edu in
    /usr/mach/public/doc/threads.ps through anonymous FTP. You may also
    order printed copies from the School of Computer Science, Carnegie
    Mellon University by calling 412/268-7665.

[8] Richard P.  Draves, Michael B.  Jones, and Mary R.  Thompson.
    MIG --- The MACH Interface Generator.  July 1989.  Unpublished
    manuscript from the School of Computer Science, Carnegie Mellon
    University.

    Matchmaker is a language for specifying and automating the
    generation of multilingual interprocess communication interfaces.
    MIG is an interim implementation of a subset of the Matchmaker
    language that generates C and C++ remote procedure call interfaces for
    interprocess communication between Mach tasks.

    Copies are available on host wb1.cs.cmu.edu in
    /usr/mach/public/doc/mig.ps through anonymous FTP. You may also order
    printed copies from the School of Computer Science, Carnegie Mellon
    University by calling 412/268-7665.

[9] R.  F.  Rashid.  From RIG to Accent to Mach: The Evolution of a
    Network Operating System.  In Proceedings of the ACM/IEEE Computer
    Society, Fall Joint Computer Conference, ACM, November 1986.



				  3





    This paper describes experiences gained during the design,
    implementation and use of the CMU Accent Network Operating System, its
    predecessor, the University of Rochester RIG system and its
    successor CMU's Mach multiprocessor operating system.  It outlines the
    major design decisions on which the Accent kernel was based, how those
    decisions evolved from the RIG experiences and how they had to be
    modified to properly handle general purpose multiprocessors in Mach.
    Also discussed are some the the major issues in the implementation of
    message-based systems, the usage patterns observed with Accent over a
    three year period of extensive use at CMU and a timing analysis of
    various Accent functions.

[10] Richard Rashid, Avadis Tevanian, Jr., Michael Young, David Golub,
     Robert Baron, David Black, William Bolosky, and Jonathan Chew.
     Machine-Independent Virtual Memory Management for Paged Uniprocessor
     and Multiprocessor Architectures. Technical Report CMU-CS-87-140,
     School of Computer Science, Carnegie Mellon University, July 1987.
     Also in Proceedings of the 2nd Symposium on Architectural Support for
     Programming Languages and Operating Systems, ACM, October, 1987.

     This paper describes the design and implementation of virtual
     memory management within the CMU Mach Operating System and the
     experiences gained by the Mach kernel group in porting that system to
     a variety of architectures. As of this writing, Mach runs on more
     than half a dozen uniprocessors and multiprocessors including
     the VAX family of uniprocessors and multiprocessors, the IBM RT
     PC, the SUN 3, the Encore MultiMax, the Sequent Balance 21000 and
     several experimental computers. Although these systems vary
     considerably in the kind of hardware support for memory
     management they provide, the machine-dependent portion of Mach
     virtual memory consists of a single code module and its related
     header file.  This separation of software memory management from
     hardware support has been accomplished without sacrificing system
     performance.  In addition to improving portability, it makes
     possible a relatively unbiased examination of the pros and cons
     of various hardware memory management schemes, especially as
     they apply to the support of multiprocessors.

[11] Avadis Tevanian, Jr.  Architecture-Independent Virtual Memory
     Management for Parallel and Distributed Environments.  PhD
     thesis, School of Computer Science, Carnegie Mellon University,
     December 1987.  Also as Technical Report CMU-CS-88-106 from the
     School of Computer Science, Carnegie Mellon University, 1987.

     This thesis describes the design and implementation of a new,
     portable, memory management system and evaluates it by direct
     comparison with commercially developed memory management systems.
     It is in production use at CMU, a number of industrial
     organizations and research laboratories, and is a central
     component of the Mach operating system, a distributed and
     parallel operating system developed at Carnegie Mellon
     University.  At the time of this writing, it runs on more



				  4





     than half a dozen uniprocessors and multiprocessors including the
     DEC VAX family of uniprocessors and multiprocessors, the IBM RT
     PC, the SUN 3, the Encore MultiMax, the Sequent Balance 21000 and
     several experimental computers.

[12] Avadis Tevanian, Jr. and Richard F. Rashid.  Mach: A Basis for
     Future UNIX Development. Technical Report CMU-CS-87-139, School of
     Computer Science, Carnegie Mellon University, Pittsburgh, June 1987.

     Computing in the future will be supported by distributed
     computing environments. These environments will consist of a wide
     range of hardware architectures in both the uniprocessor and
     multiprocessor domain. This paper discusses Mach, an operating
     system under development at Carnegie Mellon University, that has
     been designed with the intent to integrate both distributed and
     multiprocessor functionality. In addition, Mach provides the
     foundation upon which future Unix development may take place in
     these new environments.

[13] Avadis Tevanian, Jr., Richard F. Rashid, David B. Golub, David L.
     Black, Eric Cooper, and Michael W. Young. Mach Threads and the
     Unix Kernel: The Battle for Control.  Technical Report
     CMU-CS-87-149, School of Computer Science, Carnegie Mellon
     University, August 1987.

     This paper examines a kernel implemented lightweight process
     mechanism built for the Mach operating system.  The pros and cons of
     such a mechanism are discussed along with the problems encountered
     during its implementation.

[14] Avadis Tevanian, Jr., Richard F.  Rashid, Michael Young, David B.
     Golub, Mary R.  Thompson, William Bolosky, and Richard Sanzi.  A Unix
     Interface for Shared Memory and Memory Mapped Files Under Mach.
     Technical Report, School of Computer Science, Carnegie Mellon
     University, Pittsburgh, July 1987.

     This paper describes an approach to Unix shared memory and memory
     mapped files currently in use at CMU under the Mach Operating System.
     It describes the rationale for Mach's memory sharing and file mapping
     primitives as well as their impact on other system components and on
     overall performance.

[15] Mary R.  Thompson.  Mach Environment Manager.  July 1988.
     Unpublished manuscript from School of Computer Science, Carnegie
     Mellon University.

     The Environment Manager is a Mach server which facilitates the
     sharing of named variables between tasks. This paper discusses
     types, primitives, and integration with the Unix environment.

     Copies are available on host wb1.cs.cmu.edu in
     /usr/mach/public/doc/envmgr.ps through anonymous FTP. You may
     also order printed copies from the School of Computer Science,
     Carnegie Mellon University by calling 412/268-7665.



				  5





[16] Linda R. Walmer and Mary R. Thompson. A Programmer's Guide to the
     Mach System Calls.  February 1988.  School of Computer Science,
     Carnegie Mellon University.

     This document is one of two tutorials designed to teach basic
     Mach programming skills. This manual explains the use of the Mach
     kernel calls. The companion document to this one, A Programmer's
     Guide to the Mach User Environment explains the use of higher
     level methods for implementing multithreaded programs and
     interprocess communication.  Before writing programs that use the
     system calls directly, the user should be aware that the methods
     outlined in the other document may be used to solve his problem
     more simply.

     Copies are available through anonymous FTP on host wb1.cs.cmu.edu
     in /usr/mach/public/doc/machsys.ps.  You may also order printed
     copies from the School of Computer Science, Carnegie Mellon
     University by calling 412/268-7665.

[17] Linda R. Walmer and Mary R. Thompson. A Programmer's Guide to the
     Mach User Environment.  February 1988.  School of Computer
     Science, Carnegie Mellon University.

     This document is one of two tutorials designed to teach basic
     Mach programming skills. This manual demonstrates the use of the
     C Threads library primitives in writing a multithreaded program
     and the use of the Mach Interface Generator (MIG) to generate
     remote procedure calls for interprocess communication. The reader
     should be familiar with the basic Mach abstractions of ports,
     messages, virtual memory, tasks and threads which the
     introduction to the companion document, A Programmer's Guide to
     the Mach System Calls, explains.

     Copies are available through anonymous FTP on host wb1.cs.cmu.edu
     in /usr/mach/public/doc/machuses.ps. You may also order printed
     copies from the School of Computer Science, Carnegie Mellon
     University by calling 412/268- 7665.

[18] Michael Young, Avadis Tevanian, Jr., Richard Rashid, David Golub,
     Jeffrey Eppinger, Jonathan Chew, William Bolosky, David Black,
     and Robert Baron. The Duality of Memory and Communication in the
     Implementation of a Multiprocessor Operating System. Technical
     Report CMU-CS-87-155, School of Computer Science, Carnegie Mellon
     University, August 1987. Also in Proceedings of the 11th Symposium
     on Operating Systems Principles, November, 1987.

     An important component of the Mach design is the use of memory
     objects which can be managed either by the kernel or by user
     programs through a message interface.  This feature allows
     applications such as transaction management systems to
     participate in decisions regarding secondary storage management
     and page replacement.  This paper explores the goals, design and
     implementation of Mach and its external memory management
     facility.  The relationship between memory and communication in
     Mach is examined as it relates to overall performance,
     applicability of Mach to new multiprocessor architectures, and
     the structure of application programs.


------------------------------------

   Date: Mon, 8 Oct 90 11:52:48 -0400
   From: George M. Jones <george@cis.ohio-state.edu>
   Message-Id: <9010081552.AA06734@dracula.cis.ohio-state.edu>
   To: ercal@mcs213a.cs.umr.edu (Dr. Fikret Ercal)
   In-Reply-To: ercal@mcs213a.cs.umr.edu's message of 7 Oct 90 16:40:08 GMT
   Subject: need references on Mach..
   Reply-To: george@cis.ohio-state.edu

   You used to be able to FTP some of the mach documentation from
wb1.cs.cmu.edu. I'm not sure if this is still the case.

   You might try the Mach distibution coordinator, lli@spice.cs.cmu.edu.
   I think there is a generic address like "mach-distrib@cs.cmu.edu" or
   some such, but I can't remmeber it now & it would probabibly just
   forward to Lori (lli) anyhow.  She can probabibly send you a pack of
   papers or tell you who can.