LWN.net Logo

LCA: Andrew Tanenbaum on creating reliable systems

LCA: Andrew Tanenbaum on creating reliable systems

Posted Jan 25, 2007 17:32 UTC (Thu) by pm101 (guest, #3011)
Parent article: LCA: Andrew Tanenbaum on creating reliable systems

One downside of microkernel-style architectures is that they don't just impact performance -- they also impact complexity and code size. The system Andy describes does away with shared memory, so communication gets more difficult. It is highly threaded, and so the developer needs to worry about deadlocks. You also need to be tolerant of processes going away to have any benefit -- if the file system crashes while my word processor is saving, it needs to catch the fault and try saving again. This potentially dramatically increases code size and complexity, which leads to more bugs, and potentially a less stable overall system. Sticking compartments in a ship makes great sense, since it adds robustness without adding much design complexity. Sticking them in software is sometimes a good idea, but just as often, it sounds convincing, but actually leads to more bloated and less stable software.


(Log in to post comments)

LCA: Andrew Tanenbaum on creating reliable systems

Posted Jan 25, 2007 18:48 UTC (Thu) by tjc (subscriber, #137) [Link]

MINIX 3 is about the same size as MINIX 2 -- a bit less than 30,000 lines of code. I wouldn't call this bloated. It lacks some important features, and only supports a few common devices, but it's still fairly impressive for a POSIX-compatible OS. At the very least it's a successful proof of concept.

LCA: Andrew Tanenbaum on creating reliable systems

Posted Feb 1, 2007 13:39 UTC (Thu) by renox (subscriber, #23785) [Link]

>highly threaded, and so the developer needs to worry about deadlocks.
Note that there are some telecom equipment SW written in Erlang with massive threading where they still manage to have a high reliability.

>if the file system crashes while my word processor is saving, it needs to catch the fault and try saving again.
This is not necessarily the word processor responsibility to retry the action: after all, the word processor did ask the OS to write some data on the disk. Whether it took one or two tries for the OS to do it doesn't really matter to the word processor..
Don't you remember 'KHB: Recovering Device Drivers: From Sandboxing to Surviving' from the week before?

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds