ArticleslgStudy

computer science

Minix

Minix is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Minix rather than just read about it. In short: MINIX is a Unix-like operating system based on a microkernel architecture, first released in 1987 and written by American-Dutch computer scientist Andrew S. Tanenbaum.

Minix — main illustration
Minix — illustration

Key takeaways

  • Minix belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Minix to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Minix from memory before moving on to harder problems.

Reference excerpt

MINIX is a Unix-like operating system based on a microkernel architecture, first released in 1987 and written by American-Dutch computer scientist Andrew S. Tanenbaum. It was designed as a clone of the Unix operating system and one that could run on affordable, Intel 8086-based home computers; MINIX was targeted for use in classrooms by computer science students at universities. Its name comes from mini-Unix. MINIX was initially proprietary source-available, but was relicensed under the BSD 3-Clause to become free and open-source in 2000. MINIX was ported to various additional platforms in the 1990s, and version 2.0 was released in 1997 and was the first to be POSIX compliant. Starting with MINIX 3, released in 2005, the primary aim of development shifted from education to the creation of a highly reliable and self-healing microkernel OS.

Implementation

MINIX 1.0 Andrew S. Tanenbaum created MINIX at Vrije Universiteit in Amsterdam to exemplify the principles conveyed in his textbook, Operating Systems: Design and Implementation (1987). (Despite sharing a name, it has no relation to the older MINIX from Digital Systems House, Inc. based on AT&T Unix code.) An abridged 12,010 lines of the C source code of the kernel, memory manager, and file system of MINIX 1.0 are printed in the book. Prentice-Hall also released MINIX source code and executable binaries on floppy disk with a reference manual. MINIX 1 was system-call compatible with Seventh Edition Unix. Tanenbaum originally developed MINIX for compatibility with the IBM PC and IBM PC/AT microcomputers available at the time.

MINIX 1.4 There is a version of MINIX floating around that supports the Peripheral Technology PT68K-2 and PT68K-4 computers. The PT68K-2 and the PT68K-4 are both 68000-based computers with a standard 8-bit IBM PC ISA bus that has 6 connectors on the main board. It was ported to the PT68K machines by Gary Mills and Sidney Thompson. The port was adapted from the Atari port since it too is a 68000-based machine. The PT68K version has added support for the PT XT-IDE card from Peripheral Technology. It currently only supports the MDA display adapter (no CGA, EGA or VGA). For this reason, it has not yet been ported to the PT68K-5 (a.k.a. CDS68020). An SD Card image is available from https://github.com/mevenson/minix-for-the-PT68K-2-4.

MINIX 1.5 MINIX 1.5, released in 1991, included support for MicroChannel IBM PS/2 systems, and was also ported to the 68000 and SPARC architectures, supporting the Atari ST, Amiga, Macintosh, and Sun SPARCstation computer platforms. There were also unofficial ports to Intel 386 PC compatibles (in 32-bit protected mode), National Semiconductor NS32532, ARM and Inmos transputer processors. Meiko Scientific used an early version of MINIX as the basis for the MeikOS operating system for its transputer-based Computing Surface parallel computers.

MINIX 2.0

Demand for the 68k architectures waned, however, and MINIX 2.0, released in 1997, was only available for the x86 and Solaris-hosted SPARC architectures. It was the subject of the second edition of Tanenbaum's textbook, cowritten with Albert Woodhull, and was distributed on a CD-ROM included with the book. MINIX 2.0 added POSIX.1 compliance and support for 386 and later processors in 32-bit mode, and replaced the Amoeba network protocols included in MINIX 1.5 with a TCP/IP stack. A version of MINIX running as a user process under SunOS and Solaris was also available, a simulator named SMX (operating system) or just SMX for short. Version 2.0.3 was released in May 2001. It was the first version after MINIX had been relicensed under the BSD-3-Clause license, which was retroactively applied to all previous versions.

Minix-vmd Minix-vmd is a variant of MINIX 2.0 for Intel IA-32-compatible processors, created by two Vrije Universiteit researchers, which adds virtual memory and support for the X Window System.

MINIX 3

MINIX 3 was publicly announced on 24 October 2005 by Tanenbaum during his keynote speech at the Association for Computing Machinery (ACM) Symposium on Operating Systems Principles (SOSP). Although it still serves as an example for the third edition of Tanenbaum's textbook, coauthored by Albert S. Woodhull, it is comprehensively redesigned to be "usable as a serious system on resource-limited and embedded computers and for applications requiring high reliability." MINIX 3 currently supports IA-32 and ARM architecture systems. It is available in a live CD format that allows it to be used on a computer without installing it on the hard drive, and in versions compatible with hardware emulating and virtualizing systems, including Bochs, QEMU, VMware Workstation and Fusion, VirtualBox, and Microsoft Virtual PC. Version 3.1.2 was released on 18 April 2006. It was the first version after MINIX had been relicensed under the BSD-3-Clause license with a new fourth clause.

Version 3.1.5 was released on 5 November 2009. It contains X11, emacs, vi, cc, gcc, perl, python, ash, bash, zsh, ftp, ssh, telnet, pine, and over 400 other common Unix utility programs. With the addition of X11, this version marks the transition away from a text-only system. In many cases it can automatically restart a crashed driver without affecting running processes. In this way, MINIX is self-healing and can be used in applications demanding high reliability. Since version 3.1.4, support for virtual memory management has been added, making it suitable for desktop OS use. Desktop applications such as Firefox and OpenOffice.org are not yet available for MINIX 3, however.

As of version 3.2.0, the userland was mostly replaced by that of NetBSD and support from pkgsrc became possible, increasing the available software applications that MINIX can use. Clang replaced the prior compiler (with GCC now having to be manually compiled), and GDB, the GNU Debugger, was ported. MINIX 3.3.0, released in September 2014, brought ARM support. MINIX 3.4.0RC, Release Candidates became available in January 2016. However, a stable release of MINIX 3.4.0 is yet to be announced, and MINIX development has been dormant since 2018. MINIX supports many programming languages, including C, C++, FORTRAN, Modula-2, Pascal, Perl, Python, and Tcl. Over 50 people attended MINIXCon 2016, a conference to discuss the history and future of MINIX. All Intel chipsets post-2015 are running MINIX 3 internally as the software component of the Intel Management Engine.

Relationship with Linux

… excerpt ends here. Continue reading the full article.

Illustrations

Minix illustration
Minix illustration
Minix: MINIX 2.0.4 system startup and login prompt
MINIX 2.0.4 system startup and login prompt
Minix: MINIX 2.0.4 shell interaction
MINIX 2.0.4 shell interaction
Minix: MINIX 3 running X11 with the twm window manager
MINIX 3 running X11 with the twm window manager

Worked examples

Example 1 — a first encounter with Minix

Start with the simplest possible case. Write down what Minix claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Minix before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Minix ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Minix

In research
Minix appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Minix in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Minix is common in secondary-school and first-year university syllabi. It links to neighbouring topics 1987 software, ARM operating systems, Computer-related introductions in 1987, so understanding it makes those chapters shorter.
In everyday life
Look for Minix outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Minix in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Minix means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Minix out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Minix in simple terms?

MINIX is a Unix-like operating system based on a microkernel architecture, first released in 1987 and written by American-Dutch computer scientist Andrew S. Tanenbaum.

Why does Minix matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Minix?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Minix.

Tags

  • 1987 software
  • ARM operating systems
  • Computer-related introductions in 1987
  • Computer science in the Netherlands
  • Dutch inventions
  • Educational operating systems
  • Free software operating systems
  • Information technology in the Netherlands
  • Lightweight Unix-like systems
  • Microkernel-based operating systems
  • Microkernels
  • Minix

Keep exploring