An Introduction to MINIX

It's not Linux, but MINIX can introduce you to the basic concepts without all the baggage.

Assuming you have experience with UNIX-like operating systems, you shouldn't need more than a session or two to familiarize yourself with MINIX and its resources.

If your interest is not just casual, your next step might be to read the MINIX Developer's Guide. This concise guide goes all the way from the resources you might need to learn more about programming in MINIX to explaining the MINIX API and packaging format in detail. Then, you might want to see what MINIX projects are already organized on the project's Who Is Working On What page and joining the Google Group for MINIX. Conversely, if you are considering using MINIX for teaching, look at the Teaching with MINIX Web page for resources.

But is MINIX worth this effort? Is it, perhaps, a historical relic whose best days are past? How you answer that is very much a matter of perspective.

On the one hand, MINIX development and teaching are both relatively small worlds, so individuals might expect (all else being equal) to contribute to them more easily and meaningfully than to larger free and open-source projects. MINIX development in particular seems to be at a significant stage as the project tries to redefine its relevance. And, there is something to be said about learning and teaching about UNIX-like systems in a smaller, less-cluttered environment, especially one that is not desktop-oriented.

On the other hand, some might consider MINIX (to be frank) a dead end. Why, they might argue, should anyone put effort into such a small project when working with GNU/Linux or FreeBSD is more relevant today and promises to teach more marketable job skills?

Either way, MINIX is worth some attention. You may decide not to invest a lot of time in MINIX, but after examining it in any detail, you will probably return to your own free operating system of choice with a better understanding of how it is structured. For all the efforts to refocus MINIX, teaching is very much what it continues to do best.

Bruce Byfield is a computer journalist who covers free and open-source software. He has been a contributing editor at Maximum Linux and, and he currently is doing a column and a blog for Linux Pro Magazine. His articles appear regularly on such sites as Datamation, and Linux Planet. His article, “11 Tips for Moving to” was the cover story for the March 2004 issue of Linux Journal.


-- Bruce Byfield (nanday)


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Inconsistent naming conventions.

gmo's picture

Given that Minix comes with bash as well, shouldn't you call it GNU/MINIX?
Or, really, shouldn't you just omit the GNU/ part altogether as this is an article about kernels, and GNU don't have anything to do with the kernels (as long as we're not talking about Hurd...).

Anyway I'm surprised that minix3 has gotten so much fatter! I used to run minix on a 8088 with 640 kB memory...


Matt K's picture

No, it should not be called gnu/minix. Many of the gnu tools have been ported to minix, and the user can choose to install them, but it natively runs either its own tools (the default shell is ash), or BSD based tools, which are not licensed under GPL.

Re to An introduction to minix

srinivas v's picture

You forgot to add that the European union is funding the development of minix for a "reliable' operating system. So, just hold on. You might have a free as in freedom version of meego or the like.

excellent. five thumbs up!

Anonymous's picture

Excellent article! A lot of work went into this. Thank you Bruce Byfield! And I love the bonus reference to Ken Brown's failed attempt to discredit Linux and Linus.

Please keep in mind that

mick's picture

Please keep in mind that Minix has shifted it's focus in version 3. Minix3 is designed from the ground up to be a reliable system, not just an academic one. It's promise is to be a system that will never, ever crash( with a 5-10 percent performance overhead of course). To the best of my knowledge it has never failed in testing.

The modular layered design, and in particular the treatment of device drivers( where bugs are far more common) as untrusted user space code also offers enhanced security. Here's an example given by Andrew Tannenbaum. Imagine a situation where a a Minix system's audio driver were exploited.

The computer could "make weird noises," but would have no access to the disk, network or memory subsystems effectively limiting what an attacker could accomplish. Each driver is kept separate from the others and communicates using the kernel, which is small and well understood, to pass messages.Note interestingly that with this design the disk driver cannot actually control the disk.

The reincarnation server is another amazingly cool idea and I am surprised you didn't mention it. It is a system that transparently replaces crashed or misbehaving drivers with copies stored in ram. Tannenbaum has reported testing systems by inducing 800,000 driver crashes and never once did they have a full system crash.