Too Busy For Words - the PaulWay Blog

Wed 17th Jan, 2007

Kernels meeting in the middle?

Andy Tanenbaum's talk on microkernels was, IMO, really cool. The interesting thing to me was that this almost exactly mirrored Van Jacobsen's talk at LCA 2006 on speeding up network access by moving the network drivers out of the kernel. Not only did this speed network access up, but it also removed a whole bunch of ugly locking stuff from the kernel, improving its quality as well. Another side benefit of this was that you could now run half a dozen network processes instead of one. With architectures like Sun's Niagara, Intel's quad cores and many other systems getting many cores on the same chip, this is going to deliver an increasing speed-up.

It occurs to me that this is the other good thing of Minix. The disk driver, the network driver and the screen driver can all run at full speed because they get 100% of their own CPU time. Separating these out onto separate processes that can run on separate CPUs will deliver better scaling than bloated kernels that have every driver and every system all bundled together. To me, this is not really a problem for Linux - we already have proof that these trends are happening. Linux might have a larger kernel, but we're meeting microkernels in the middle.

For Windows, though, I'd say that it will become increasingly obvious that it just can't compete on reliability and scaling in the area that they so desperately want to get into: the server market. The annoying thing about this is that it won't really matter, because Microsoft knows who to market to (the upper management who don't read technical journals) and have the budget to make anything look good. The fight is still on, but it's still not between Linux and Minix. Sorry, Marc, stirring that particular pot again does not get you any kudos.

Last updated: | path: tech / lca | permanent link to this entry


All posts licensed under the CC-BY-NC license. Author Paul Wayper.


Main index / tbfw/ - © 2004-2010 Paul Wayper

Valid HTML5 Valid CSS!