Unix
UNIX [Betriebssystem. Es wurde Anfang der 70er Jahre des 20. Jahrhunderts von Bell Laboratories zur Unterstützung der Software-Entwicklung entwickelt. Unix bezeichnet im allgemeinen Sprachgebrauch Betriebssysteme, die entweder ihren Ursprung im Unix-System von AT&T (ursprünglich Bell Laboratories) der 70er haben oder dessen Konzepte implementieren.
] ist ein Mehrbenutzer-UNIX | |
---|---|
![]() | |
![]() Ken Thompson und Dennis Ritchie | |
Entwickler | Ken Thompson, Dennis Ritchie, Douglas McIlroy, u. a. |
Lizenz(en) | bis 1981: Keine (frei) ab 1981: Proprietär (AT&T, Novell, SCO, SCO Group) |
Akt. Version | frei, öffentlich: UNIX V7 (1979) rechtlich geschützt, kommerziell: SCO OpenServer 6.0 (Juni 2005) SCO UnixWare 7.1.4 (Juni 2004) |
Abstammung | - |
Sonstiges | – |
www.unix.org |
Da UNIX ein eingetragenes Markenzeichen der Open Group ist, dürfen nur zertifizierte Systeme den Namen UNIX führen. Dennoch ordnet man auch Betriebssysteme wie Linux der Unix-Familie zu. In der Fachliteratur verwendet man üblicherweise Unix als Bezeichnung für unix-artige Systeme, während man UNIX (in Großbuchstaben oder Kapitälchen) dazu nutzt, zertifizierte Systeme zu kennzeichnen.
Zu all diesen Systemen, die in Unix-Derivate und Unix-artige Betriebssysteme eingeteilt werden können, zählen zum Beispiel die BSD-Systeme, Mac OS X, HP-UX, AIX, IRIX und Solaris. Einige andere Systeme wie GNU, Linux oder QNX sind im historischen Sinne keine Unix-Derivate, da sie nicht auf dem ursprünglichen Unix-Quelltext basieren, sondern separat entwickelt wurden. BSD basierte zwar ursprünglich auf Bell Labs-Quelltexten, diese wurden jedoch bis Mitte der 90er vollständig entfernt.
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 Netzwerk-Protokollstapel. Systemaufrufe aus Prozessen dienen zum Starten (Systemrufe fork, exec) und Steuern von weiteren Prozessen sowie zur Kommunikation mit dem Dateisystem. Zugriffe auf die Gerätetreiber werden auf Zugriffe auf spezielle Dateien im Dateisystem abgebildet. Dadurch werden Dateien und Geräte aus Sicht der Prozesse und damit Anwendungsprogramme soweit wie möglich vereinheitlicht (Systemrufe open, read, write, ...). 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 (Root-Verzeichnis) dieser Hierarchie ist das Verzeichnis „/“. Eins der hervorragenden Grundkonzepte von UNIX ist, auch Disketten- und CD-Laufwerke, weitere Festplatten des eigenen oder fremder Rechner, Terminals, Bandgeräte und andere special files im Dateisystem abzubilden. „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 Standard-Kommandos ermöglichen dem Anwender eine unerreicht einfache Ein-/Ausgabeumleitung in diese 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), 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 bevorzugte 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
Für ausführlichere Informationen siehe 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 schrieben Thompson und Ritchie das Spiel Space Travel, um auszuloten was für Schnittstellen sie brauchen würden. Das 1972–1974 in C komplett neu 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.
Aktuelle Rechteverteilung
Die Rechte am Quellcode liegen laut eigener Behauptung bei der SCO Group (wobei Novell dies jedoch teilweise bestreitet; siehe SCO v. Novell). Die Rechte am Warenzeichen liegen dagegen bei der Open Group.
Standards
Jeder Hersteller änderte und erweiterte das System in den 80er Jahren des 20. Jahrhunderts 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 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 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. Auch 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 Nichtverfügbarkeit des Quellcodes veranlasste 1983 Richard Stallman, das GNU-Projekt ("Gnu is not Unix") 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, entwickelt von Andrew S. Tanenbaum an der Vrije Universiteit 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 arbeitete der Student Linus Torvalds an einem Terminal-Emulator, mit dem er auf einen Uni-Computer zugreifen wollte. Mit der Zeit baute er Dateisystem-Zugriff und viele andere nützliche Features ein. Bald bemerkte er, dass er mehr als einen Terminal-Emulator programmierte. Den Sourcecode veröffentlichte er in der Newsgroup comp.os.minix als Betriebssystem, das auf einem Intel-386er-PC lauffähig sein sollte. Zuerst sollte sein Projekt Freax heißen. Da der übereifrige Administrator der Universität ihm als Login für sein FTP-Repository „Linux“ vergab, nannte er es einfach so. Im Sourcecode der Version 0.01 von Linux kommt noch der Name Freax vor („Makefile for the FREAX kernel“).
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. Siehe auch Geschichte von 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.
2000 gab Apple den Quelltext des Betriebssystems Darwin, Bestandteil von Mac OS X, frei. Es basiert auf 4.4BSD und dem Mach-Mikrokernel.
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 Prozessoren (x86) von AMD und Intel sowie auf 64-bit Systemen mit Suns UltraSPARC und sogenannten x64-Systemen wie z. B. AMDs Opteron. Für Zugriff auf Quellen und Mitarbeit incl. Erweiterung ist es in der Fassung OpenSolaris erhältlich, die sich funktionell nicht von der Binärversion unterscheidet. Sun Microsystems verlangt allerdings eine Registrierung und hat eigene Lizenzbestimmungen, die von der GPL abweichen.
Ein weiteres Unix-"Derivat" ist LUnix (kurz für little Unix), welches ein Unix-ähnliches System auf Commodore C64 oder C128 zur Verfügung stellt.
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 |
1976 | 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 |
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 Bell Labs |
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 | Bell Labs |
1983 | Ultrix | Unix-Version der Firma Digital Equipment Corporation (DEC) |
1983 | Sinix | Unix-Version der Firma Siemens |
1983 | Coherent | Unix-ähnliches 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 |
1986 | HP-UX 1.0 | Unix-Version der Firma Hewlett-Packard (HP) |
1987 | Minix 1.0 | Unix-Klon der Vrije Universität, Amsterdam |
1988 | IRIX | Unix-Version der Firma Silicon Graphics |
1989 | SCO UNIX | Unix-Version die eine weite Verbreitung am Markt fand |
1990 | OSF/1 | Unix-Klon der Open Software Foundation |
1991 | 4.3BSD Net/2 | BSD-Version ohne AT&T-Code, unvollständig |
1991 | Linux | An Minix orientiert, große Verbreitung |
1992 | Solaris 2.0 | Firma Sun Microsystems |
1992 | 386BSD | Patch für BSD4.3 Net/2 für Intel-Prozessoren |
1992 | UnixWare 1.0 | Unix-Version von Univel (AT&T &Novell) |
1993 | UnixWare 1.1 | Unix-Version von Novell |
1994 | 4.4BSDEncumbered und 4.4BSDLite | (ohne Bell Labs-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 | SCO OpenServer 5 | Nachfolger von SCO UNIX und Open Desktop - UNIX SVR3.2 V5.0.0 |
1995 | OpenBSD-Projekt | ausgehend von NetBSD |
1995 | UnixWare 2 | SCO übernimmt die Unix System Labs von Novell |
1996 | AT&T gliedert die Bell Labs in das Unternehmen Lucent Technologies ein | |
2000 | Darwin | Firma Apple, basierend auf Mach und 4.4BSD |
2004 | SCO UnixWare 7.1.4 | UNIX-Version des vermutlichen Quellcode-Rechteinhabers SCO Group |
2005 | Solaris 10 (SunOS 5.10) | Firma Sun Microsystems |
2005 | SCO OpenServer 6.0 | UNIX-Version des angeblichen Quellcode-Rechteinhabers SCO Group |
2006 | PC-BSD 1.0 | Eine BSD Version, angepasst für den Heimbenutzer. |
Siehe auch
Literatur
- 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 3446142738
- E. Foxley: Unix für Super-User. Addison-Wesley, 1988, ISBN 3-925118-24-1
- J. Gulbins, K. Obermayr: UNIX System V.4. Begriffe, Konzepte, Kommandos, Schnittstellen. 4. Aufl. 1995, ISBN 3540588647
- Jerry Peek, Grace Todino, John Strang: UNIX. Ein praktischer Einstieg. O’Reilly Verlag, 2002, ISBN 3897211572
Weblinks
- http://www.unix.org/ (engl.)
- Webseite mit Informationen über Unix
- Geschichte von UNIX
- Geschichte und Zeitlinie zu UNIX
- The Creation of the UNIX Operating System (engl.)
- Space Travel (engl.)
- Filesystem Hierarchy Standard (engl.)
- 4.4BSD Documents (engl.)
- Die Unix-Philosophie
- Wichtige Unix Derivate auf einer Zeitleiste von 1969 bis heute (mit History-Baum zum Ausdrucken)
- Über Verwirrungen mit der Handelsmarke UNIX
- Linkkatalog zum Thema Unix bei curlie.org (ehemals DMOZ)
- UNIX-Referenzkarte, fasst viele wichtige Befehle kurz zusammen.