Sign in to follow this  
Alpha_ProgDes

Microkernels. Huh?

Recommended Posts

Doing a little bit of research on microkernel (self interest really) and I haven't found a clear defintion of microkernels. I've read that monolithic kernels are like Windows. But what's like a microkernel? and what the difference between the two?

Share this post


Link to post
Share on other sites
I believe that the main difference is that a micro kernel trys to do as much as possible in user space. For reliability and security, typically at the cost of performance. I doubt there's a definite line between micro and monolithic kernels. Like with CISC and RISC processors. where some "RISC" chips have a larger instruction set than than some "CISC" chips.

wikipeda as a far better description than I could give. But you've probably read that already.

Quote:
Original wikipedia article
...
The minimum set of services required in a microkernel seems to be address space management, thread management, inter-process communication, and timer management. Everything else can be done in a user program, although in a minimal microkernel, some user programs may require special privileges to access I/O hardware. A few operating systems approach this ideal, notably QNX and IBM's VM.
...



Share this post


Link to post
Share on other sites
In reality, you have to put anything that talks to hardware into "the" kernel, to achieve good performance. Thus, pretty much all kernels in practical use for most people (Windows, Linux, BSD, MacOSX, etc) are "monolithic" in that a bunch of device drivers share a single address space.

Note that the version of Mach that MacOSX was based on (through its NeXT heritage) is actually a monolithic kernel; Mach didn't go micro-kernel until version 3.0, and evenso, didn't have very good performance in that mode.

In general, in a micro-kernel, you implement message passing, processes, permissions and memory management in the kernel, and everything else is a separate address space (process). Each process for a device driver would be given permission to read/write the address space for its device only (for memory-mapped devices), thus reducing the chance of one device driver screwing up life for another.

Things like file I/O and disk drivers could also be done using message passing in this model (see where the performance bottlenecks start creeping in? :-)

Share this post


Link to post
Share on other sites
Quote:
Original post by hplus0603
Note that the version of Mach that MacOSX was based on (through its NeXT heritage) is actually a monolithic kernel; Mach didn't go micro-kernel until version 3.0, and evenso, didn't have very good performance in that mode.
I don't suppose you have a linkable source for that info? Not because I don't believe you, but because there are a few people whose face I'd like to shove it into.

Share this post


Link to post
Share on other sites
Quote:
Original post by Promit
Quote:
Original post by hplus0603
Note that the version of Mach that MacOSX was based on (through its NeXT heritage) is actually a monolithic kernel; Mach didn't go micro-kernel until version 3.0, and evenso, didn't have very good performance in that mode.
I don't suppose you have a linkable source for that info? Not because I don't believe you, but because there are a few people whose face I'd like to shove it into.


XNU on Wikipedia might good a good starting place

And some more info on Kernelthread

Share this post


Link to post
Share on other sites
From wikipedia: "After the acquisition of NeXT by Apple, the Mach component was upgraded to 3."

Most people call XNU a hybrid, unless you're of the pure view, then it's monolithic. But I believe they still retain the ability to move things out of kernel space in the future so it has the ability to be a micro. So call what you wanna call it, just know it's a mutant, but a cute one.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this