unix_history BACK .. Die Entwicklung von UNIX Als Ken Thompson 1969 bei Bell Laboratories, einer gemeinsamen Tochter der Firmen AT&T und Western Electric, die Entwicklung eines neuen Betriebssystems begann, waren die meisten der vorhandenen Systeme ausgesprochene Closed Shop - Batch Systems d.h., der Programmierer gab seine Lochkarten oder Lochstreifen beim Operateur ab, diese wurde in den Rechner eingelesen und ein Rechenauftrag nach dem anderen abgearbeitet. Der Programmierer konnte dann nach einiger (in der Regel längeren) Zeit seine Ergebnisse abholen. Auch Modernere Systeme mit der Möglichkeit interaktiver Benutzersitzungen wie z.B. MULTICS waren noch stark vom Batch-Betrieb beeinflusst. Ziel von Ken Thompsons Entwicklung war es deshalb, ein System zu schaffen, auf welchem mehrere Programmierer im Team und im Dialog mit dem Rechner arbeiten, Programme Entwickeln, korrigieren und dokumentieren konnten, ohne von einem Grossrechner mit allen seinen Restriktionen abhängig zu sein. Daneben standen Funktionalität, strukturelle Einfachheit und Transparenz sowie leichte Bedienbarkeit im Vordergrund der Entwicklung. Dieses erste System mit dem Namen UNIX lief auf einer PDP-7, einem Kleinrechner der Firma Digital Equipment Corporation (DEC). Die erste Version von UNIX war dabei in der Assemblersprache der PDP-7 geschrieben. Um bei zukünftigen Projekten die Maschinenabhängigkeit durch die maschinennahe Sprache zu umgehen, entwarf Thompson die Programmierersprache B, aus der dann Dennis Ritchie die Sprache C entwickelte. UNIX wurde dann 1971 in C umgeschrieben und auf die PDP-11 (DEC) übertragen. Von nun an erfolgte die Weiterentwicklung des Systemkerns sowie der meisten Dienstprogramme in dieser Sprache. Die Kompaktheit und Strukturelle Einfachheit des Systems ermunterte viele Benutzer zur eigenen Aktivität und Weiterentwicklung des Systems, so dass UNIX recht schnell einen relativ hohen Reifegrad erreichte. Dies ist deshalb bemerkenswert, da kein Entwicklungauftrag hinter diesem Prozess stand und die starke Verbreitung von UNIX nicht auf den Vertrieb oder die Werbung eines Herstellers, sondern primär auf das Benutzerinteresse zurückzufu:hren ist. Hilfreich hierbei war sicherlich jedoch auch, dass für Hochschulen und Universitäten die UNIX-Quellcodelizenz bisher praktisch für die Kopier- und Dokumentationkosten von Bell Laboratories abgegeben wurde. Dass die ursprünglich angestrebten Ziele trotz zahlreicher funktionaler und qualitativer Erweiterungen auch heute noch weitgehend erhalten sind, zeigt sich darin, dass der Kern des UNIX-Systems nur aus etwa 20.000 Zeilen Programm besteht, von denen rund 2000 Zeilen in Assembler geschrieben sind. Maschinenabhängige Assemblerteile werden dabei nur dort verwendet, wo hohe Effizienz oder spezielle Maschineneigenschaften dies notwendig machen. Die durch die höherer Programmiersprache C erreichte Maschinenunabhängigkeit stimulierte die baldige Übertragung des UNIX-Systems auf zahlreiche weitere Rechner. Dieser Prozess ist bis heute noch nicht abgeschlossen. So existieren heute z.B. Implementierung für folgende Rechner: +------------------------------------------------------------------------+ | CPU-Serie: | CPU-Hersteller | |----------------------------------------+-------------------------------| |----------------------------------------+-------------------------------| | C50, C70 | BBN Computer | |----------------------------------------+-------------------------------| | Honeywell 6000 | Honeywell Bull | |----------------------------------------+-------------------------------| | HP 9000 | Hewlett Packard | |----------------------------------------+-------------------------------| | IBM/370, IBM/43xx | IBM | |----------------------------------------+-------------------------------| | MC68000, MC68020 | Motorola | |----------------------------------------+-------------------------------| | NS32016, NS32032 | National Semiconductor | |----------------------------------------+-------------------------------| | PDP-7, PDP-8, PDP-11, VAX-Serie | DEC | |----------------------------------------+-------------------------------| | Perkin Elmer 32-Bit Systeme | Perkin Elmer | |----------------------------------------+-------------------------------| | Serie/1 | IBM | |----------------------------------------+-------------------------------| | VM/370, VM/470 | Amdahl | |----------------------------------------+-------------------------------| | Z80, Z8000 | Zilog | |----------------------------------------+-------------------------------| | 8080, 8086, 80186, 80286 | Intel | +------------------------------------------------------------------------+ Dabei werden für viele der genannten Prozessoren von mehreren Firmen UNIX-Software-Systeme angeboten. Eine Übertragung auf einen neuen Rechner geschieht in folgenden Schritten: * Erstellung eines C-Übersetzers, welcher den Code für die neue Zielmaschine erzeugt, * Adaption des kleinen, in Assembler geschrieben hardwareabhängigen Systemkerns (etwa 2000 Zeilen ). Hierzu gehört auch die Anpassung an die Speicherverwaltungseinheit (Memory Management Unit) den neuen Hardware. * Anpassung der Ein-/Ausgabe-Treiber an die neue Hardware, * Übersetzung des UNIX -Systems mit dem neuen C-U:bersetzer, * Integration spezieller Hardware (z.B. Bitmap-Display). Der hierfür notwendige Aufwand liegt weit unter dem, der fu:r die Neuerstellung eines Systems notwendig ist. Hinzu kommt, dass mit UNIX ein sehr umfangreiches und breites Spektrum an fertiger und in der Regel preiswerter Software zur Verfügung steht. Es gibt zahlreiche andere Vertriebsfirmen, welche ein teilweise erweitertes oder für spezifische Belange adaptiertes UNIX sowie UNIX-Varianten und UNIX-ähnliche Systeme anbieten. Zu solchen Portierungen gehören, um nur einige zu nennen: +------------------------------------------------------------------------+ | Systemename: | Hersteller oder Systemhaus: | |------------------+-----------------------------------------------------| |------------------+-----------------------------------------------------| | BSD | University of California at Berkeley | |------------------+-----------------------------------------------------| | Coherent | Mark Williams Co | |------------------+-----------------------------------------------------| | Cromix | Cromenco | |------------------+-----------------------------------------------------| | DG/UX | Data General | |------------------+-----------------------------------------------------| | EDITION VII | Perkin-Elmer | |------------------+-----------------------------------------------------| | IDRIS | Whitesmith Ltd | |------------------+-----------------------------------------------------| | IS/1, IS/5 | Interactive Systems, Inc | |------------------+-----------------------------------------------------| | JOS | CRDS | |------------------+-----------------------------------------------------| | MUNIX | PCS | |------------------+-----------------------------------------------------| | OS-1 | Software Labs | |------------------+-----------------------------------------------------| | PNX | ICL | |------------------+-----------------------------------------------------| | SINIX | Siemens | |------------------+-----------------------------------------------------| | UCB | University of Californian at Berkeley | |------------------+-----------------------------------------------------| | ULTRIX | DEC | |------------------+-----------------------------------------------------| | Unica | Knowlogy | |------------------+-----------------------------------------------------| | UNIPLUS+ | Unisoft (Motorolä MC68000, MC68010) | |------------------+-----------------------------------------------------| | UTS | Amdhal | |------------------+-----------------------------------------------------| | UX | Hewlett Packard | |------------------+-----------------------------------------------------| | VENIX | VenturCom Inc. | |------------------+-----------------------------------------------------| | XELOS | PERKIN-ELMER | |------------------+-----------------------------------------------------| | XENIX | Microsoft Co. (Intel: 8086, 8088, 80186, 80286) | |------------------+-----------------------------------------------------| | ZEUS | Zilog | +------------------------------------------------------------------------+ Deneben gibt es eine Reihe von UNIX-Systemen, welche als speziellen Modus oder als Untersystem unter anderen Betriebssystemen laufen. Hierzu gehören z.B.: +------------------------------------------------------------------------+ | Systemname: | Hersteller/Systemhaus: | Hauptsystem: | |------------------+----------------------------------+------------------| |------------------+----------------------------------+------------------| | EUNICE | WOLLONGONG | VMS | |------------------+----------------------------------+------------------| | EUNIX | Electronic Info System, Inc. | VMS | |------------------+----------------------------------+------------------| | IX/370 | IBM/Interactive Systems | VM | |------------------+----------------------------------+------------------| | MX/UX | Data General | OAS/VS | |------------------+----------------------------------+------------------| | VNX | DEC | VMS | |------------------+----------------------------------+------------------| | VM/UTS | Amdahl | VM | +------------------------------------------------------------------------+ Die ursprüngliche Ausgangsbasis der meisten der genannten Systeme war die seit 1979 verfügbare UNIX-Version 7 (siehe hierzu Bild 2.1). Seit 1982 bietet Western Electric Corporation eine neue UNIX-Version UNIX-System III an und ab März 1983 den Nachfolger UNIX-System V. Diese sind gegenüber Version 7 u:berarbeitet, enthalten Laufzeitoptimierungen und wurden neben neuer Netzwerksoftware um ein Softwarepaket erweitert, welches unter der Bezeichnung Programmers Work Bench (PWB) bekannt ist. Dieses Paket stellt spezielle Werkzeuge für die Entwicklung und Verwaltung grösserer Softwarepaket zu Verfügung. Die neueste UNIX-Version (UNIX V) enthält daneben zahlreiche neue Programme zur Unterstützung graphischer Darstellungen. AT&T hat dieses System V 1983 zum Quasistandard erklärt und zugleich Portierungsverträge mit einigen den wichtigsten Mikroprozessorherstellern (Intel, Motorola, National Semiconductor, Zilog) geschlossen. Dies erzeugte eine stark normierende Marktkraft. Auch die Firma IBM ist mit ihrem 1985 vorgestellten UNIX-System IX-370 diesem Trend gefolgt. Das System entspricht weitgehend UNIX System V. Der überwiegende Teil der oben genannten Systeme, welche auf 16- oder 32-Bit Prozessoren laufen, dürfte im Laufe der nächsten Jahre - soweit sie dies nicht bereits getan haben - diesen Wechsel nachvollziehen. Hierzu wird entscheidend die Implementierung des System V Standards in Xenix beitragen, da dieses speziell für kleine Maschinen adaptierte System eine sehr grosse Anzahl von Installationen aufweist. Diese Implementierung ist für Ende 1985 vorgesehen. Neben den aufgezählten UNIX-System gibt es auch eine Reihe von Weiterentwicklungen an Universitäten und Forschungsinstituten wie z. B. Die der Havard Universität und die der Rand Corporation. Eines der bekanntesten Erweiterungspakete stammt dabei von der Universität von Californien Berkeley und ist unter dem Namen Berkeley-UNIX bzw. BSD (für Berkeley System Distribution) bekannt geworden. Die auf der VAX laufende Version des Berkeley -UNIX ist dabei ein virtuelles System mit demand paging. Die VAX -Version von Western Electric (V32) hingegen arbeitet (bis zu System V.2 Release 1) mit einer Speichersegmentierung und Swapping-Technik, wobei der Adressraum der Programme auf den real vorhandenen Speicher beschränkt ist. Und so ging es dann weiter... ...und 1995 hat sich aus NetBSD noch OpenBSD herrausgebildet. [IMG]