Accessibility

6.033--Computer System Engineering

Suggestions for classroom discussion of:

Peter D. Varhol. Small kernels hit it big. Byte 19, 1 (January, 1994) pages 119-128.

by J. H. Saltzer, February 14, 1996


What is the alternative to a kernel?  (A "Monolithic" system.)  What does
that mean?

It helps at this point to walk through a file system call, such as

   open ("/projects/6.033/handout.1")

with a sketch of a monolithic system and then again with a sketch of a
kernel design.

Assume there are two modules, the file system and the file manager.  The
open call goes to the file system, which turns it into a series of calls
to the file manager (we know that "/" is file #17)

    openfile (17)
    read, search for name "projects", it is file #92
    openfile (92)
    read, search for name "6.033", it is file #66
    openfile (66)
    read, search for name "handout.1", it is file #106
    return #106 to the application.

Now the application calls the file manager directly to read.

In the monolithic system, both the fs and the fm are inside the system.
In the kernel system there are three user-level processes, the
application, the fm, and the dm.  The kernel just passes the arguments
along.

Differences:

     The kernel is smaller than the monolithic system (why does that
     matter)

     in the kernel system, fs and fm can be individually replaced, e.g.
     with NFS or AFS just by rerouting the calls.

     in the kernel system, a bug in fs can't cause trouble for the O/S
     scheduler.
END

Comments and suggestions: Saltzer@mit.edu