Minix
View on Wikipedia
| MINIX | |
|---|---|
The MINIX 3.3.0 login prompt | |
| Developer | Andrew S. Tanenbaum, et al. |
| Written in | C |
| OS family | Unix-like |
| Working state | Abandoned |
| Source model | Open-source |
| Initial release | 1987 |
| Latest release | 3.3.0[1] / 16 September 2014 |
| Latest preview | 3.4.0rc6[2] / 9 May 2017 |
| Repository | |
| Marketing target | Teaching (v1, v2) Embedded systems (v3) |
| Available in | English |
| Update method | Compile from source code |
| Package manager | N/A |
| Supported platforms | IBM PC compatibles, 68000, SPARC, Atari ST, Amiga, Macintosh, SPARCstation, Intel 386, NS32532, ARM, Inmos transputer, Intel Management Engine[3] |
| Kernel type | Microkernel |
| Userland | BSD (NetBSD) |
| License | 2005: BSD 3-Clause[a][4] 2000: BSD 3-Clause[5][6][7] 1995: Proprietary[8] 1987: Proprietary[9] |
| Official website | www |
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[10] 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.[11][10]
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.[6][12] 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.[13][14] 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
[edit]MINIX 1.0
[edit]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.[15] 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.[16]
Tanenbaum originally developed MINIX for compatibility with the IBM PC and IBM PC/AT microcomputers available at the time.
MINIX 1.4
[edit]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 (aka CDS68020). There is an SD Card image available from https://github.com/mevenson/minix-for-the-PT68K-2-4.
MINIX 1.5
[edit]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,[17] 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
[edit]

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, 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.[18][19]
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.[20]
Minix-vmd
[edit]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
[edit]

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 new 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."[21]
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.[22]

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. MINIX 3 also has support for virtual memory management, making it suitable for desktop OS use.[23] 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.[24][25]
MINIX 3.3.0, released in September 2014, brought ARM support.
MINIX 3.4.0RC, Release Candidates became available in January 2016.[26] However, a stable release of MINIX 3.4.0 is yet to be announced, and MINIX development has been dormant since 2018.[27]
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.[28]
All Intel chipsets post-2015 are running MINIX 3 internally as the software component of the Intel Management Engine.[29][30]
Relationship with Linux
[edit]Early influence
[edit]Linus Torvalds used and appreciated MINIX,[31] but his design deviated from the MINIX architecture in significant ways, most notably by employing a monolithic kernel instead of a microkernel. This was disapproved of by Tanenbaum in the Tanenbaum–Torvalds debate. Tanenbaum explained again his rationale for using a microkernel in May 2006.[32]
Early Linux kernel development was done on a MINIX host system, which led to Linux inheriting various features from MINIX, such as the MINIX file system. Eric Raymond claimed that Linus hasn't actually written Linux from scratch, but rather reused source code of MINIX itself to have working codebase. As the development progressed, MINIX code was gradually phased out completely.[33]
Samizdat claims
[edit]In May 2004, Kenneth Brown of the Alexis de Tocqueville Institution made the accusation that major parts of the Linux kernel had been copied from the MINIX codebase, in a book named Samizdat.[34] These accusations were rebutted universally—most prominently by Tanenbaum, who strongly criticised Brown and published a long rebuttal on his own personal Web site, also claiming that Brown was funded by Microsoft.[13][14]
Licensing
[edit]At the time of MINIX's original development, its license was relatively liberal. Its licensing fee was very small ($69) relative to those of other operating systems. Tanenbaum wished for MINIX to be as accessible as possible to students, but his publisher was unwilling to offer material (such as the source code) that could be copied freely, so a restrictive license requiring a nominal fee (included in the price of Tanenbaum's book) was applied as a compromise. This prevented the use of MINIX as the basis for a freely distributed software system.
When free and open-source Unix-like operating systems such as Linux and 386BSD became available in the early 1990s, many volunteer software developers abandoned MINIX in favor of these. In April 2000, MINIX became free and open-source software under the BSD-3-Clause license, which was retroactively applied to all previous versions.[20][7] However, by this time other operating systems had surpassed its capabilities, and it remained primarily an operating system for students and hobbyists. In late 2005, MINIX was relicensed with a fourth clause added to the BSD-3-Clause license.[4]
See also
[edit]- MINIX file system
- Redox, an operating system in Rust using a MINIX-like kernel
- Xinu
- xv6
Notes
[edit]- ^ BSD 3-Clause with a fourth clause
References
[edit]- ^ Michael Larabel (16 September 2014). "Minix 3.3 Released With Cortex-A8 ARM Support, NetBSD Userland Compatibility". Phoronix. Archived from the original on 25 March 2022. Retrieved 11 May 2020.
- ^ "MINIX 3.4 RC6 Released - Phoronix". Archived from the original on 18 March 2022. Retrieved 18 June 2018.
- ^ "Intel ME: The Way of Static Analysis". Archived from the original on 1 July 2017. Retrieved 4 July 2017.
- ^ a b "The MINIX license". Archived from the original on 24 November 2005. Retrieved 24 November 2005.
- ^ "MINIX license change". Archived from the original on 6 December 2022. Retrieved 23 December 2023.
- ^ a b "MINIX is now available under the BSD license". Archived from the original on 8 May 2006. Retrieved 14 June 2021.
- ^ a b "Minix". Archived from the original on 13 October 2006. Retrieved 15 June 2021.
The Minix license changed in April 2000, and applies retroactively to all previous Minix distributions, even though they still carry the old, more restrictive license within.
- ^ "License (1.7.0 to 2.0.2)". Archived from the original on 26 July 1997. Retrieved 14 June 2021.
- ^ "Minix versions and their use in teaching". Archived from the original on 11 July 2006. Retrieved 14 June 2021.
- ^ a b Anthes, Gary. "Timeline: 40 Years Of Unix". Computerworld. Retrieved 13 February 2025.
- ^ Bentson, Randolph. "The Humble Beginnings of Linux". Association for Computing Machinery. Retrieved 21 November 2024.
- ^ Byfield, Bruce (1 August 2010). "An Introduction to MINIX | Linux Journal". www.linuxjournal.com. Retrieved 5 December 2024.
- ^ a b Tanenbaum, Andrew S. (20 May 2004). "Some Notes on the "Who wrote Linux" Kerfuffle, Release 1.5". Archived from the original on 18 August 2010. Retrieved 20 August 2016.
- ^ a b Tanenbaum, Andrew S.; Woodhull, Albert S.; Sambuc, Lionel (11 March 2015). "MINIX 3 FAQ". Archived from the original on 26 April 2019. Retrieved 20 August 2016.
- ^ "MINIX advertisement". Computerworld. Vol. 13, no. 31. 30 July 1979. p. 38. Retrieved 22 March 2022.
- ^ Tanenbaum, Andrew S.; Woodhull, Albert S. (1997) [1986]. Operating Systems Design and Implementation (Second ed.). Prentice Hall. ISBN 0-13-638677-6. OCLC 35792209. Retrieved 2 August 2011.
- ^ "MacMinix". GitHub. Archived from the original on 26 February 2021. Retrieved 8 August 2014.
- ^ Tanenbaum, Andrew S.; Woodhull, Albert S.; Bot, Kees (22 July 2005). "Welcome to MINIX" (TXT). Archived from the original on 17 April 2016. Retrieved 2 August 2011.
- ^ Flouris, M. "Installing and running MINIX for Solaris (SMX)". Archived from the original on 12 May 2016. Retrieved 2 August 2011.
- ^ a b "BSD-3-Clause". Archived from the original on 14 April 2000. Retrieved 14 June 2021.
- ^ Herder, J. N.; Bos, H.; Gras, B.; Homburg, P.; Tanenbaum, A. S. (July 2006). "MINIX 3: a highly reliable, self-repairing operating system". ACM SIGOPS Operating Systems Review. 40 (3): 80–89. doi:10.1145/1151374.1151391. S2CID 30216714.
- ^ "License". GitHub. Archived from the original on 15 June 2021. Retrieved 15 June 2021.
- ^ Schmidt, Ulrich (10 November 2010). "New to minix". Archived from the original on 28 May 2013. Retrieved 2 August 2011.
- ^ "MINIX Releases". wiki.minix3.org. Archived from the original on 31 May 2012. Retrieved 29 February 2012.
- ^ Vervloesem, Koem (7 March 2012). "MINIX 3.2: A microkernel with NetBSD applications". lwn.net. Archived from the original on 17 June 2018. Retrieved 17 June 2018.
- ^ "Index of /iso/snapshot/". download.minix3.org. Archived from the original on 25 February 2013. Retrieved 14 October 2016.
- ^ "git.minix3.org Git - minix.git/summary". git.minix3.org. Archived from the original on 16 January 2016. Retrieved 23 September 2022.
- ^ "MINIXCon 2016". www.minix3.org. Archived from the original on 3 June 2018. Retrieved 14 October 2016.
- ^ "Positive Technologies research". blog.ptsecurity.com. Archived from the original on 28 August 2017. Retrieved 6 September 2017.
- ^ Vaughan-Nichols, Steven (6 November 2017). "MINIX: Intel's hidden in-chip operating system". ZDNET. Archived from the original on 3 August 2023. Retrieved 19 April 2019.
- ^ Moody, Glyn (25 August 2015). "How Linux was born, as told by Linus Torvalds himself". Ars Technica. Archived from the original on 25 August 2015. Retrieved 25 August 2015.
- ^ Tanenbaum, Andrew S. (12 May 2006). "Tanenbaum-Torvalds Debate: Part II". Retrieved 2 August 2011.
- ^ Raymond, Eric (1999). The Cathedral & the Bazaar. O'Reilly Media. p. 33. ISBN 1-56592-724-9.
- ^ Brown, Kenneth (4 June 2004). "Samizdat's critics… Brown replies". Alexis de Tocqueville Institution. Archived from the original on 22 October 2004. Retrieved 2 August 2011.
External links
[edit]Minix
View on GrokipediaOverview
Definition and Purpose
MINIX is a lightweight, Unix-like operating system based on a microkernel architecture, designed to provide a POSIX-compliant environment for application portability since version 2.0.[4] This compliance ensures that MINIX adheres to the IEEE standard for system calls and interfaces, allowing programs written for Unix systems to run with minimal modifications.[4] The core purpose of MINIX is to serve as an educational tool for teaching operating system concepts, prioritizing simplicity and modularity to demonstrate fundamental kernel design principles.[2] Developed by Andrew S. Tanenbaum, it enables students to explore the internals of an OS through its transparent structure, where key components operate as independent processes.[2] A distinguishing feature of MINIX is its contrast with monolithic kernels, as it emphasizes reliability by using message passing for inter-component communication, thereby isolating faults and enhancing system stability.[2] This design philosophy underscores modularity, allowing components like drivers and file systems to run in user mode rather than within the kernel itself.[2] Initially targeted at university students and educators, MINIX is distributed with its complete source code and accompanied by a dedicated textbook to facilitate hands-on learning and experimentation.[2]Creator and Initial Release
MINIX was created by Andrew S. Tanenbaum, an American-Dutch computer scientist and professor emeritus of computer science at Vrije Universiteit Amsterdam, where he taught operating systems courses.[5][6] Tanenbaum, who earned his Ph.D. from the University of California, Berkeley, and had previously used AT&T Unix Version 6 for teaching with the aid of John Lions' line-by-line commentary, faced restrictions when AT&T prohibited the distribution of Version 7 source code for educational purposes in the mid-1980s.[7] Motivated by the high cost and inaccessibility of commercial Unix systems for students—which could exceed tens of thousands of dollars—Tanenbaum sought to develop an affordable, Unix-like operating system that could be dissected and studied in classrooms, targeting the emerging low-cost IBM PC platform starting at around $1,500.[2] The initial release, MINIX 1.0, occurred in 1987 and accompanied the first edition of Tanenbaum's textbook Operating Systems: Design and Implementation, which provided a detailed exposition of the system's internals.[2] Written primarily in C with some x86 assembly language for low-level components, MINIX 1.0 totaled about 12,000 lines of code and was designed for IBM PC compatibles equipped with at least 256 KB of RAM and a single 360 KB floppy drive, fitting entirely on eight such disks.[2] This version emulated key Unix Version 7 behaviors while emphasizing a modular, microkernel architecture to facilitate teaching concepts like process management and file systems. MINIX 1.0 was distributed through Prentice Hall alongside the textbook for $69, including the full source code on floppy disks to enable pedagogical analysis, and was also shared via the Usenet newsgroup comp.os.minix, which Tanenbaum helped establish shortly after release.[2] Shortly after its release, the newsgroup attracted over 40,000 readers within the first month, reflecting its quick uptake as an educational tool.[2]Historical Development
MINIX 1 Era
MINIX 1.0 was released in 1987 by Andrew S. Tanenbaum at Vrije Universiteit Amsterdam as a Unix-like operating system designed for educational purposes, providing system call compatibility with AT&T Unix Version 7 (V7) while running on affordable IBM PC hardware.[2][7] The initial version targeted 8088-based PCs operating at 4.77 MHz with a minimum of 256 KB RAM and a single 360 KB floppy disk for booting, emphasizing simplicity to fit within the constraints of early personal computers lacking hard disks.[2] It included a compact microkernel handling core functions such as scheduling, interprocess communication, and basic device drivers, alongside user-space processes for the file system and memory management.[2] Key enhancements in the MINIX 1 series centered on its modular microkernel design, which separated system components to promote reliability and ease of study. The Minix file system (Minix FS), implemented as a user-space process, provided a simple hierarchical structure with inodes for file metadata, supporting basic operations like reading, writing, and directory traversal while maintaining V7 compatibility.[8] Process management featured full multiprogramming with a round-robin scheduler in the kernel, allowing multiple user processes to share CPU time, and device drivers were structured as separate kernel-mode tasks, scheduled independently to isolate potential failures from the core kernel.[2] These elements, along with over 60 standard Unix utilities (fromar to wc), enabled a self-hosting environment where the system could compile its own source code, all distributed across eight 360 KB floppy disks.[2]
Subsequent updates refined the system for broader usability. By version 1.5 in 1991, MINIX supported protected mode execution on 286 and 386 processors, extended memory up to 16 MB, and up to three simultaneous users via RS-232 serial lines.[8] Hardware compatibility expanded beyond initial x86 PCs to include peripherals like Ethernets for distributed computing (initially via Tanenbaum's Amoeba protocols) and ports to platforms such as Macintosh, Amiga, Atari ST, and Sun SPARCstations.[8][2] Although the standard 1.5 distribution used a K&R C compiler, community efforts introduced ANSI C compatibility and optional TCP/IP networking through kernel recompilation, enhancing networking capabilities for academic experiments.[8]
The MINIX 1 era profoundly influenced computing education, as the full source code accompanied Tanenbaum's 1987 textbook Operating Systems: Design and Implementation, allowing students to modify kernel internals, experiment with process scheduling, and observe microkernel behaviors in real-time.[2][7] Adopted widely in university courses worldwide due to AT&T's licensing restrictions on Unix V7, it served as a practical alternative for teaching operating system principles.[7] The user base grew among academics and hobbyists, with Usenet discussions fostering contributions; notably, it inspired Linus Torvalds, a university student, to develop Linux as a free alternative while studying MINIX.[7] This grassroots adoption highlighted MINIX's role in sparking interest in open-source kernel development during the late 1980s and early 1990s.[2]
