Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!wuarchive!uwm.edu!bionet!agate!darkstar!june.cs.washington.edu From: pardo@june.cs.washington.edu (David Keppel) Newsgroups: comp.os.research Subject: Kernel Taxonomy Message-ID: <14956@darkstar.ucsc.edu> Date: 23 Apr 91 18:21:24 GMT Sender: usenet@darkstar.ucsc.edu Organization: Computer Science & Engineering, U. of Washington, Seattle Lines: 33 Approved: comp-os-research@jupiter.ucsc.edu There are at least three kinds of OS kernels: monolithic, modular, and kernelized. I would like comments (e-mail, I'll summarize) on what's missing, wrong, or "right but not the only way to see it" with the following definitions: * Monolithic Traditional: everything runs in one address space, the only official interface to the kernel is e.g., the published set of system calls. * Modular The official kernel interface specification may also include internal components along module boundaries. These internal components are not visible to user-level processes, they are for e.g., kernel extesibility. (The word `modular' is a misnomer and I'll gratefully accept alternatives That is, a monolithic kernel may be built using good, modular, structured programming techniques without exporting the particular interfaces. A ``modular'' kernel exports those interfaces and they don't change between releases of the OS.) * Kernelized (or micro-kernel) An OS that is both modular and has modules broken in to multiple address spaces. Comments? ;-D on ( Pay no kernel tax on'a me! ) Pardo