Swimming with the Razorfishes

Thursday, December 15, 2005

Dumbass

We shouldn't be concerned that Wikipedia might be inaccurate. We should be concerned that jackasses read a Wikipedia article and declare themselves experts.

"The problem with Mach is that microkernels are inefficient because of all the communication taking place between different parts of the operating system. A monolithic kernel is more efficient because processes don't have to move in and out of the kernel"

While this was true on my smokin' 386, my 1.5GHhz G4 spends a whole lot of time very quickly doing nothing. Since the 1990s, we have plenty of cycles to spare for context switching.

And while Dan is concerned with the inefficiency of context switching in microkernels, he doesn't seem all that troubled by the profoundly inefficient design of the monolithic kernel, one that entirely locks kernel code and structures while in kernel mode. You tend to spend a lot of time in kernel mode, for example, when reading or writing files, or when doing network communication.

Profoundly inefficient being entirely relative, of course. We've worked around the difficulty of exclusive access in kernel mode, as we have worked around the inefficiency of microkernels.

And had Dan bothered to take a look at any MacOS X documentation, he would have noticed that its kernel is a hybrid; a pragmatic mix of micro and monolithic kernel designs. I don't think anyone does a pure microkernel anymore, except as some kind of academic exercise. Just like no one writes a pure monolithic kernel. GNU HURD developers notwithstanding. And look how far that project has come.

There are serious inefficiencies in the OS, sure. And GCC generates relatively crappy PPC code. But swapping in the Linux kernel won't help this.

0 Comments:

Post a Comment

<< Home