MINIX 3 is a free open-source operating system that can be used for studying operating systems, as a base for research projects, or for commercial (embedded) systems where microkernel systems dominate the market. Much of the focus on the project is on achieving high reliability through fault tolerance and self-healing techniques.
MINIX is based on a small (about 12K lines of code) microkernel that runs in kernel mode. The rest of the operating system runs as a collection of server processes, each one protected by the hardware MMU. These processes include the virtual file system, one or more actual file systems, the memory manager, the process manager, the reincarnation server, and the device drivers, each one running as a separate user-mode process.
One consequence of this design is that failures of the system due to bugs or attacks are isolated. For example, a failure or takeover of the audio driver due to a bug or exploit can lead to strange sounds but cannot lead to a full takeover of the operating system. Similarly, crashes of a system component can in many cases be automatically and transparently recovered without human intervention. Few, if any, other operating systems are as self-healing as MINIX 3.
For many companies and individuals two key questions about any piece of software are availability of the source code and the license. MINIX 3 is open source. The entire source code is available for anyone to use and modify as they see fit, for academic, personal, or commercial purposes. In particular, companies may use MINIX 3 in whole or in part in products. Furthermore, it is completely free of charge. Support and consultancy is available for a fee. Companies should contact us at info@minix3.org for pricing.
MINIX 3 is available under a BSD-type license, which may be attractive to companies since it does not require them to publish changes they make to the system as the GPL does (e.g., for Linux).
MINIX has a long history. It goes back to 1987 when the first edition of the book Operating Systems: Design and Implementation by Andrew S. Tanenbaum was published. The first version of MINIX was intended for teaching and it became very popular very quickly. One of the early users was a Finnish student, Linus Torvalds, who learned all about operating systems from reading the book and modifying the system. Eventually he went on to write his own operating system, Linux. In 2004, a man named Ken Brown accused Torvalds of copying MINIX verbatim, but that was quickly refuted in a statement published 20 May 2004 by Andrew Tanenbaum.
A second edition of MINIX (and a second edition of the book, coauthored by Albert S. Woodhull) was released in 1997. This version was greatly improved from the first version but was still aimed at teaching operating systems to a large extent.
It was only with the third version, MINIX 3, and the third edition of the book, published in 2006, that the emphasis changed from teaching to a serious research and production system, especially for embedded systems. A few of the many differences between MINIX 2 and MINIX 3 are given here.
The project got a major stimulus in 2008 when Andrew Tanenbaum was awarded a European Research Council Advanced Grant. This allowed both the research and product development to continue at an accelerated rate for 5 years. Near the end of the ERC grant period, he got an ERC Proof of Concept Grant, which allowed us to port MINIX 3 to the ARM and also to exhibit twice at the Embedded World trade show in Nuremberg in 2012 and 2013.
Installation is simple. First you download the CD-ROM image, which is a .iso file, by clicking on the “Download Now” button on the main page. Save the file. Then if you are going to install on a PC, first butn the .iso file to a CD-ROM and boot the computer from it. If you are going to install to a virtual machine (e.g., on VMware), configure the virtual machine to use the .iso file as its CD-ROM and boot it. Either way, it will boot in seconds. Log in as root (no password) and type: setup. This will lead you through the installation one step at a time. It takes only a few minutes. When you are done, type: reboot . After the reboot, log in as root again and you are up and running. More detailed instruction are can be found on the GETTING STARTED tab on the main page.
The MINIX 3 userland is largely (but not completely) compatible with NetBSD, which means that thousands of NetBSD packages can be installed and run on MINIX 3. After you have finished installing the system itself, you probably will want to install some of the thousands of packages. See Installing Binary Packages page in the wiki to learn how to install them.
If your interest lies in embedded systems, you might want to get a one of the supported Beagles. Three boards are supported: BeagleBoard XM, BeagleBone White, and BeagleBone Black. The top-of-the-line BeagleBone Black is $55; the others are a bit cheaper. Most likely if your interest lies here you are a developer, so you should read the MINIX 3 ARM developers guide. This is what the Beagles look like.
These boards are development systems using ARM CPUs. The BeagleBone Black, for example, has a 1-GHz ARM Cortex A8, 512 MB RAM, an on-board 4-GB flash SSD, and connectors for micro-SD cards, micro-HDMI, USB, and Ethernet.
MINIX 3 is, like all software, still under development, but the current release, 3.3.0, is a reliable, stable, self-healing version for the x86 and ARM platforms. Here are some of the features of the current system. Development is ongoing and we hope you will join the community and help out.
Nearly all the documentation is in the MINIX 3 wiki. This is a collection of pages with information on many topics relating to MINIX 3. When you are starting out, you should consult it often. Once you become more experienced, you can edit it, updating pages or adding new ones, just like Wikipedia.
Andrew Tanenbaum has made some videos discussing MINIX 3. You can watch them on YouTube as follow.
MINIX 3 has appeared on the Web in various places. Here are a small number of the references.