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.

I like the idea of an application or device that does one thing and does it well. But in the technology field, "convergence" is the name of the game. And this is partly being driven by consumers who want functionality in neat all-in-one packages rather than as separate components.

It's not always bad though. I prefer a simple mobile phone, but I can see the appeal of a phone with MP3 player and (basic) digital camera. Would you rather have one integrated device or carry three separate devices?

On paper, the microkernal design seems simple and elegant. The modular structure gives you the impression of a plug-and-play system where new functionality can be dropped in without having to re-engineer the whole OS - whether it's actually like that in real life though is another thing.

The problem is that on paper everyone's block diagram of their system looks modular and elegant. In practice, microkernels don't give you any modularity. They simply throw more of the crap outside the 'kernel' than was in it before. It's the same crap in a different bag. But now it has all the extra overhead of talking to the microkernel to get things done.