Unix
Unix ist ein portables Betriebssystem, das die Grundlage für viele kommerzielle und nicht kommerzielle
Betriebssysteme bildet. UNIX ist ein geschütztes
Markenzeichen der Open Group.
Der Einfluss von Unix erstreckt sich auf nahezu alle heute verbreiteten Betriebssysteme. Ideen und Konzepte von Unix finden sich überall, sei es im kleinen Embedded-System bis hin zu Großrechner-Betriebssystemen. Projekte wie GNU/Linux oder die freien BSD-Systeme implementieren das Verhalten und die Schnittstellen von Unix neu und steuern eigene Erweiterungen bei.
Das System wurde ursprünglich ab 1969 an den Bell Laboratories von AT&T von einer Gruppe um Ken Thompson und Dennis Ritchie entwickelt und in den Jahren 1972-1974 bis auf wenige Teile in der höheren Programmiersprache C mit dem Ziel der Portabilität neu implementiert.
Unix ist Bestandteil der am weitesten verbreiteten kommerziellen Server- und Workstation-Betriebssysteme, unter anderen Solaris (Sun Microsystems), AIX (IBM), IRIX (Silicon Graphics), HP-UX (Hewlett-Packard). Auch diese und weitere Firmen haben das System wesentlich erweitert. Serversysteme werden in neuester Zeit jedoch zunehmend auch unter Linux oder BSD betrieben, Workstations durch PCs verdrängt.
Merkmale
Unix besteht aus einem Kernel, der allein Zugriff auf die Geräte hat und Prozesse verwaltet. Der Kernel stellt das Dateisystem zur Verfügung, das neben Systemaufrufen die wesentliche Schnittstelle für die Prozesse in den Kernel darstellt. Eine Vielzahl von Programmen inklusive eines C-Entwicklungssystems und eines Textsatzprogrammes (troff) vervollständigen das System.
Das Dateisystem ist als hierarchisches Verzeichnis mit beliebigen Unterverzeichnissen organisiert, ein damals neues Konzept, das heute überall selbstverständlich ist. Das Root (Wurzel)-Verzeichnis - normalerweise auf einem Plattenlaufwerk - wird beim Starten angehängt. Weitere Festplattenlaufwerke und Geräte wie CD-Laufwerke können eingehängt werden, ihr Inhalt erscheint als normale Dateien in der Hierarchie. Sie benötigen daher aus Anwendungssicht keine besondere Behandlung. Spezielle Dateien (special files) ermöglichen den Zugriff auf alle Geräte (Terminals, Bandgeräte, Bildschirmspeicher) in diesem Dateisystem, als Grundkonzept wird das alles ist eine byteorientierte Datei Prinzip verfolgt.
Der Kommandointerpreter, die Shell, - unter Unix ein normaler Prozess ohne Privilegien - sowie die Programmierbibliotheken ermöglichen dem Anwender eine unerreicht einfache Ein-/Ausgabeumleitung in diese Dateien, sogar über Pipes die Verkettung von mehreren Programmen. Eine große Sammlung von einfachen Programmen kann so mit Hilfe der Programmiermöglichkeiten des Kommandointerpreters kombiniert werden und komplizierte Aufgaben übernehmen, der so genannte UNIX-Werkzeugkasten entsteht und löst das frühere Konzept der leistungsfähigen, alleinstehenden, allumfassenden, unflexiblen Anwendungen ab.
Zu den wichtigen Merkmalen eines typischen Unixsystems gehören: hohe Stabilität, Multiuser, Multitasking (mittlerweile auch Multithreading), Speicherschutz und virtueller Speicher (zuerst implementiert in der BSD-Linie), TCP/IP Netzwerkunterstützung (ebenfalls zuerst in der BSD Linie), hervorragende Scriptingeigenschaften, eine voll ausgebaute Shell und eine Vielzahl von Werkzeugen (siehe Unix Kommandos) und Daemonen. Betriebssysteme von Unix-Workstations sowie Unix-Derivate enthalten in der Regel eine grafische Benutzeroberfläche basierend auf X11.
Unix ist historisch eng mit der Programmiersprache C verknüpft - beide verhalfen sich gegenseitig zum Durchbruch, und so ist C auch heute noch die präferierte Sprache unter Unixsystemen.
Der Name Unix
Das System hieß ursprünglich Unics (später gekürzt auf Unix), eine Anspielung auf das Multics System. Der Name Unics wurde gerne auch als UNIplexed Information and Computing Service interpretiert, allerdings ist dies eine nachträgliche Interpretation - weder Unics, noch Unix oder UNIX sind Akronyme.
Die Diskussion, welcher Name nun der richtigere sei, UNIX oder Unix, entflammt immer wieder von neuem. Geschichtlich ist Unix der ältere Name, UNIX als Name tauchte erst 1974 auf - aus rein ästhetischen Gründen.
Geschichte
Die Geschichte von Unix ist in einem eigenen Artikel ausführlich dargestellt. Ken Thompson erstellte 1969 die erste Version von Unix in Assembler auf der DEC PDP-7, um etwas Textverarbeitung zu betreiben und zu spielen. Das 1972-1974 in C implementierte System wurde gemeinsam mit einem C-Compiler kostenfrei an verschiedene Universitäten verteilt - aus ihr entwickelte sich die BSD-Linie von Unix. AT&T versuchte schließlich selbst, Unix gewinnbringend zu vermarkten, woraus die System V Linie von Unix entstand. In den 1980er Jahren wurde Unix zum dominierenden Betriebssystem an den Universitäten, und es existierte eine Fülle verschiedenster Unix-Derivate, die alle in irgendeiner Form von den beiden Hauptlinien abstammten, womit langsam Bedarf nach Standardisierung entstand.
Standards
Jeder Hersteller änderte und erweiterte das System in den 80er Jahren nach eigenen Vorstellungen. Es entwickelten sich Versionen mit unterschiedlichen Fähigkeiten, Kommandos, Kommandooptionen und Programmbibliotheken. Um 1985 begann die IEEE zunächst die Schnittstellen für Anwendungsprogramme zu standardisieren. Daraus entwickelte sich der IEEE 1003-Standard, der auf Anregung von Richard Stallman POSIX genannt wird. Er besteht heute aus etwa 15 Dokumenten, die sich mit allen Aspekten von Unix-Systemen wie dem Kommandozeileninterpreter (POSIX schreibt zwingend die Korn Shell vor), den Unix-Kommandos und deren Optionen, der Ein-/Ausgabe und anderem befassen.
Die Preise der IEEE für die POSIX-Dokumentation sind sehr hoch, die Veröffentlichung ist durch Urheberrecht untersagt. In neuerer Zeit ist deshalb eine Tendenz zum Single Unix Specification-Standard der Open Group zu verzeichnen. Dieser Standard ist offen, im Internet frei verfügbar und akzeptiert Vorschläge von jedem.
Freie Unix-Derivate
Bis Unix V7, das 1979 erschien, wurde der Quellcode von Unix, gegen Erstattung der Kopier- und Datenträgerkosten, an Universitäten verteilt. Unix hatte damit den Charakter eines freien, portablen Betriebssystems. Der Code wurde in Vorlesungen und Veröffentlichungen verwendet und konnte nach eigenen Vorstellungen geändert und ergänzt werden. Die Universität Berkeley entwickelte eine eigene Distribution mit wesentlichen Erweiterungen, die Berkeley Software Distribution (BSD).
In den frühen 80er Jahren beschloß AT&T, Unix zu vermarkten, der AT&T Quellcode durfte ab diesem Zeitpunkt nicht mehr öffentlich zugänglich gemacht werden, auch die Verwendung in Vorlesungen etc. war ausgeschlossen. Auch auf BSD basierende Systeme mussten, da ein Teil des Codes von AT&T stammte, eine (teure) Lizenz erwerben.
Die Nichtverfügbarkeit des Quellcodes veranlasste 1983 Richard Stallman, das GNU (Gnu ist nicht Unix)-Projekt ins Leben zu rufen. Ziel des Projekts war ein freies, Unix-kompatibles System. Bis 1990 hatte das Projekt alle wesentlichen Teile - inklusive des GNU C-Compilers - entwickelt, jedoch mit Ausnahme des Kernels.
1987 erschien das Lehrsystem Minix der Vrije Unversität, Amsterdam. Minix war ein Unix-Klon mit Mikrokernel, C-Compiler, Editor und vielen Kommandos, das auf anspruchsloser PC-Hardware lief. Der Quellcode war Teil des Lieferumfangs. Es war zwar kommerziell, aufgrund seines sehr niedrigen Preises kam es einem freien System aber sehr nahe. Wie vormals Unix diente dieses System vielen als Ausgangspunkt für eigene Experimente.
1991 veröffentliche der finnische Student Linus Torvalds den Kernel für ein Betriebssystem, das auf einem normalen Intel 386er-PC laufen sollte. Der POSIX-Standard und das GNU-Projekt, das alle nötigen Werkzeuge wie Compiler und Shells bietet, boten einen geeigneten Weg dahin. Torvalds verwendete das Minix-System und den GNU-C Compiler als Grundlage. Er schrieb einen Kern, den er Linux nannte. Darauf übertrug er die Softwarewerkzeuge und Bibliotheken des GNU-Projekts. Diese Werkzeuge boten in Kombination mit dem Linux-Kern die Grundlage für ein POSIX-getreues freies Betriebssystem, bekannt als GNU/Linux oder einfach Linux.
1992 erschien mit 386BSD von Bill Jolitz ein weiteres freies System für 80386 Prozessoren. Es bestand aus einem Patch für die nicht von AT&T stammenden freien Teile der BSD Distribution und bildete ein weiteres freies, sehr fortgeschrittenes Betriebssystem für Intel Prozessoren.
1994 veröffentlichte Berkeley mit 4.4BSDLite die letzte Version ihrer Distribution, die von AT&T Quellcode befreit war. Dieses bildete zusammen mit 386BSD die Grundlage für NetBSD, FreeBSD und kurz darauf OpenBSD. Im Jahr 2000 gab Apple den Quellcode des Betriebsystems Darwin, Bestandteil von Mac OS X, frei. Es basiert auf FreeBSD und dem Mach Mikrokernel.
Erscheinungsdaten
Die folgende Zusammenstellung gibt nur einen groben Überblick. Es werden nur die wichtigsten Systeme erwähnt. Diese haben jeweils ihre eigenen Versionen und ihre eigene Entwicklungsgeschichte.
- 1969 UNICS, erste Version, AT&T
- 1970-75 UNIX V1-V5 Time Sharing System, AT&T
- 1976 UNIX V6 (6th Edition), AT&T
- 1977 Erste Berkeley Software Distribution (BSD)
- 1978 2BSD - Zweite Berkeley Software Distribution
- 1979 UNIX V7 (7th Edition), letzte Version von AT&T mit freiem Quellcode
- 1980 UNIX 32V Portierung der UNIX V7 auf VAX Computer
- 1980 XENIX OS (Unix Version der Firma Microsoft, später Firma SCO)
- 1980 3BSD und 4BSD Berkeley Portierung auf VAX Computer
- 1981 UNIX System III, erste kommerzielle Version von AT&T
- 1982 SunOS, 1.0 Unix Version der Firma Sun Microsystems
- 1983 Start des GNU Projekts (GNU: Gnu is Not Unix - GNU ist nicht Unix)
- 1983 UNIX System V, AT&T
- 1983 Ultrix, Unix Version der Fa. Digital Equipment Corporation (DEC)
- 1983 Sinix, Unix-Version der Firma Siemens
- 1983 Coherent, Unix-ähnliches System der Mark Williams Company
- 1983 4.2BSD
- 1984 Unicos 1.0, Unix-Version der Firma Cray Supercomputers
- 1985 Start des Mach Mikrokernel Projekts an der Carnegie Mellon University (Kalifornien).
- 1986 AIX 1.0, Unix Version der Firma IBM
- 1986 A/UX, Unix Version der Firma Apple
- 1986 HP-UX 1.0, Unix Version der Firma Hewlett Packard
- 1987 Minix 1.0, Unix-Klon der Vrije Universität, Amsterdam
- 1988 IRIX, Unix-Version der Firma Silicon Graphics
- 1990 OSF/1, UNIX-Klon der Open Software Foundation
- 1991 Linux 0.01, Open-Source Kernel von Linus Torvalds
- 1991 4.3BSD Net/2, BSD Version ohne AT&T Code, unvollständig
- 1992 Solaris 2.0, Firma Sun Microsystems
- 1992 386BSD, Patch für BSD4.3 Net/2 für Intel Prozessoren
- 1994 4.4BSDEncumbered und 4.4BSDLite (ohne AT&T Code)
- 1994 NetBSD 1.0, basierend auf 4.4BSDLite
- 1994 FreeBSD 1.0, basierend auf 4.3BSD Net/2 (kurz darauf 2.0 auf 4.4BSDLite)
- 1994 Tru64, Nachfolger von OSF/1
- 1995 OpenBSD Projekt, ausgehend von NetBSD
- 2000 Darwin, Firma Apple, basierend auf Mach und FreeBSD
Weitere Artikel zum Thema Unix
Literatur
- Kernighan/Pike: Der Unix Werkzeugkasten, deutsche Übersetzung, Hanser Verlag, 1986, ISBN 3446142738
- J. Gulbins, K. Obermayr: UNIX System V.4. Begriffe, Konzepte, Kommandos, Schnittstellen, 4. Aufl. 1995, ISBN 3540588647
- J. Peek, T. Codinp. J. Strang: UNIX. Ein praktischer Einstieg, O' Reilly Verlag, 2002, ISBN 3897211572
Weblinks
- The Creation of the UNIX Operating System (englisch)
- Filesystem Hierarchy Standard (englisch)
- 4.4BSD Documents (englisch)
- Die Unix-Philosophie