Linked by Thom Holwerda on Sun 16th Apr 2006 15:36 UTC
OSNews, Generic OSes Right in between a car crash and Easter, I knew I had to write a Sunday Eve Column. So here I am, digesting vast quantities of chocolate eggs (and I don't even like chocolate), craving for coffee (for me about as special as breathing), with the goal of explaining to you my, well, obsession with microkernels. Why do I like them? Why do I think the microkernel paradigm is superior to the monolithic one? Read on.
Thread beginning with comment 115291
To read all comments associated with this story, please click here.
Microkernels in theory and practice
by felipe_alfaro on Sun 16th Apr 2006 16:28 UTC
felipe_alfaro
Member since:
2006-04-16

The problems with microkernels is than, in theory, they really look good. However, in practice, running a file system in user-space adds no benefit: if it crashes, how can you restart it? If the memory manager bails out, how can you create a new process and allocate memory for it? The networking subsystem is a good candidate for a user-space subsystem, but what about a diskless-workstation that boots from an NFS export? What would happen if the networking subsystem crashed?

More and more pieces of Linux are being pushed out to userspace. One nice example is used, of FUSE. udev is a central place in Linux device management, but even if it crashes or malfunctions, you can revert to the well-known mknod tool.

Reply Score: 5

CaptainPinko Member since:
2005-07-21

file system in user-space adds no benefit: if it crashes, how can you restart it?

I don't see the problem. Just restart and block and process that makes an I/O until it's back a running.


If the memory manager bails out, how can you create a new process and allocate memory for it?

Kill any process allocated by that manager, but any app controlled by another can continue living. You could make an ultra-stable manager for essential functions, and a more powerful-but-complex-so-harder-to-debug one for user apps.


what about a diskless-workstation that boots from an NFS export? What would happen if the networking subsystem crashed

Well it could run off the data it has in memory and/or just block until the connection is re-established. You could have a process that stores the details of your account monitor the connection process, and when the connection dies have it refeed the data that is needed to regain passwords.

Reply Parent Score: 1

felipe_alfaro Member since:
2006-04-16

I don't see the problem. Just restart and block and process that makes an I/O until it's back a running.

Usually, restarting a process involves reloading the binary from disk, so if the file system is just to get restarted, how can you load it back from disk to memory? You could keep its text in memory, but what about corrupted data structures?

I still don't see any advantages of a microkernel system. Just look at Windows NT 4.0 and how they integrated back the graphic drivers back into kernel space due to performance problems. The fact is that, in Windows NT 3.5, a crash in the graphics subsystem left the system unusable. Well, it could keep serving files, but it was impossible for anyone to log in to the system.

Reply Parent Score: 3

Cloudy Member since:
2006-02-15

There's a misunderstanding here. The fault handling that supposedly comes from microkernels isn't keeping the failure of a component from causing the system to fail. Rather, it's keeping the failure of a component confined within that component.

All microkernels do, from an architectural point of view is enforce fault confinment through the use of seperate address spaces.

The problem is that the cost they introduce to provide that separation is higher (usually *much* higher) than the benefit gained.

Reply Parent Score: 3