5,0 van 5 sterren
Unix – 50 Jahre.
Beoordeeld in Duitsland op 6 februari 2020
Betriebssysteme werden in der Regel nicht mit Legenden oder Philosophie in Verbindung gebracht, aber Unix ist anders... – Unix hat seine Paradigmen, Helden, Mythen und treue User Groups.
Brian W. Kerninghan ist Professor für Computerwissenschaft an der Universität Princeton, er ist Mitautor von Büchern wie “The C Programming Lanuage“ (mit Dennis M. Ritchie), “The UNIX Programming Environment“ (mit Rob Pike), “The AWK Programming Language“ (mit A.V. Aho und P.J. Weinberger), die einen regelrechten Kultstatus erworben haben und immer wieder neu aufgelegt werden; aus neuerer Zeit gesellt sich “The Go Programming Language“ (mit A. Donovan) hinzu.
Das hier vorliegenden Büchlein ist dem Ursprung und der nunmehr fünfzigjährigen Geschichte von Unix gewidmet. Zwar war der Autor nie direkt an der Entwicklung von Unix beteiligt, doch das Computing Science Research Center von Bell Labs war der Ort des Geschehens, und sein Büro nicht weit entfernt von denen von Ken Thompson, Dennis Ritchie, Bob Morris, Joe Ossanna und German Holzmann. Da Kerninghan sich bei der Vorbereitung des Buchs nicht allein auf seine eigenen Erinnerungen verlassen wollte, führte er mit den Protagonisten – seinen ehemaligen BTL Kollegen, von den glücklicherweise noch viele am Leben sind, etliche Interviews, von den einige auch als Video verfügbar sind.
Nachdem sich Bell Labs 1969 aus dem Multics Projekt zurückgezogen hatte, beschäftigt sich Ken Thompson mit Programmen zur Steuerung einer Disk an einer wenig benutzten PDP-7. Schließlich realisierte er, dass er sich nur drei Wochen von einem Time Sharing System entfernt befand, er brauchte je eine Woche für die Entwicklung eines Editor, Assemblers und eines Kernel- Overlays. Er versuchte dabei das Beste aus Multics einfließen zu lassen, diesmal aber in einem betont einfachen, aber eleganten Ansatz.
Mitte 1969 war Unix als Betriebssystem soweit gereift, dass es eine kleine User Gemeinde hatte, zu der neben Ken Thompson und Dennis Ritchie, Doug McIlroy, Bob Morris, Joe Ossanna und der Autor gehörten. Der begrenzte Speicher der PDP-7, gerade 4K 18-bit Words, behindert aber bald die Entwickelung von Compilern. Ein Antrag zu Beschaffung einer PDP-11 wird zunächst abgelehnt – Bell Labs hat nach dem Multics Desaster wenig Interesse an Betriebssystemen. Joe Ossanna kommt aber auf die Idee, die Maschine für die Patentabteilung, die ein Textverarbeitungssystem benötigt, anzuschaffen. So geschah es, dass Thompsen Unix für die neue Hardware portierte. J. Saltzers runoff für CTSS wurde von D. McIlroy mit BCTL als roff für Unix umgeschrieben, und schließlich in Assembler neu implementiert. Mit roff konnte nun das Patent Office seine Patentschriften und Dokumente flexibel formatieren – nachts stand die PDP-11 den Systementwicklern für ihre Zwecke zur Verfügung. Damit wurde 1971 die 1. Edition von Unix fertig gestellt, seit dieser Zeit gehört auch das Programmer's Manual (man), in seiner noch heute verwendeten Struktur, als fester Bestandteil dazu.
Unix wurde, wie andere Betriebssysteme, zu dieser Zeit üblich, in Assembler geschrieben. IBM hatte 1964 PL/I zur systemnahe Programmierung entworfen, der Compiler war aber für Unix viel zu mächtig. Thompson experimentierte mit B, das Dennis Ritchie zu C weiter entwickelte – insbesondere types kamen hinzu. Thompson unternahm 1973 drei Versuche, den Unix Kernel mit C umzuschreiben, da C wie die PDP-11 Architektur Byte orientiert war. Das war aber erst von Erfolg gekrönt, als C schließlich über strucs verfügte, diese Version floss dann in die 6. Edition von Unix ein.
Doug McIlroy hatte bereits 1964 die Idee, eine Methode zu schaffen, mittels derer Programme beliebig miteinander kooperieren können. Als Thompson darüber nachdachte, fand er die ursprüngliche Graphen- artigen Beziehungsstruktur von Programmen zu komplex; als er die Sache weiterverfolgte, entwickelte er schließlich die Idee von Pipes – das Faszinierende daran war, das sich Pipes beinah trivial in den Kernel integrieren ließen. Über Nacht passten Thompson und Ritchie noch die damaligen Unix Tools an, so dass sie per default Standard Input und Output verwenden, dazu mussten lediglich zusätzliche Ausgaben auf stderr umgeleitet werden; Thompson baute den Pipe Mechanismus in die Shell ein – und fand das Ergebnis “mind-blowing“; am nächsten Morgen funktionierten all die grandiosen Einzeiler, wie 'who | grep | wc...'. Die Einführung von Pipes stellt einen gewaltigen mentalen Sprung vorwärts dar, gemeinsam mit der genial einfachen Syntax, wurde dadurch die Unix Toolbox Philosophie auf den Weg gebracht, wonach jedes Programm für nur eine Sache zuständig sein – diese aber bestmöglich erledigen – soll, den kleinsten gemeinsamen Nenner der Interoperabilität stellen dabei Textnachrichten dar.
Damit waren alle wesentlichen Ingredienzien von Unix beieinander, Thompson und Ritchie erläuterten ihren Ansatz und ihre – für die damalige
Zeit relative große – Implementation auf einer PDP- 11/40 in dem Paper “The UNIX Time- Sharing System“, das m Juli 1974 in den Communications of ACM erschien. Darin betonen die Verfasser, dass der Erfolg von Unix gerade auf seinem minimalistischen Design, das nur wenig vordefinierte Strukturen kennt, beruht – so kennt das das Filesystem neben regulären Files, nur directories und special device files, deren I/O aber stets einheitlich von read/write System- Calls behandelt werden, reguläre Files kennen ferner OS- seitig keinerlei zusätzlich Strukturen, diese bleiben allein der Interpretation von Anwendungs- Programmen vorbehalten. Zudem ist das API von Unix frei von komplexen Control Blöcken u.ä. Da ferner auch der Unix Kern fast vollständig in C beschreiben ist, erleichtert das die Portierung von Unix.
Im Folgenden geht der Autor noch auf viele weitere Stationen der Erfolgsgeschichte von Unix ein, zunächst werden Lizenzen an Universitäten vergeben, wenig später wurde kommerziell verwendbar gemacht. Das System verbreitet sich fortan lawinenartig, einschließlich seiner verschiedenen Derivationen wie BSD, SunOS, Xenix, HP-UX, IRIX, AIX und schließlich Minix und Linux.
Brian Kernighan ist mit seiner 'Unix- Geschichte' sicher ein ganz besonderes Buch gelungen, er hat sich ganz bewusst für eine nicht- technische Darstellung entschieden, wie er im Vorwort bekennt, dafür flossen aber zahlreiche persönliche Erinnerungen und Erinnerungen anderer unmittelbar Beteiligter ein, die das Buch zu einem ganz besonderen Zeitzeugnis machen. Es steht damit sicher in einer Reihe mit Peter Salus “A Quarter Century of Unix“ und komplementiert dieses in hervorragender Weise.
Leider ist das Buch etwas mager ausgestattet, es fehlt ein Index, unverständlich bei einem historischen Werk, und statt einer Bibliographie gibt es nur ein Prosa-Kapitel 'Sources'.
4 mensen vonden dit nuttig