Minix
![]() | |
![]() The MINIX 3.3.0loginprompt | |
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 fromsource code |
Package manager | N/A |
Platforms | IBM PC compatibles,68000,SPARC, |
Kerneltype | 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(frommini-Unix) is aUnix-likeoperating systembased on amicrokernelarchitecture.Since version 2.0, it has beenPOSIXcompliant.[10][11]
Early versions of MINIX were created byAndrew S. Tanenbaumfor educational purposes. Starting withMINIX 3,the primary aim of development shifted from education to the creation of ahighly reliableandself-healingmicrokernel OS. MINIX 3 was developed asopen-source software.
MINIX was first released in 1987, with its complete source code made available to universities for study in courses and research. It has beenfree and open-source softwaresince it was relicensed under theBSD 3-Clauselicense in April 2000.[6]
Implementation
[edit]MINIX 1.0
[edit]Andrew S. Tanenbaumcreated MINIX atVrije UniversiteitinAmsterdamto exemplify the principles conveyed in histextbook,Operating Systems: Design and Implementation(1987). (Despite sharing a name, it has no relation to the older MINIX from Digital Systems House, Inc.[12]based onAT&T Unixcode.)
An abridged 12,010 lines of theCsource codeof thekernel,memory manager,andfile systemof MINIX 1.0 are printed in the book.Prentice-Hallalso released MINIX source code and binaries onfloppy diskwith a reference manual. MINIX 1 was system-call compatible withSeventh Edition Unix.[13]
Tanenbaum originally developed MINIX for compatibility with theIBM PCandIBM PC/AT8088microcomputersavailable at the time.
MINIX 1.5
[edit]MINIX 1.5, released in 1991, included support forMicroChannelIBM PS/2systems and was alsoportedto theMotorola 68000andSPARCarchitectures, supporting theAtari ST,Amiga,Macintosh,[14]andSunSPARCstationcomputer platforms.There were also unofficial ports toIntel 386PC compatibles(in32-bitprotected mode),National SemiconductorNS32532,ARMandInmostransputerprocessors.Meiko Scientificused an early version of MINIX as the basis for theMeikOSoperating system for its transputer-basedComputing Surfaceparallel computers.
MINIX 2.0
[edit]![](https://upload.wikimedia.org/wikipedia/commons/thumb/5/5d/MINIX_2.0.4_Startup_Login.png/220px-MINIX_2.0.4_Startup_Login.png)
![](https://upload.wikimedia.org/wikipedia/commons/thumb/4/45/MINIX_2.0.4_Shell_Interaction.png/220px-MINIX_2.0.4_Shell_Interaction.png)
Demand for the 68k-architectures waned, however, and MINIX 2.0, released in 1997, was only available for thex86andSolaris-hosted SPARC architectures. It was the subject of the second edition of Tanenbaum's textbook, cowritten with Albert Woodhull and was distributed on aCD-ROMincluded with the book. MINIX 2.0 addedPOSIX.1 compliance, support for 386 and later processors in 32-bit mode and replaced theAmoebanetwork protocols included in MINIX 1.5 with aTCP/IPstack. A version of MINIX running as a user process underSunOSandSolariswas also available, a simulator named SMX (operating system) or justSMXfor short.[15][16]
Version 2.0.3 was released in May 2001. It was the first version after MINIX had been relicensed under theBSD-3-Clauselicense, which was retroactively applied to all previous versions.[17]
Minix-vmd
[edit]Minix-vmd is a variant of MINIX 2.0 for IntelIA-32-compatible processors, created by two Vrije Universiteit researchers, which addsvirtual memoryand support for theX Window System.
MINIX 3
[edit]![](https://upload.wikimedia.org/wikipedia/commons/thumb/2/2e/MINIX_3.2_Top_Command.png/220px-MINIX_3.2_Top_Command.png)
![](https://upload.wikimedia.org/wikipedia/commons/thumb/3/35/Minix_3.png/220px-Minix_3.png)
MINIX 3 was publicly announced on 24 October 2005 by Tanenbaum during his keynote speech at theAssociation 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."[18]
MINIX 3 currently supportsIA-32andARM architecturesystems. It is available in alive CDformat 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, includingBochs,QEMU,VMware WorkstationandFusion,VirtualBox,andMicrosoft Virtual PC.
Version 3.1.2 was released on 18 April 2006. It was the first version after MINIX had been relicensed under theBSD-3-Clauselicense with a new fourth clause.[19]
Version 3.1.5 was released on 5 November 2009. It containsX11,emacs,vi,cc,gcc,perl,Python,ash,bash,zsh,ftp,ssh,telnet,pine,and over 400 other commonUnixutility 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 forvirtual memorymanagement, making it suitable for desktop OS use.[20]Desktop applications such asFirefoxandOpenOffice.orgare not yet available for MINIX 3 however.
As of version 3.2.0, theuserlandwas mostly replaced by that ofNetBSDand support frompkgsrcbecame possible, increasing the available software applications that MINIX can use.Clangreplaced the prior compiler (withGCCnow having to be manually compiled), andGDB,the GNU debugger, was ported.[21][22]
MINIX 3.3.0, released in September 2014, brought ARM support.
MINIX 3.4.0RC, Release Candidates became available in January 2016.[23]However, a stable release of MINIX 3.4.0 is yet to be announced, and MINIX development has been dormant since 2018.[24]
MINIX supports many programming languages, includingC,C++,FORTRAN,Modula-2,Pascal,Perl,Python,andTcl.
Over 50 people attended MINIXCon 2016, a conference to discuss the history and future of MINIX.[25]
All Intel chipsets post-2015 are running MINIX 3 internally as the software component of theIntel Management Engine.[26][27]
Relationship with Linux
[edit]Early influence
[edit]Linus Torvaldsused and appreciated MINIX,[28]but his design deviated from the MINIX architecture in significant ways, most notably by employing amonolithic kernelinstead of amicrokernel.This was disapproved of by Tanenbaum in theTanenbaum–Torvalds debate.Tanenbaum explained again his rationale for using a microkernel in May 2006.[29]
EarlyLinux kerneldevelopment was done on a MINIX host system, which led toLinuxinheriting various features from MINIX, such as theMINIX file system.Eric Raymondclaimed 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.[30]
Samizdatclaims
[edit]In May 2004, Kenneth Brown of theAlexis de Tocqueville Institutionmade the accusation that major parts of the Linux kernel had been copied from the MINIX codebase, in a book namedSamizdat.[31]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 byMicrosoft.[10][11]
Licensing
[edit]At the time of MINIX's original development, itslicensewas 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 tostudents,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.
Whenfree and open-sourceUnix-like operating systems such asLinuxand386BSDbecame available in the early 1990s, manyvolunteersoftware developersabandoned MINIX in favor of these. In April 2000, MINIX becamefree and open-source softwareunder theBSD-3-Clauselicense, which was retroactively applied to all previous versions.[17][7]However, by this time other operating systems had surpassed its capabilities, and it remained primarily an operating system for students andhobbyists.In late 2005, MINIX was relicensed with a fourth clause added to theBSD-3-Clauselicense.[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.Archivedfrom the original on 25 March 2022.Retrieved11 May2020.
- ^"MINIX 3.4 RC6 Released - Phoronix".Archivedfrom the original on 18 March 2022.Retrieved18 June2018.
- ^"Intel ME: The Way of Static Analysis".Archived fromthe originalon 1 July 2017.Retrieved4 July2017.
- ^ab"The MINIX license".Archived fromthe originalon 24 November 2005.Retrieved24 November2005.
- ^"MINIX license change".Archivedfrom the original on 6 December 2022.Retrieved23 December2023.
- ^ab"MINIX is now available under the BSD license".Archivedfrom the original on 8 May 2006.Retrieved14 June2021.
- ^ab"Minix".Archivedfrom the original on 13 October 2006.Retrieved15 June2021.
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 fromthe originalon 26 July 1997.Retrieved14 June2021.
- ^"Minix versions and their use in teaching".Archivedfrom the original on 11 July 2006.Retrieved14 June2021.
- ^abTanenbaum, Andrew S.(20 May 2004)."Some Notes on the" Who wrote Linux "Kerfuffle, Release 1.5".Archived fromthe originalon 18 August 2010.Retrieved20 August2016.
- ^abTanenbaum, Andrew S.;Woodhull, Albert S.; Sambuc, Lionel (11 March 2015)."MINIX 3 FAQ".Archived fromthe originalon 26 April 2019.Retrieved20 August2016.
- ^"MINIX advertisement".Computerworld.Vol. 13, no. 31. 30 July 1979. p. 38.Retrieved22 March2022.
- ^Tanenbaum, Andrew S.;Woodhull, Albert S. (1997) [1986].Operating Systems Design and Implementation(Second ed.).ISBN0-13-638677-6.OCLC35792209.Retrieved2 August2011.
- ^"MacMinix".GitHub.Archivedfrom the original on 26 February 2021.Retrieved8 August2014.
- ^Tanenbaum, Andrew S.;Woodhull, Albert S.; Bot, Kees (22 July 2005)."Welcome to MINIX"(TXT).Archivedfrom the original on 17 April 2016.Retrieved2 August2011.
- ^Flouris, M."Installing and running MINIX for Solaris (SMX)".Archived fromthe originalon 12 May 2016.Retrieved2 August2011.
- ^ab"BSD-3-Clause".Archived fromthe originalon 14 April 2000.Retrieved14 June2021.
- ^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.S2CID30216714.
- ^"License".GitHub.Archivedfrom the original on 15 June 2021.Retrieved15 June2021.
- ^Schmidt, Ulrich (10 November 2010)."New to minix".Archivedfrom the original on 28 May 2013.Retrieved2 August2011.
- ^"MINIX Releases".wiki.minix3.org.Archived fromthe originalon 31 May 2012.Retrieved29 February2012.
- ^Vervloesem, Koem (7 March 2012)."MINIX 3.2: A microkernel with NetBSD applications".lwn.net.Archivedfrom the original on 17 June 2018.Retrieved17 June2018.
- ^"Index of /iso/snapshot/".download.minix3.org.Archivedfrom the original on 25 February 2013.Retrieved14 October2016.
- ^"git.minix3.org Git - minix.git/summary".git.minix3.org.Archivedfrom the original on 16 January 2016.Retrieved23 September2022.
- ^"MINIXCon 2016".minix3.org.Archivedfrom the original on 3 June 2018.Retrieved14 October2016.
- ^"Positive Technologies research".blog.ptsecurity.Archived fromthe originalon 28 August 2017.Retrieved6 September2017.
- ^Vaughan-Nichols, Steven (6 November 2017)."MINIX: Intel's hidden in-chip operating system".ZDNET.Archivedfrom the original on 3 August 2023.Retrieved19 April2019.
- ^Moody, Glyn (25 August 2015)."How Linux was born, as told by Linus Torvalds himself".Ars Technica.Archivedfrom the original on 25 August 2015.Retrieved25 August2015.
- ^Tanenbaum, Andrew S.(12 May 2006)."Tanenbaum-Torvalds Debate: Part II".Retrieved2 August2011.
- ^Raymond, Eric(1999).The Cathedral & the Bazaar.O'Reilly Media.p. 33.ISBN1-56592-724-9.
- ^Brown, Kenneth(4 June 2004)."Samizdat's critics… Brown replies".Alexis de Tocqueville Institution. Archived fromthe originalon 22 October 2004.Retrieved2 August2011.
External links
[edit]- MINIX
- 1987 software
- Computer-related introductions in 1987
- ARM operating systems
- 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
- Operating system distributions bootable from read-only media
- Software using the BSD license
- Unix variants