Hacker News new | ask | show | jobs
by cerales 4857 days ago
Anyone care to give a very cursory run-down on why someone would look at Minix in this day and age instead of one of the BSDs? Particularly since those release notes mention bringing in the NetBSD build system and much of its userspace.

Not to say that I think it's bad to have plenty of unixes floating around - just curious.

3 comments

Minix is a microkernel architecture. Many of the services which in other OSes live in kernel space are pushed out into standalone processes.

The main goal is to improve reliability. Bad drivers or bad hardware are the leading cause of lockups these days. If you isolate the drivers, file system etc from one another, you can prevent the whole system from dying. Minix3 goes further than its predecessors by adding a "reincarnation server", which periodically pings other servers and kills/restarts them if they've become unresponsive.

Minix essentially does at a single-system level what cloud architectures try to do at a multi-system level: assume that the parts are unreliable, isolate faults and recover by restarting sub-units.

To me the more interesting possibility is that in a microkernel world you could solve a number of classic OS/system software bunfights. Databases, for example, tend to fight a bit with OSes about the best way to buffer data or flush to disks. In a microkernel system you can arrange matters so that the database provides its own memory and disk management. It's just another process; nothing special.

Here's the report that was written about the design: http://www.minix3.org/docs/jorrit-herder/osr-jul06.pdf

It's also for security. If you find a security vulnerability in e.g. the sound driver, you're not going to get root access.

Andrew Tanenbaum explains it well: http://www.youtube.com/watch?v=bx3KuE7UjGA

Minix is a true microkernel architecture, but also a complete and practical OS. The analogy to NetBSD is a good one, since they're both largely didactic devices, but they demonstrate radically different internal operating system architectures.
Mainly research and education. MINIX is meant to be (though I haven't read the code since the first edition printed in Tanenbaum's book) a clean, simple project for students and researchers to begin hacking on easily . In this day and age, research OSes don't become mainstream ones, but MINIX could be a good target for research which would make its way to the more widespread OSes if successful.

The above is stating the obvious, so I presume you are asking about commercial/embedded use. The answer is probably similar - if you want a nice clean base to start from and want a general-purpose UNIX rather than a realtime system, and you don't need much from the userland beyond classic UNIX tools. Perhaps your work involves hacking at the system level, or you're keen on having a microkernel architecture. It's a bit niche but could be a very suitable base for an embedded project.