Minix ist ein Unix-ähnliches Betriebssystem, das von Andrew S. Tanenbaum als Lehrsystem entwickelt wurde. Der Quellcode des Minix-Kerns besteht aus etwa 12.500 Zeilen, hauptsächlich in der Programmiersprache C, und ist Teil von Tanenbaums Lehrbuch Operating Systems - Design and Implementation. Motivation Tanenbaums war unter anderem, dass der Quellcode von Unix nicht mehr für Lehrzwecke an Universitäten zur Verfügung stand.
Minix | |
---|---|
Entwickler | Andrew S. Tanenbaum |
Lizenz(en) | BSD-Lizenz |
Akt. Version | 3.1 (24. Oktober 2005) |
Abstammung | - |
www.minix3.org/ |
Das System wurde um 1987 zunächst für, auch für Studenten verfügbare Hardware (PC mit Intel 8088 Prozessor, 512 kByte RAM, ein Diskettenlaufwerk) entwickelt, enthielt aber alle Systemrufe der Unix-Version 7. Es verwirklicht Mehrprogrammbetrieb, Prozesse (Tasks in Minix), Pipes, Signale und enthält neben einem Mikrokernel Neuimplementationen vieler Unix-Kommandos, einen Editor und einen C-Compiler. Aufgrund fehlender Hardware-Unterstützung ist kein Speicherschutz und kein virtueller Speicher realisiert, auch die Netzwerkunterstützung fehlt zunächst.
Später wurde das System auf andere Prozessoren (Intel 80286 und 80386, Motorola 68000-Linie, Sun SPARC) portiert und erweitert.
Interessant ist der Mikrokernel (Unix hat einen monolithischen Kernel). Auf der untersten Ebene befinden sich der Scheduler als Task und die Gerätetreiber-Tasks. Das Dateisystem und das Speichermanagement laufen als je eine Task in der mittleren Ebene. Auf der obersten Ebene laufen die Anwenderprogramme. Die Systemrufe sind über Mitteilungen an die Tasks der unteren Ebenen realisiert, ebenso kommunizieren die Systemtasks über Mitteilungen.
Minix diente dem finnischen Informatik-Studenten Linus Torvalds als Entwicklungsumgebung für seinen Betriebssystem-Kernel Linux. Torvalds wollte zunächst die Fähigkeiten der neuen 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.
Der Grund dafür, dass Minix nie die Rolle spielte, die Linux spielen sollte, lag in der ursprünglich restriktiven Lizenzpolitik Andrew S. Tanenbaums begründet, der seinen Quellcode zwar offenlegte, aber nicht zur Weiterverwendung oder Abänderung freigab. Ein Lizenzwechsel erfolgte erst im April 2000.
Siehe auch
Literatur
- Andrew S. Tanenbaum, Albert S. Woodhull: Operating Systems: Design and Implementation. 2. Aufl. Prentice-Hall 1997 ISBN 0136386776