Monolithic kernels (the ``big mess'' according to Tanenbaum) led to interest in more structured operating systems, such as layering and better structuring. Look at Unix history and slide.
From there work began on taking functionality out of the kernels and making them much smaller-- ``micro'' versions.
Look at organization in Figure 4.9 (Stallings). Layered operating system example is Xinu-- ``a small, elegant operating system''.
Philosophy of microkernel is to have the bare essentials in the kernel.
Benefits of microkernels:
Performance of such microkernels (Mach and Chorus) has been the concern. Approaches to improve performance (co-location of services in the kernel) go against microkernel idea.
One such system is Mach, which was developed at CMU. Mach was used as the basis for work on OSF/1, which was adopted by some companies such as Digital. The version of OSF/1 running on Digital Alpha machines is currently known as Digital Unix.
Look at ``Microkernel Operating System Architecture and Mach'' paper (1992).
Single-user, multitasking operating system designed to run on a variety of PCs and workstations.
Uses a modified microkernel architecture (Figure 2.13)--some system services are in the kernel for performance reasons.
Hardware Abstraction Layer (HAL) contains hardware-specific code.
Windows NT works with objects.
Paging is done in the kernel as well as all I/O.
Provides kernel level threads.
Uses local procedure call (optimized message-passing mechanism) for communication.
The server processes at the user level basically provide different interfaces. Most common is Win32 subsystem--in fact other user-level services must go through Win32 subsystem.
Look at ``The Performance of Micro-Kernel-Based Systems'' paper.
Slides:
http://www.cs.wpi.edu/~cs535/s03/hartig:sosp97/
Look at ``Application Performance and Flexibility on Exokernel Systems'' paper.
Slides:
http://www.cs.wpi.edu/~cs535/s03/kaashoek:sosp97/
Look at ``Better Operating System Features for Faster Network Servers'' paper.
Slides:
http://www.cs.wpi.edu/~cs535/s03/banga:wisp98/
Look at ``Techniques for the Design of Java Operating Systems'' paper.
Slides:
http://www.cs.wpi.edu/~cs535/s03/back:usenix00/
Look at ``Sub-Operating Systems: A New Approach to Application Security'' paper.
Slides:
http://www.cs.wpi.edu/~cs535/s03/ioannidis:ew02/
Look at ``Ninja: A Framework for Network Services'' paper.
Slides:
http://www.cs.wpi.edu/~cs535/s03/behren:usenix02/
Look at Choices and Clouds papers
Examine Amoeba and Sprite comparison paper.
Many types of structures. The microkernel approach, although with flaws has moved forward in the marketplace with Windows NT and Digital Unix.
Researchers are still looking to find operating system structures that support new types of applications and needs of networking.