Sunday, 14 May 2006

Monolithic kernel vs Microkernel - Which is the better OS architecture?

Anybody who reads the tech related news online would by now be aware of the fierce debate that is raging regarding the most suitable design of an operating system. On the one side are those who favor monolithic kernels - that is a kernel which take care of almost all the system tasks like interfacing between the sound card and the audio software, the graphics card drivers and so on. Linux is a perfect example of a monolithic kernel where most of these functions take place in the kernel space. And not surprisingly, Linus Torvalds is a strong proponent of monolithic kernels.

On the other side of the fence are those that favor a microkernel architecture. And Andrew.S.Tanenbaum - the creator of Minix operating system is a staunch supporter of this. He believes that microkernel architecture is a better design principle and is ideal in critical situations where reliability is of uttermost importance like military or aerospace industries.

The ball started rolling when a week back, Andy along with two of his colleagues published a paper titled "Can we make Operating Systems Reliable and Secure", where they predicted that microkernel architecture has lots of advantages over monolithic kernel. Then Linus Torvalds responded in a news site explaining why he favoured monolithic design over the microkernel design.

And now in a new article, Andy Tanenbaum has given a detailed explanation as to why he disagrees with Linus on this topic. He refutes many of the points raised by Linus Torvalds against microkernel architecture and also gives examples of numerous operating systems based on this architecture including his own Minix3. And the gist of his observation is that microkernels allow one to build self-healing reliable systems and according to him reliability scores over performance gains.

It is important to note that RMS's baby HURD runs on top of mach microkernel.

No comments:

Post a Comment