Minix (Betriebssystem)

unixoides Betriebssystem

Minix (Eigenschreibweise MINIX) ist ein freies unixoides Betriebssystem, das 1987 von Andrew S. Tanenbaum an der Freien Universität Amsterdam als Lehrsystem entwickelt wurde.[1][2] Der Quelltext des Minix-Kernels besteht aus etwa 12.000 Zeilen,[2] hauptsächlich in der Programmiersprache C, und ist Teil von Tanenbaums Lehrbuch Operating Systems – Design and Implementation. Eine Motivation für Minix war unter anderem, dass der Quellcode von Unix mit dem Erscheinen von Version 7 durch eine Entscheidung von AT&T nicht mehr für Lehrzwecke an Universitäten zur Verfügung stand. Wie Tanenbaum in einem Interview 2017 äußerte, war das angesichts der technologischen Entwicklung, die Minix anstieß – einschließlich der Entwicklung von Linux – einer der dümmsten Fehler der Industriegeschichte.[3]

Minix
Logo
Logo von Minix
Entwickler Andrew S. Tanenbaum
Lizenz(en) ähnlich BSD-Lizenz
Erstveröff. 1987
Akt. Version 3.3.0 (14. September 2014)
Kernel Microkernel
Abstammung Unix
↳ Minix
Kompatibilität POSIX
Sonstiges Größe: ca. 350 MiB
Startmedium: Festplatte, Live-CD
minix3.org

Geschichte Bearbeiten

Das System wurde um 1987 zunächst auf auch für Studenten verfügbarer Hardware (PC mit Intel 8088 Prozessor, 512 Kilobyte RAM, ein Diskettenlaufwerk) entwickelt, enthielt aber alle Systemaufrufe der Unix-Version 7. Es verwirklichte Mehrprogrammbetrieb, Prozesse (Tasks in Minix), Pipes, Signale und enthielt neben einem Microkernel Neuimplementierungen vieler Unix-Kommandos, einen Texteditor und einen C-Compiler. Aufgrund fehlender Hardware-Unterstützung war kein Speicherschutz und kein virtueller Speicher realisiert, auch die Netzwerkunterstützung fehlte zunächst.

Tanenbaum brachte Minix zunächst auf einem PC-Simulator zum Laufen, es stürzte aber regelmäßig ab, wenn er versuchte, es auf Intel-Chips zum Laufen zu bringen. Er wollte schon aufgeben, als ihn ein Student auf einen nicht dokumentierten Interrupt der Intel-Chips aufmerksam machte, der aktiviert wurde, falls die Chips heißliefen.[4]

Später wurde das System auf andere Prozessoren (Intel 80286 und 80386, Motorola-68000-Linie, Sun SPARC) portiert und erweitert.

Minix diente dem finnischen Informatik-Studenten Linus Torvalds als Entwicklungsumgebung für seinen Kernel Linux. Torvalds wollte zunächst die Fähigkeiten der neuen Intel 80386-Prozessorlinie (Multitasking, Paging) ausprobieren, entwickelte aber dann einen voll funktionsfähigen Kernel mit virtuellem Speicher und Speicherschutzmechanismen. Die Kommandos und der C-Compiler wurden durch GNU-Versionen ersetzt.

Minix spielte nie eine wichtige Rolle unter den Betriebssystemen. Die Lizenzpolitik Andrew S. Tanenbaums, der seinen Quellcode zwar offenlegte, aber nicht zur Weiterverwendung oder Abänderung freigab, war restriktiv. Ein Lizenzwechsel zur BSD-Lizenz erfolgte erst im April 2000. Danach war nur noch erforderlich, dass der originale Copyright-Text implementiert wird, nicht den Code für Konkurrenten offenzulegen. Tanenbaum wusste zwar, dass Intel an Minix interessiert war, da sie ihn kontaktierten und sogar um Änderungen im Code nachsuchten, von der technischen Umsetzung erfuhr er aber lange nichts.[4]

Im August 2017 wurde durch Untersuchungen von Sicherheitsforschern[5] bekannt, dass die Intel Management Engine Minix als Betriebssystem einsetzt.[6] Auch Tanenbaum hatte zuvor nichts davon gewusst. Durch den Einbau in die Intel-Chips ist Minix eines der meistverbreiteten Betriebssysteme überhaupt.

Design Bearbeiten

Wesentlicher konzeptioneller Bestandteil ist der Mikrokernel-Ansatz, im Gegensatz zum Konzept des monolithischen Kernels. Auf der untersten Ebene befinden sich der Scheduler als Task und die Gerätetreiber-Tasks. Das Dateisystem und das Speichermanagement laufen als je ein Task in der mittleren Ebene. Auf der obersten Ebene laufen die Anwenderprogramme. Die Systemaufrufe sind über Mitteilungen an die Tasks der unteren Ebenen realisiert, ebenso kommunizieren die Systemtasks über Mitteilungen.

Streit um Linux und Minix Bearbeiten

1992 griff Andrew S. Tanenbaum Linux wegen eines aus seiner Sicht veralteten Designs und eines zu liberalen Entwicklungsmodells an. Tanenbaum zeigte die Vorteile von Minix auf und kritisierte Linux scharf. Die entsprechenden Kritikpunkte von damals treffen teilweise heute noch auf Linux zu. Die Kritik ist jedoch nur teilweise berechtigt, da Tanenbaum die unterschiedlichen Beweggründe der beiden Systeme übersah, welche viele der Kritikpunkte hinfällig machen.

Minix-VMD Bearbeiten

Minix-VMD ist eine erweiterte Version des Lehrbetriebssystems Minix 2. Im Gegensatz zum ursprünglichen Minix ist es weder ein Lehrsystem noch ein allgemeinbrauchbares Betriebssystem, sondern es wurde erstellt, um spezielle Aufgaben zu erfüllen.

Das 32-Bit-Minix wurde von den Programmierern Philip Homburg und Kees Bot um eine virtuelle Speicherverwaltung und eine grafische Benutzeroberfläche mit dem X11-System erweitert.

Der Name leitet sich von Minix-386vm – also ein Minix für i386-Rechner mit virtuellem Speicher – ab. Das D aus VMD steht wie in BSD für Distribution.

Minix 3 Bearbeiten

 
Grafische Benutzeroberfläche (X11 mit twm) unter Minix 3

2005 erschien eine neue Version, Minix 3. Dieses System ist im Gegensatz zu seinen Vorgängern nicht nur als Lehrsystem konzipiert. Es ist POSIX-kompatibel, enthält Netzwerkunterstützung und verwendet die geschützte Speicherverwaltung der neueren Intel-Prozessoren.

Gerätetreiber laufen auf der obersten Ebene im Benutzermodus, wodurch dieses System besonders zuverlässig wird – bei Minix 2 liefen die Treiber noch auf der untersten Ebene. Alle Programme, die im privilegierten Kernel-Modus laufen müssen, besitzen zusammen nur ca. 4000 Zeilen Quelltext.[7] Des Weiteren gibt es Server-Prozesse. Ein besonderer unter diesen ist der Reincarnation Server, der für die Funktionsfähigkeit der Gerätetreiber sorgt. So startet er eine neue Kopie eines Gerätetreibers, falls dieser „gestorben“ ist. Ist der Gerätetreiber noch nicht beendet, reagiert aber nicht oder nicht richtig, so wird er vom Reincarnation Server beendet (kill) und anschließend ebenfalls neu gestartet. Das wird erst dadurch möglich, dass der Gerätetreiber ein normales Programm im Benutzer-Modus ist, und kein Kernel-Modul.[8]

Auf PCs kann das System von CD gestartet (Live-CD) oder auf die Festplatte installiert werden. Wie bei den Vorgängerversionen werden über 100 Programme sowie der komplette Quelltext einschließlich C-Compiler mitgeliefert.

Das System ist seit April 2000 mit einer modifizierten BSD-Lizenz geschützt und erlaubt den privaten wie kommerziellen Einsatz einschließlich eigener Erweiterungen. Minix 3 ist damit freie Software und mit der GNU General Public License kompatibel.

Maskottchen Bearbeiten

Das Maskottchen von Minix ist ein Waschbär, da er laut Andrew Tanenbaum klein und schlau sei und „Bugs“ fresse (engl. für sowohl Käfer als auch Programmfehler).[2][9] Ein Name wurde nicht vergeben.

Siehe auch Bearbeiten

Literatur Bearbeiten

  • Andrew S. Tanenbaum: Operating Systems – Design and Implementation. 3. Auflage. Prentice Hall, Upper Saddle River 2006, ISBN 0-13-142938-8.
  • Arnold Willemer: Eine Netzwerkimplementierung unter dem Betriebssystem MINIX für den Atari ST. 1990.

Weblinks Bearbeiten

Commons: MINIX – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise Bearbeiten

  1. Webseite von MINIX 3. Abgerufen am 24. August 2019 (englisch).
  2. a b c More about MINIX 3. Abgerufen am 28. Dezember 2014 (englisch).
  3. Tanenbaum, Interview mit IEEE Computer, zitiert in Stephen J. Vaughan-Nichols, MINIX's creator would have liked to have known Intel was using it, zdnet, 8. November 2017
  4. a b Stephen J. Vaughan-Nichols: MINIX's creator would have liked to have known Intel was using it, zdnet, 8. November 2017
  5. Christof Windeck: Intel Management Engine (ME) weitgehend abschaltbar. In: Heise open Online. 29. August 2017 (heise.de [abgerufen am 29. August 2017]).
  6. Disabling Intel ME 11 via undocumented mode. Archiviert vom Original (nicht mehr online verfügbar) am 2. August 2021; abgerufen am 29. August 2017 (englisch).  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/blog.ptsecurity.com
  7. Reliability in MINIX 3. Abgerufen am 28. Dezember 2014 (englisch).
  8. Keywan Najafi Tonekaboni: Andrew Tanenbaums Minix 3. In: Heise open. 25. August 2008 (heise.de [abgerufen am 8. Juni 2012]).
  9. Anika Kehrer: Fosdem 2010: Andrew Tanenbaum setzt Verlässlichkeit vor Performanz. In: Linux-Magazin Online. 7. Februar 2010 (linux-magazin.de [abgerufen am 8. Juni 2012]).