Quote Originally Posted by tomato View Post
Are you telling me that modern microkernels don't need more context switches than monolithic kernels even for the simplest of tasks? I wasn't referring to the Tannenbaum vs Linus. If I read the slides correctly, simple disk access is 1 vs 4 context switches. The benefits of monolithic kernel are:
Hm, I take it you missed the point. What I meant to tell you is that microkernels aren't dead in the water because of context switch overhead as those unfortunate 1997 Mach benchmarks would have you believe (from that talk see just how little of the overhead myth is FACT and how fast L4 is compared to the Mach microkernel which fueled the myth so much) and that you shouldn't be giving up this early on the game. Linux is an awesome monolithic kernel and that's why we use it, but that shouldn't mean we should just stop there.

I can pretty much live with a single digit percent overhead for all the benefits of a pure microkernel architecture. The potential of a *free* pure microkernel architecture OS is pretty much still untapped. Notice HURD isn't even one of those (they have the drivers in-kernel). I'm interested in the promises of fault-tolerance and security which can be achieved through having a minimal, very audited and reliable critical base (the microkernel) and the isolation of parts of the system, including and specially so the drivers (typically, drivers have the highest density of bugs... they can be killed and restarted without userspace feeling it if they get stuck or they step into unmapped memory or the like... if further reinforced with iommu, hardware can even be made to DMA to virtual memory, effectively keeping the hardware from touching memory it shouldn't). See https://en.wikipedia.org/wiki/Minix3...ity_in_MINIX_3 for more details on how reliability can improve vastly through exploiting the benefits of a pure microkernel approach. It's also interesting that because of filesystems, drivers, etc. being run as processes, it maps pretty directly to smp systems, which is a very interesting alternative approach opposite to monolithic kernel's lock hell approach.

Minix3, Genode and HelenOS are all promising free pure microkernel architecture OSs that are actively developed and they've all made major key achievements in this last two years, such as getting IP networking working (helenos), finally having persistent filesystems (genode, helenos), self hosting (genode), dynamic linking and BSD-ish userspace (minix3). We're getting to the point things start to work and these systems start to be useful. Things are gonna be very interesting in the free pure microkernel os landscape in the immediate future.