Minix

Last updated

MINIX
Minix3 Logo.png
Minix 3.3.0 login prompt 2 screenshot.png
The MINIX 3.3.0 login prompt
Developer Andrew S. Tanenbaum, et al.
Written in C
OS family Unix-like
Working stateAbandoned
Source model Open-source
Initial release1987;37 years ago (1987)
Latest release 3.3.0 [1] / 16 September 2014;10 years ago (2014-09-16)
Latest preview 3.4.0rc6 [2] / 9 May 2017;7 years ago (2017-05-09)
Repository
Marketing target Teaching (v1, v2)
Embedded systems (v3)
Available in English
Update methodCompile from source code
Package manager N/A
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 [lower-alpha 1] [4]
2000: BSD 3-Clause [5] [6] [7]
1995: Proprietary [8]
1987: Proprietary [9]
Official website www.minix3.org

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

Contents

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 Startup Login.png
MINIX 2.0.4 system startup and login prompt
MINIX 2.0.4 shell interaction MINIX 2.0.4 Shell Interaction.png
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

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.2 running the "top" system monitoring command MINIX 3.2 Top Command.png
MINIX 3.2 running the "top" system monitoring command
MINIX 3 running X11 with the twm window manager Minix 3.png
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

Related Research Articles

<span class="mw-page-title-main">Executable and Linkable Format</span> Standard file format for executables, object code, shared libraries, and core dumps.

In computing, the Executable and Linkable Format is a common standard file format for executable files, object code, shared libraries, and core dumps. First published in the specification for the application binary interface (ABI) of the Unix operating system version named System V Release 4 (SVR4), and later in the Tool Interface Standard, it was quickly accepted among different vendors of Unix systems. In 1999, it was chosen as the standard binary file format for Unix and Unix-like systems on x86 processors by the 86open project.

<span class="mw-page-title-main">Linus Torvalds</span> Creator and lead developer of the Linux kernel (born 1969)

Linus Benedict Torvalds is a Finnish and American software engineer who is the creator and lead developer of the Linux kernel. He also created the distributed version control system Git.

A monolithic kernel is an operating system architecture with the entire operating system running in kernel space. The monolithic model differs from other architectures such as the microkernel in that it alone defines a high-level virtual interface over computer hardware. A set of primitives or system calls implement all operating system services such as process management, concurrency, and memory management.

Darwin is the core Unix-like operating system of macOS, iOS, watchOS, tvOS, iPadOS, audioOS, visionOS, and bridgeOS. It previously existed as an independent open-source operating system, first released by Apple Inc. in 2000. It is composed of code derived from NeXTSTEP, FreeBSD, other BSD operating systems, Mach, and other free software projects' code, as well as code developed by Apple.

OSF/1 is a variant of the Unix operating system developed by the Open Software Foundation during the late 1980s and early 1990s. OSF/1 is one of the first operating systems to have used the Mach kernel developed at Carnegie Mellon University, and is probably best known as the native Unix operating system for DEC Alpha architecture systems.

<span class="mw-page-title-main">Alexis de Tocqueville Institution</span> American conservative think tank

The Alexis de Tocqueville Institution (AdTI) was a Washington, D.C. based think tank.

Samizdat: And Other Issues Regarding the 'Source' of Open Source Code is a 2004 report by Kenneth Brown. The report suggests that the Linux kernel may have been created or distributed illegally and that open-source software may be generally subject to such abuses.

The Minix file system is the native file system of the Minix operating system. It was written from scratch by Andrew S. Tanenbaum in the 1980s and aimed to replicate the structure of the Unix File System while omitting complex features, and was intended to be a teaching aid. It largely fell out of favour among Linux users by 1994 due to the popularity of other filesystems - most notably ext2 - and its lack of features, including limited partition sizes and filename length limits.

A kernel is a component of a computer operating system. A comparison of system kernels can provide insight into the design and architectural choices made by the developers of particular operating systems.

<span class="mw-page-title-main">Tanenbaum–Torvalds debate</span> 1990s debate regarding the Linux kernel

The Tanenbaum–Torvalds debate was a written debate between Andrew S. Tanenbaum and Linus Torvalds, regarding the Linux kernel and kernel architecture in general. Tanenbaum, the creator of Minix, began the debate in 1992 on the Usenet discussion group comp.os.minix, arguing that microkernels are superior to monolithic kernels and therefore Linux was, even in 1992, obsolete. The debate has sometimes been considered a flame war.

<span class="mw-page-title-main">Minix 3</span> Unix-like operating system

Minix 3 is a small, Unix-like operating system. It is published under a BSD-3-Clause license and is a successor project to the earlier versions, Minix 1 and 2.

<span class="mw-page-title-main">Linux</span> Family of Unix-like operating systems

Linux is a generic name for a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution (distro), which includes the kernel and supporting system software and libraries, many of which are provided by the GNU Project.

Linux began in 1991 as a personal project by Finnish student Linus Torvalds to create a new free operating system kernel. The resulting Linux kernel has been marked by constant growth throughout its history. Since the initial release of its source code in 1991, it has grown from a small number of C files under a license prohibiting commercial distribution to the 4.15 version in 2018 with more than 23.3 million lines of source code, not counting comments, under the GNU General Public License v2 with a syscall exception meaning anything that uses the kernel via system calls are not subject to the GNU GPL.

<i>Operating Systems: Design and Implementation</i> Computer science textbook

Operating Systems: Design and Implementation is a computer science textbook written by Andrew S. Tanenbaum, with help from Albert S. Woodhull. The book describes the principles of operating systems and demonstrates their application in the source code of Tanenbaum's MINIX, a free Unix-like operating system designed for teaching purposes. The publisher is Prentice Hall (1987). The source code for MINIX was included as part of the original 719 pages of text. Later versions of the three editions also included loadable disks with MINIX.

<span class="mw-page-title-main">Kernel (operating system)</span> Core of a computer operating system

The kernel is a computer program at the core of a computer's operating system and generally has complete control over everything in the system. The kernel is also responsible for preventing and mitigating conflicts between different processes. It is the portion of the operating system code that is always resident in memory and facilitates interactions between hardware and software components. A full kernel controls all hardware resources via device drivers, arbitrates conflicts between processes concerning such resources, and optimizes the utilization of common resources e.g. CPU & cache usage, file systems, and network sockets. On most systems, the kernel is one of the first programs loaded on startup. It handles the rest of startup as well as memory, peripherals, and input/output (I/O) requests from software, translating them into data-processing instructions for the central processing unit.

<span class="mw-page-title-main">Unix-like</span> Operating system that behaves similarly to Unix, e.g. Linux

A Unix-like operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Unix-like application is one that behaves like the corresponding Unix command or shell. Although there are general philosophies for Unix design, there is no technical standard defining the term, and opinions can differ about the degree to which a particular operating system or application is Unix-like.

<span class="mw-page-title-main">Linux kernel</span> Free Unix-like operating system kernel

The Linux kernel is a free and open source, UNIX-like kernel that is used in many computer systems worldwide. The kernel was created by Linus Torvalds in 1991 and was soon adopted as the kernel for the GNU operating system (OS) which was created to be a free replacement for Unix. Since the late 1990s, it has been included in many operating system distributions, many of which are called Linux. One such Linux kernel operating system is Android which is used in many mobile and embedded devices.

<span class="mw-page-title-main">NetBSD</span> Free and open-source Unix-like operating system

NetBSD is a free and open-source Unix-like operating system based on the Berkeley Software Distribution (BSD). It was the first open-source BSD descendant officially released after 386BSD was forked. It continues to be actively developed and is available for many platforms, including servers, desktops, handheld devices, and embedded systems.

The history of the Berkeley Software Distribution begins in the 1970s.

References

  1. 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.
  2. "MINIX 3.4 RC6 Released - Phoronix". Archived from the original on 18 March 2022. Retrieved 18 June 2018.
  3. "Intel ME: The Way of Static Analysis". Archived from the original on 1 July 2017. Retrieved 4 July 2017.
  4. 1 2 "The MINIX license". Archived from the original on 24 November 2005. Retrieved 24 November 2005.
  5. "MINIX license change". Archived from the original on 6 December 2022. Retrieved 23 December 2023.
  6. 1 2 "MINIX is now available under the BSD license". Archived from the original on 8 May 2006. Retrieved 14 June 2021.
  7. 1 2 "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.
  8. "License (1.7.0 to 2.0.2)". Archived from the original on 26 July 1997. Retrieved 14 June 2021.
  9. "Minix versions and their use in teaching". Archived from the original on 11 July 2006. Retrieved 14 June 2021.
  10. 1 2 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.
  11. 1 2 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.
  12. "MINIX advertisement". Computerworld. Vol. 13, no. 31. 30 July 1979. p. 38. Retrieved 22 March 2022.
  13. Tanenbaum, Andrew S.; Woodhull, Albert S. (1997) [1986]. Operating Systems Design and Implementation (Second ed.). ISBN   0-13-638677-6. OCLC   35792209 . Retrieved 2 August 2011.
  14. "MacMinix". GitHub . Archived from the original on 26 February 2021. Retrieved 8 August 2014.
  15. 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.
  16. Flouris, M. "Installing and running MINIX for Solaris (SMX)". Archived from the original on 12 May 2016. Retrieved 2 August 2011.
  17. 1 2 "BSD-3-Clause". Archived from the original on 14 April 2000. Retrieved 14 June 2021.
  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. S2CID   30216714.
  19. "License". GitHub . Archived from the original on 15 June 2021. Retrieved 15 June 2021.
  20. Schmidt, Ulrich (10 November 2010). "New to minix". Archived from the original on 28 May 2013. Retrieved 2 August 2011.
  21. "MINIX Releases". wiki.minix3.org. Archived from the original on 31 May 2012. Retrieved 29 February 2012.
  22. 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.
  23. "Index of /iso/snapshot/". download.minix3.org. Archived from the original on 25 February 2013. Retrieved 14 October 2016.
  24. "git.minix3.org Git - minix.git/summary". git.minix3.org. Archived from the original on 16 January 2016. Retrieved 23 September 2022.
  25. "MINIXCon 2016". www.minix3.org. Archived from the original on 3 June 2018. Retrieved 14 October 2016.
  26. "Positive Technologies research". blog.ptsecurity.com. Archived from the original on 28 August 2017. Retrieved 6 September 2017.
  27. 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.
  28. 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.
  29. Tanenbaum, Andrew S. (12 May 2006). "Tanenbaum-Torvalds Debate: Part II" . Retrieved 2 August 2011.
  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. Archived from the original on 22 October 2004. Retrieved 2 August 2011.{{cite web}}: CS1 maint: unfit URL (link)