Trustworthy Systems

The Mungi single-address-space operating system


Gernot Heiser, Kevin Elphinstone, Jerry Vochteloo, Stephen Russell and Jochen Liedtke

IBM Watson Research Center

School of Computer Science and Engineering
The University of New South Wales
Sydney 2052


Single-address-space operating systems (SASOS) are an attractive model for making the best use of the wide address space provided by the latest generations of microprocessors. SASOS remove the address space boundaries which make data sharing between processes difficult and expensive in traditional operating systems. They offer the potential of significant performance advantages for applications where sharing is important, such as object-oriented databases or persistent programming systems.

We have built the Mungi system to demonstrate that a SASOS can offer these performance advantages without resorting to special hardware. Mungi is a very "pure" SASOS, featuring an unintrusive protection model based on sparse capabilities, a fast protected procedure call mechanism, and uses shared memory as the exclusive inter-process communication mechanism, as well as for I/O. The simplicity of our model makes it easy to implement it efficiently on conventional architectures.

Our implementation of Mungi for the MIPS R4600 64-bit microprocessor is presented, which is based on our port of the L4 microkernel. Mungi is shown to outperform, in some instances by more than an order of magnitude, two UNIX operating systems, Irix and Linux, in several important operations, such as task creation and inter-process communications, and on the OO1 object-oriented database benchmark. As well, we describe how our approach to key issues in SASOS design provides better performance than other systems, such as Opal. Our experience shows that the SASOS concept is viable, and that a well-designed microkernel is an excellent base on which to build high-performance operating systems.

BibTeX Entry

    author           = {Gernot Heiser and Kevin Elphinstone and Jerry Vochteloo and Stephen Russell and Jochen Liedtke},
    journal          = {Software: Practice and Experience},
    month            = jul,
    number           = {9},
    pages            = {901--928},
    paperurl         = {},
    title            = {The {Mungi} Single-Address-Space Operating System},
    volume           = {28},
    year             = {1998}