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.