Software:Minix

From HandWiki
Revision as of 14:24, 9 February 2024 by Raymond Straus (talk | contribs) (simplify)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Short description: Unix-like operating system
MINIX
Minix3 Logo.png
The MINIX 3.3.0 login prompt
The MINIX 3.3.0 login prompt
DeveloperAndrew S. Tanenbaum, et al.
Written inC
OS familyUnix-like
Working stateAbandoned
Source modelOpen-source
Initial release1987; 37 years ago (1987)
|Final release|Latest release}}3.3.0[1] / 16 September 2014; 10 years ago (2014-09-16)
|Final preview|Latest preview}}3.4.0rc6[2] / 9 May 2017; 7 years ago (2017-05-09)
Marketing targetTeaching (v1, v2)
Embedded systems (v3)
Available inEnglish
Update methodCompile from source code
Package managerN/A
PlatformsIBM PC compatibles, 68000, SPARC, Atari ST, Amiga, Macintosh, SPARCstation, Intel 386, NS32532, ARM, Inmos transputer, Intel Management Engine[3]
Kernel typeMicrokernel
UserlandBSD (NetBSD)
License2005: BSD-3-Clause[lower-alpha 1][4]
2000: BSD-3-Clause[5][6][7]
1995: Proprietary[8]
1987: Proprietary[9]
Official websitewww.minix3.org

MINIX (from mini-Unix) is a Unix-like operating system based on a microkernel architecture. Since version 2.0, it has been Portable Operating System Interface (POSIX) compliant.[10][11]

Early versions of MINIX were created by Andrew S. Tanenbaum for educational purposes. Starting with MINIX 3, the primary aim of development shifted from education to the creation of a highly reliable and self-healing microkernel OS. MINIX 3 was developed as open-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 been free and open-source software since it was relicensed under the BSD-3-Clause license in April 2000.[6]

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.[12] 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 binaries on floppy disk with a reference manual. MINIX 1 was system-call compatible with Seventh Edition Unix.[13]

Tanenbaum originally developed MINIX for compatibility with the IBM PC and IBM PC/AT 8088 microcomputers available at the time.

MINIX 1.5

MINIX 1.5, released in 1991, included support for MicroChannel IBM PS/2 systems and was also ported to the Motorola 68000 and SPARC architectures, supporting the Atari ST, Amiga, Macintosh,[14] 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

MINIX 2.0.4 system startup and login prompt
MINIX 2.0.4 shell interaction

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.[15][16]

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.[17]

Minix-vmd

Main page: Software: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

Main page: Software:MINIX 3
MINIX 3.2 running the "top" system monitoring command
MINIX 3 running X11 with the twm window manager

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."[18]

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.[19]

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.[20] 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.[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, 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.[25]

All Intel chipsets post-2015 are running MINIX 3 internally as the software component of the Intel Management Engine.[26][27]

Relationship with Linux

Early influence

Linus Torvalds used and appreciated MINIX,[28] 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.[29]

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.[30]

Samizdat claims

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.[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 by Microsoft.[10][11]

Licensing

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.[17][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

Notes

  1. BSD-3-Clause with a fourth clause.

References

  1. Michael Larabel (2014-09-16). "Minix 3.3 Released With Cortex-A8 ARM Support, NetBSD Userland Compatibility". https://www.phoronix.com/scan.php?page=news_item&px=MTc4OTk. 
  2. MINIX 3.4 RC6 Released - Phoronix
  3. "Intel ME: The Way of Static Analysis". http://blog.ptsecurity.com/2017/04/intel-me-way-of-static-analysis.html. 
  4. 4.0 4.1 "The MINIX license". http://www.minix3.org/license.html. 
  5. "MINIX license change". https://groups.google.com/g/comp.os.minix/c/tBv9PBZiLys/m/MvK3BN4NKtEJ. 
  6. 6.0 6.1 "MINIX is now available under the BSD license". http://minix1.woodhull.com/faq/mxlicense.html. 
  7. 7.0 7.1 "Minix". https://www.minix-vmd.org/pub/minix/. "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." 
  8. "License (1.7.0 to 2.0.2)". http://www.cs.vu.nl/ftp/minix/LICENSE. 
  9. "Minix versions and their use in teaching". https://minix1.woodhull.com/teaching/teach_ver.html. 
  10. 10.0 10.1 Tanenbaum, Andrew S. (20 May 2004). "Some Notes on the "Who wrote Linux" Kerfuffle, Release 1.5". http://www.cs.vu.nl/~ast/brown/. 
  11. 11.0 11.1 Tanenbaum, Andrew S.; Woodhull, Albert S.; Sambuc, Lionel (11 March 2015). "MINIX 3 FAQ". http://wiki.minix3.org/doku.php?id=faq. 
  12. "MINIX advertisement". Computerworld 13 (31): 38. 1979-07-30. https://archive.org/details/sim_computerworld_1979-07-30_13_31/page/n39/. Retrieved 22 March 2022. 
  13. Tanenbaum, Andrew S.; Woodhull, Albert S. (1997). Operating Systems Design and Implementation (Second ed.). ISBN 0-13-638677-6. OCLC 35792209. https://archive.org/details/operatingsystems00tane. Retrieved 2 August 2011. 
  14. "MacMinix". https://github.com/macminix. 
  15. Tanenbaum, Andrew S.; Woodhull, Albert S.; Bot, Kees (22 July 2005). "Welcome to MINIX" (TXT). http://www.minix3.org/previous-versions/CD-ROM-2.0/README.TXT. 
  16. Flouris, M.. "Installing and running MINIX for Solaris (SMX)". http://www.csd.uoc.gr/~hy345/assignments/99b/smx_howto.html. 
  17. 17.0 17.1 "BSD-3-Clause". http://www.cs.vu.nl/pub/minix/LICENSE. 
  18. 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. 
  19. "License". https://github.com/Stichting-MINIX-Research-Foundation/minix/blob/v3.1.2/LICENSE. 
  20. Schmidt, Ulrich (10 November 2010). "New to minix". http://groups.google.com/group/minix3/msg/86c914a0c13376fe. 
  21. "MINIX Releases". wiki.minix3.org. http://wiki.minix3.org/en/MinixReleases. 
  22. Vervloesem, Koem (7 March 2012). "MINIX 3.2: A microkernel with NetBSD applications". https://lwn.net/Articles/485658/. 
  23. "Index of /iso/snapshot/". http://download.minix3.org/iso/snapshot/. 
  24. "git.minix3.org Git - minix.git/summary". https://git.minix3.org/index.cgi?p=minix.git;a=summary. 
  25. "MINIXCon 2016". http://www.minix3.org/conference/2016/program.html. 
  26. "Positive Technologies research". http://blog.ptsecurity.com/2017/08/disabling-intel-me.html. 
  27. Vaughan-Nichols, Steven (6 November 2017). "MINIX: Intel's hidden in-chip operating system" (in en). https://www.zdnet.com/article/minix-intels-hidden-in-chip-operating-system/. 
  28. Moody, Glyn (2015-08-25). "How Linux was born, as told by Linus Torvalds himself". Ars Technica. http://arstechnica.co.uk/business/2015/08/how-linux-was-born-as-told-by-linus-torvalds-himself/. 
  29. Tanenbaum, Andrew S. (12 May 2006). "Tanenbaum-Torvalds Debate: Part II". http://www.cs.vu.nl/~ast/reliable-os. 
  30. Raymond, Eric (1999). The Cathedral & the Bazaar. O'Reilly Media. p. 33. ISBN 1-56592-724-9. 
  31. Brown, Kenneth (4 June 2004). "Samizdat's critics… Brown replies". Alexis de Tocqueville Institution. http://adti.net/samizdat/brown.reply.june.04.html. 

External links