Messages in this thread | | | Date | Mon, 31 May 1999 20:44:01 -0700 | From | Oscar Levi <> | Subject | Re: Linux is a MicroKernal? (was:is linux obsolete) |
| |
> > So what is a microkernel, really? Does putting the GUI into the kernel > > > > Excuse my ignorance, as I'm only 16 and I haven't had the oppourtunity to > take any CS related classes on OS design or anything -- but what is a > monolithic kernel and microkernel, and what is the difference between the > two, from a technical standpoint?
Traditional UNIX kernels after the work of Ritchie and Thompson ("The UNIX Time-Sharing System", 1974) are C programs that run in a separate virtual memory space (when available) from the user programs. The authors of the kernel agreed on conventions and call interfaces to isolate features within the kernel. As most C programmers know, there's always one smart-guy who bypasses these conventions for either a) performance, or b) expediency.
The microkernel concept is to create semipermeable interface boundaries through which clients may communicate only through the agreed upon protocol. Many microkernels use message passing, though I don't believe that this is a requirement.
Layering and modularity of this variety date back to a paper published by Per Brinch Hansen in 1970, "The Nucleus of a Multiprogramming System". His paper describes a core of services for passing messages as the foundation for a multiprogramming system. He envisioned each user implementing an operating system on top of the nucleus.
The Linux kernel follows the UNIX route because it has been found to produce a faster, more responsive operating system than the message passing design. Layering tends to preclude optimizations that non-layered system may implement. For example, MS moved their graphics drivers into ring-0 (well, not exactly) of the kernel to improve performance.
Someone posted that VSTa is an open source microkernel. Read it and read Linux.
-O
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |