- Unix
-
UNIX (englische Aussprache [ˈjuːnɪks]) ist ein Mehrbenutzer-Betriebssystem. Es wurde im August 1969[1] von Bell Laboratories zur Unterstützung der Softwareentwicklung entwickelt. Heute steht Unix allgemein für Betriebssysteme, die entweder ihren Ursprung im Unixsystem von AT&T (ursprünglich Bell Laboratories) haben oder dessen Konzepte implementieren.
Da UNIX eine eingetragene Marke der Open Group ist, dürfen nur zertifizierte Systeme den Namen UNIX führen. Dementsprechend nutzt man in der Fachliteratur üblicherweise UNIX (in Großbuchstaben oder Kapitälchen) zur Kennzeichnung zertifizierter Systeme, während Unix als Bezeichnung für unixartige Systeme verwendet wird.
Unixartige Systeme können in Unix-Derivate und unixoide Systeme eingeteilt werden. Zu den Unix-Derivaten zählen z. B. die BSD-Systeme, HP-UX (Hewlett-Packard), DG/UX (Data General), AIX (IBM), IRIX (Silicon Graphics), Solaris (Oracle) und Mac OS X (Apple). Andere Systeme wie Linux oder QNX sind im historischen Sinne keine Unix-Derivate, da sie nicht auf dem ursprünglichen Unixquelltext basieren, sondern separat entwickelt wurden. Sie sind jedoch unixoide Systeme, weil sie die für Unix typischen Betriebssystemfunktionen (POSIX) implementieren. Einen Sonderfall stellt BSD dar, das zwar ursprünglich auf Bell-Labs-Quelltexten beruhte, seit Mitte der 1990er jedoch von einer losen Gemeinschaft von Programmierern vollständig umgeschrieben wurde, so dass es mittlerweile frei von dem ursprünglichen, urheberrechtlich geschützten Programmcode ist.
Inhaltsverzeichnis
Merkmale
Der Unix-Kernel hat über Gerätetreiber allein Zugriff auf die Hardware und verwaltet Prozesse. Daneben stellt er das Dateisystem zur Verfügung, in modernen Varianten zusätzlich den Netzwerkprotokollstapel. Systemaufrufe aus Prozessen dienen zum Starten (Systemaufrufe fork, exec) und Steuern von weiteren Prozessen sowie zur Kommunikation mit dem Dateisystem. Zugriffe auf die Gerätetreiber werden als Zugriffe auf „spezielle Dateien“ im Dateisystem abgebildet. Dadurch werden Dateien und Geräte aus Sicht der Prozesse und damit der Anwendungsprogramme soweit wie möglich vereinheitlicht (Systemaufrufe open, read, write, usw).
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. Wurzelverzeichnis (Rootverzeichnis) dieser Hierarchie ist das Verzeichnis „/“. Eines der Grundkonzepte von UNIX ist, auch Disketten- und CD-Laufwerke, weitere Festplatten des eigenen Rechners oder fremder Rechner, Terminals, Bandgeräte und andere special files im Dateisystem abzubilden (Gerätedateien, Dateien, die scheinbar die Daten eines Laufwerks enthalten und beim Lesen „ausgeben“) anstatt wie einige andere Betriebssysteme (u. a. VMS, MS-DOS, Microsoft Windows) dafür separate Verzeichnishierarchien unterhalb sog. „Laufwerksbuchstaben“ anzulegen. „Alles ist eine Datei“ ist ein Grundprinzip von Unix. Dieser verallgemeinerte Dateibegriff gehört zum Wesen von UNIX und ermöglicht eine einfache, einheitliche Schnittstelle für die verschiedensten Anwendungen. In manchen UNIX-Derivaten werden selbst Prozesse und deren Eigenschaften auf Dateien abgebildet (proc-Filesystem).
Der Kommandointerpreter, die Shell, – unter Unix ein normaler Prozess ohne Privilegien – sowie zahlreiche Standardkommandos ermöglichen dem Anwender eine einfache Ein-/Ausgabeumleitung in Dateien, und über Pipes die Kommunikation zwischen Prozessen.
Eine große Sammlung von einfachen Kommandos, der UNIX-Werkzeugkasten, kann so mit Hilfe der Programmiermöglichkeiten des Kommandointerpreters kombiniert werden und komplizierte Aufgaben übernehmen. Durch die Kombinierbarkeit der größtenteils standardisierten Werkzeuge wird häufig vermieden, dass man für „Einmalaufgaben“ oder einfachere Administrationsarbeiten jeweils spezialisierte Programme schreiben muss, wie dies in anderen Betriebssystemen häufig der Fall ist.
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), IP-Netzwerkunterstützung (ebenfalls zuerst in der BSD-Linie), hervorragende Scriptingeigenschaften, eine voll ausgebaute Shell und eine Vielzahl von Werkzeugen (die 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 einander zum Durchbruch, und so ist C auch heute noch die bevorzugte Sprache unter Unix-Systemen.
Der Name Unix
Das System hieß ursprünglich „Unics“ (später gekürzt auf „Unix“), eine Anspielung auf das System „Multics“. Der Name „Unics“ wurde gerne auch als Uniplexed Information and Computing Service interpretiert, allerdings ist dies eine nachträgliche Interpretation (Backronym) – weder „Unics“ noch „Unix“ oder „UNIX“ sind Akronyme.
Die Diskussion, welche Schreibweise nun die richtigere sei, „UNIX“ oder „Unix“, ist alt. Geschichtlich ist „Unix“ die ältere Schreibweise, die Schreibweise „UNIX“ tauchte erst später auf – aus rein ästhetischen Gründen.[2] Heute haben sie unterschiedliche Bedeutungen: In der Fachliteratur verwendet man üblicherweise Unix als Bezeichnung für unixartige Systeme, während man UNIX zur Kennzeichnung zertifizierter Systeme nutzt. Als Plural ist im Deutschen „Unixe“ und das an die 3. Deklination des Lateinischen angelehnte „Unices“ im Gebrauch, im Englischen „Unixes“ und ebenfalls „Unices“.
Geschichte
→ Hauptartikel: Geschichte von Unix
Ken Thompson erstellte 1969 die erste Version von Unix in Assemblersprache auf der DEC PDP-7 als Alternative zu Multics. Als eines der ersten Programme für den neuen Betriebssystem-Kern schrieb Thompson zusammen mit Dennis Ritchie das Spiel Space Travel,[3] um auszuloten, welche Schnittstellen sie benötigen. 1972–1974 wurde das Betriebssystem komplett neu in C implementiert und gemeinsam mit einem C-Compiler kostenfrei an verschiedene Universitäten verteilt (AT&T durfte als staatlich kontrollierter Monopolist in der Telekommunikationsbranche keine Software verkaufen) – daraus entwickelte sich u.a. an der Universität von Kalifornien in Berkeley die BSD-Linie von Unix. Erst Ende der 1970er Jahre versuchte AT&T 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 BSD oder System-V abstammten. Als Reaktion darauf erhob sich der Ruf nach Standardisierung.
Aktuelle Rechteverteilung
Die Rechte am Warenzeichen liegen bei der Open Group.
Standards
Jeder Hersteller änderte und erweiterte das System in den 1980er 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.
Unix-Derivate und unixoide Betriebssysteme
Vorgeschichte
Bis Unix V7 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 1980er Jahren beschloss 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. Für auf BSD basierende Systeme wurden – da ein Teil des Codes von AT&T stammte – hohe Lizenzgebühren erhoben.
Viele Firmen lizenzierten den UNIX-Quellcode und brachten ihre eigenen Varianten auf den Markt, selbst Microsoft hatte mit Xenix einige Zeit ein Unix im Angebot. Die Siemens AG adaptierte Xenix 1984 zu einem deutschen Unix namens Sinix.
GNU
Die Nichtverfügbarkeit des Quellcodes veranlasste Richard Stallman, 1983 das GNU-Projekt („GNU's Not Unix“) ins Leben zu rufen. Ziel des Projekts war die Schaffung eines freien Unix-kompatiblen Betriebssystems. Bis 1990 hatte das Projekt alle wesentlichen Teile – inklusive des GNU-C-Compilers (gcc) – entwickelt, jedoch mit Ausnahme des Kernels.
Linux
1987 erschien das Lehrsystem Minix, entwickelt von Andrew S. Tanenbaum an der Freien Universität Amsterdam. Minix war ein Unix-Klon mit Mikrokernel, C-Compiler, Texteditor und vielen Kommandos, das als relativ anspruchsloses System auch auf schwacher PC-Hardware lief. Der Quellcode war Teil des Lieferumfangs. Es war zwar kommerziell und proprietär, hatte aber einen sehr niedrigen Preis. Wie vormals Unix diente dieses System vielen als Ausgangspunkt für eigene Experimente.
1991 arbeitete der Student Linus Torvalds an einem Terminal-Emulator, mit dem er auf einen Uni-Computer zugreifen wollte. Mit der Zeit baute er einen Dateisystem-Zugriff und viele andere nützliche Features ein. Bald bemerkte er, dass er mehr als einen Terminal-Emulator programmierte. Den Quelltext veröffentlichte er in der Newsgroup comp.os.minix als Betriebssystemkern, das auf einem Intel-386er-PC lauffähig sein sollte. Zuerst sollte sein Projekt Freax heißen. Da der Administrator der Universität ihm als Login für sein FTP-Repository „Linux“ vergab, nannte er das Projekt eben so. Im Quelltext der Version 0.01 von Linux kommt noch der Name Freax vor („Makefile for the FREAX kernel“).
Siehe auch: Geschichte von Linux
Freie BSD-Derivate
1992 erschien mit 386BSD von Bill und Lynne 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.
Mac OS X
Mac OS X ist ein 2001 von Apple vorgestellter Nachfolger des NeXTStep-Systems. Als Basis dient ein XNU genannter Hybrid-Kernel, der aus einem Mach-Microkernel und Teilen des FreeBSD-Kernels besteht. Das Basissystem namens Darwin enthält außerdem von BSD stammende Programme, die in einer Unix-artigen Umgebung erwartet werden. Die Entwicklung von Darwin wurde unter die quelloffene Lizenz Apple Public Source License gestellt, welche in der Version 2.0 als Lizenz freier Software von der Free Software Foundation anerkannt wurde. Zusammen mit unter proprietären Lizenzen veröffentlichten Systemteilen wie der Arbeitsumgebung Aqua bildet Darwin Mac OS X.
OpenSolaris
Seit 2005 ist auch Solaris (Version 10) in der jeweils aktuellen Fassung für die gebührenfreie Benutzung erhältlich. Solaris läuft auf 32-Bit und 64-Bit-Prozessoren (x86/AMD64,EM64T) von AMD und Intel sowie auf 64-Bit-Systemen mit Suns UltraSPARC. Für Zugriff auf Quellen und Mitarbeit inklusive Erweiterung ist es in der Fassung OpenSolaris erhältlich, die sich funktionell nicht von der Binärversion unterscheidet.
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.
Jahr Name Anmerkung/Hersteller 1969 UNICS erste Version von Bell Laboratories 1970–75 UNIX V1–V5 Time Sharing System Bell Labs 1975 UNIX V6 (6th Edition) Bell Labs 1977 Erste Berkeley Software Distribution (BSD) 1978 2BSD Zweite Berkeley Software Distribution 1979 UNIX V7 (7th Edition) letzte Version von Bell Labs mit freiem Quellcode 1979 UNIX/32V Portierung der UNIX V7 auf VAX-Computer 1980 3BSD und 4BSD Berkeley Portierung auf VAX-Computer 1980 Xenix Unix-Version der Firma Microsoft, später von SCO weitergeführt 1981 UNIX System III erste kommerzielle Version von Bell Labs 1982 HP-UX 1.0 Unix der Firma Hewlett-Packard (HP) 1982 Sun UNIX, 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 Bell Labs 1983 Ultrix Unix-Version der Firma Digital Equipment Corporation (DEC) 1983 Sinix Unix-Version der Firma Siemens 1983 Coherent unixoides System der Mark Williams Company 1983 4.2BSD 1984 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 1987 Minix 1.0 Unix-Klon der Freien Universität Amsterdam 1988 IRIX Unix-Version der Firma Silicon Graphics 1989 NeXTStep Unix-Version der Firma NeXT basierend auf 4.3BSD und Mach-2.5-Kernel 1989 SORIX Unix-Version der Firma Siemens für Echtzeitanforderungen 1990 OSF/1 Unix-Klon der Open Software Foundation 1991 4.3BSD Net/2 BSD-Version ohne AT&T-Code, unvollständig 1991 TT/X kompatibel zu Unix System V Version 4 Unix-Version der Firma Atari 1991 Linux An Minix orientiert, große Verbreitung 1992 386BSD Patch für BSD4.3 Net/2 für Intel-Prozessoren 1992 Solaris 2.0 Firma Sun Microsystems 1992 UnixWare 1.0 Unix-Version von Univel (AT&T & Novell) 1993 NetBSD 0.8 basierend auf 386BSD 1993 FreeBSD 1.0 basierend auf 386BSD und 4.3BSD Net/2 (kurz darauf 2.0 auf 4.4BSDLite) 1994 4.4BSDEncumbered und 4.4BSDLite (ohne Bell Labs-Code) 1994 Tru64 UNIX Nachfolger von OSF/1 1995 HP-UX 10.00 Firma Hewlett-Packard (HP) 1996 OpenBSD 1.2 ausgehend von NetBSD 1.0 1996 AT&T gliedert die Bell Labs in das Unternehmen Lucent Technologies ein 2000 Darwin, OpenDarwin von der Firma Apple aus NeXTSTEP entwickelt (vgl. Mac OS X, XNU) 2003 DragonFlyBSD-Projekt ausgehend von FreeBSD 2005 OpenSolaris Firma Sun Microsystems Siehe auch
Einzelnachweise
- ↑ Mark Ward: 40 years of Unix. BBC, abgerufen am 28. Februar 2010.
- ↑ Unix, Jargon File
- ↑ Matthias Kremp (18. August 2009): 40 Jahre Unix. Spiegel Online. Abgerufen am 16. Oktober 2011.
Literatur
- K. Thompson; D. M. Ritchie (3. November 1971): Unix Programmer's Manual (Englisch). Lucent Technologies. Abgerufen am 18. Oktober 2011. „The first edition of the Unix Programmer's Manual, dated November 3, 1971, is available here in image, Postscript, and PDF format. Return with us to the golden days of yesteryear!“
- Dennis M. Ritchie, Ken Thompson, The UNIX Time-Sharing System, The Bell System Technical Journal, Vol. 57, July–August 1978, No. 6, Part 2, S. 1897–2312
- Brian W. Kernighan, Rob Pike: Der Unix Werkzeugkasten – Programmieren mit UNIX, (deutsche Übersetzung), Hanser Verlag, München 1986, ISBN 3-446-14273-8
- E. Foxley: Unix für Super-User. Addison-Wesley, 1988, ISBN 3-925118-24-1
- Jürgen Gulbins, Karl Obermayr: UNIX System V.4. Begriffe, Konzepte, Kommandos, Schnittstellen. 4. Aufl. 1995, ISBN 3-540-58864-7
- Jerry Peek, Grace Todino, John Strang: UNIX. Ein praktischer Einstieg. O’Reilly Verlag, 2002, ISBN 3-89721-157-2
- Arnold Willemer: Wie werde ich UNIX-Guru? – Einführung in UNIX, Linux und Co., Galileo Computing <openbook>, 2003, ISBN 978-3-89842-240-6
Wikimedia Foundation.