Unix (englisch [ˈjuːnɪks]) ist einMehrbenutzer-Betriebssystem fürComputer. Es wurde im August 1969[1] vonBell Laboratories zur Unterstützung derSoftwareentwicklung entwickelt. Heute stehtUnix allgemein für Betriebssysteme, die entweder ihren Ursprung imUnix-System vonAT&T (ursprünglichBell Laboratories) haben oder dessen Konzepte implementieren. Es ist zusammen mit seinen Varianten und Weiterentwicklungen – oft unter anderen, in der Öffentlichkeit bekannteren Namen – eines der verbreitetsten und einflussreichsten Betriebssysteme der Computergeschichte. Bis in die 1990er Jahre wurde Unix hauptsächlich in spezialisierten Anwendungsbereichen wie etwa beiWorkstations undServern eingesetzt, insbesondere anUniversitäten undForschungseinrichtungen. Die heutige massenhafte Anwendung in fast allen Bereichen derComputertechnik begann erst ab etwa den 2000er Jahren.
Da der Name UNIX inGroßbuchstaben oder UNIX inKapitälchen eine eingetrageneMarke derOpen Group ist, dürfen nur zertifizierte Systeme den Namen UNIX führen. So nutzt man in der Fachliteratur üblicherweise UNIX zur Kennzeichnung zertifizierter Systeme, während Unix als Bezeichnung für sämtliche unixartigen Systeme verwendet wird.
Andere Systeme wieLinux oderQNX basieren hingegen nicht auf dem ursprünglichen Unix-Quelltext, sondern wurden separat entwickelt. Sie werden als unixoide Systeme bezeichnet, weil sie einen Teil der für Unix standardisiert definierten Betriebssystemfunktionen (POSIX) ebenfalls implementieren. Einen Sonderfall stelltBSD 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,proprietären Programmcode ist.
Ursprünglich hauptsächlich im universitären Bereich verbreitet, wurde es ab den 1980er und 1990er Jahren vor allem in professionellenWorkstations und aufServern eingesetzt. Mit Linux, macOS (bis 2016 OS X und ursprünglich, bis 2012, Mac OS X) und als Grundlage mehrerer verbreiteter Betriebssysteme fürMobilgeräte erreichte es ab etwa den 2000er Jahren auch den Massenmarkt für Privatnutzer. Die beidenmeistverbreiteten Betriebssysteme fürSmartphones undTabletcomputer,iOS undAndroid, basieren mit BSD (iOS) bzw. Linux (Android) auf unixoiden Betriebssystemen. Im September 2013 waren allein über eine Milliarde Android-Geräte weltweit aktiviert.[2] Für 2013 prognostizierte das Marktforschungsunternehmen Gartner-Group, dass erstmals mehr Android-basierte Systeme alsPCs mitWindows verkauft würden.[3] Zudem gewann Linux größere Bedeutung als quelloffenes Betriebssystem für Unternehmensanwendungen und alsEmbedded System für elektronische Geräte wieWLAN-Router oder Geräte derUnterhaltungselektronik.
Da das Unix-artige Linux sehr flexibel angepasst und optimiert werden kann, hat es sich auch in Rechenzentren stark verbreitet, in denen speziell angepasste Versionen aufGroßrechnern,Computerclustern (sieheBeowulf) oderSupercomputern laufen. Die in derTOP500-Liste der schnellsten Computersysteme aufgeführten Systeme werden derzeit (Stand: November 2024)[4] ausschließlich unter Linux betrieben. Der im Desktop-Bereich größte KonkurrentWindows spielt bei den Höchstleistungsrechnern keine Rolle.
Systemfunktionen und -befehle von Unix konnten ursprünglich vom Anwender nur per Tastatureingabe über eineKommandozeile aufgerufen werden. Der FernschreiberTeletype 33, galt in der Anfangszeit als Ein- und Ausgabegerät. Er ähnelte einer elektromechanischen Schreibmaschine, die durch den Computer gesteuert wurde, wobei sich die einzelnen Tasten nur schwer manuell betätigen ließen. Pro Sekunde war das Setzen von zehn Zeichen möglich. Dies ist auch ein Grund, weshalb viele Befehlsnamen in Unix von solch kurzer Länge sind.[5] Wenig später folgten Bildschirmterminals. Das Konzept dergrafischen Benutzeroberfläche mit Fenstern und Mausbedienung war zur selben Zeit erst im Entstehen begriffen und wurde explizit nur bei grafischen Aufgaben eingesetzt. Aus diesem Grund gibt es keine standardisierte grafische Unix-Bedienoberfläche, sondern eine Anzahl von später entwickelten Varianten wietwm oderCDE, von denen viele auf demX Window System aufbauen. Mit dem Aufkommen von Linux folgtenGnome undKDE. Bei vielen routinierten Anwendern, wieProgrammierern undSystemadministratoren, ist die Kommandozeile aus Effizienzgründen nach wie vor die bevorzugte Bedienschnittstelle. Unix-Abkömmlinge für Mobilgeräte wie Smartphones undTabletcomputer, darunter Apple iOS und Android, verwenden eigene Bedienkonzepte. Dabei ist der Zugriff auf Kommandozeile undDateisystem meist komplett (iOS) oder teilweise (Android) gesperrt.
Der Unix-Kernel hat überGerätetreiber allein Zugriff auf die Hardware und verwaltetProzesse. Daneben stellt er dasDateisystem zur Verfügung, in modernen Varianten zusätzlich denNetzwerkprotokollstapel. Systemaufrufe aus Prozessen dienen zum Starten (Systemaufrufefork,exec) und Steuern von weiteren Prozessen sowie zur Kommunikation mit dem Dateisystem. Zugriffe auf die Gerätetreiber werden als Zugriffe auf spezielle Dateien (Gerätedateien) im Dateisystem abgebildet. Dadurch werden Dateien und Geräte aus Sicht der Prozesse und damit der Anwendungsprogramme so weit wie möglich vereinheitlicht (Systemaufrufeopen,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. Das heute als Standard geltende Konzept war damals revolutionär.Stammverzeichnis (Root-Verzeichnis) dieserHierarchie 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 anderespecial 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,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, dieShell, – unter Unix ein normaler Prozess ohne Privilegien – sowie zahlreiche Standardkommandos ermöglichen dem Anwender eine einfache Ein-/Ausgabeumleitung inDateien, und überPipes die Kommunikation zwischenProzessen.
Eine große Sammlung von einfachen Kommandos, derUNIX-Werkzeugkasten, kann so mit Hilfe der Programmiermöglichkeiten desKommandointerpreters 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.
Unix ist historisch eng mit der ProgrammierspracheC verknüpft – beide verhalfen einander zum Durchbruch, und so ist C auch heute noch die bevorzugte Sprache unter Unix-Systemen.
Das System erhielt ursprünglich von einem Mitarbeiter den NamenUnics, einAkronym vonUniplexed Information and Computing Service und eine Anspielung aufMultics.[6] Wie später die kürzere Schreibweise des Auslautes als einzelner Buchstabex entstand, ist unklar.[7][8]
Ob die SchreibweiseUnix oder stattdessenUNIX richtig ist, wird schon lange diskutiert. Geschichtlich ist die SchreibweiseUnix die ältere, die SchreibweiseUNIX tauchte erst später auf – aus rein ästhetischen Gründen.[9] Heute haben sie unterschiedliche Bedeutungen: In der Fachliteratur verwendet man üblicherweise Unix als Bezeichnung fürunixartige Systeme, während man UNIX zur Kennzeichnung zertifizierter Systeme nutzt. Als Plural ist im DeutschenUnixe und das an die3. Deklination des Lateinischen angelehnteUnices im Gebrauch, im EnglischenUnixes und ebenfallsUnices.
Ken Thompson (links) und Dennis Ritchie (rechts)Unix wurde auf einemMinicomputer vom Typ DECPDP-7 entwickelt (die Abbildung zeigt nicht das Originalgerät).
Ken Thompson erstellte 1969 die erste Version von Unix inAssemblersprache auf derDECPDP-7 als Alternative zuMultics. Als eines der ersten Programme für den neuen Kernel schrieb Thompson zusammen mitDennis Ritchie das SpielSpace Travel,[10]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 derUniversität von Kalifornien in Berkeley dieBSD-Linie von Unix. Erst Ende der 1970er Jahre versuchte AT&T schließlich selbst, Unix gewinnbringend zu vermarkten, woraus dieSystem-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 HauptlinienBSD oderSystem-V abstammten. Als Reaktion darauf erhob sich der Ruf nach Standardisierung.
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 dieIEEE zunächst, die Schnittstellen für Anwendungsprogramme zu standardisieren. Daraus entwickelte sich der Standard IEEE 1003, der auf Anregung vonRichard StallmanPOSIX genannt wird. Er besteht heute aus etwa fünfzehn Dokumenten, die sich mit allen Aspekten von Unix-Systemen wie dem Kommandozeileninterpreter (POSIX definiert eine eigene Shell, diePOSIX-Shell, die allerdings bis auf Details mit derKornshell identisch ist), 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 zurSingle UNIX Specification derOpen Group zu verzeichnen.Dieser Standard ist offen, im Internet frei verfügbar und akzeptiert Vorschläge von jedem.
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. DieUniversität Berkeley entwickelte eine eigene Distribution mit wesentlichen Erweiterungen, dieBerkeley 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, selbstMicrosoft hatte mitXenix einige Zeit ein Unix im Angebot.Siemens adaptierte Xenix 1984 zu einem deutschen Unix namensSinix.
Die Nichtverfügbarkeit des Quellcodes veranlassteRichard Stallman, 1983 dasGNU-Projekt (GNU’sNotUnix) 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.
1987 erschien das LehrsystemMinix, entwickelt vonAndrew S. Tanenbaum an derFreien Universität Amsterdam. Minix war ein Unix-Klon mitMikrokernel, C-Compiler,Texteditor und vielen Kommandos, das als relativ anspruchsloses System auch auf schwacherPC-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 StudentLinus Torvalds an einemTerminalemulator, 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 Terminalemulator programmierte. Den Quelltext veröffentlichte er in derNewsgroup comp.os.minix als einen von Minix inspirierten Kernel, der auf einemIntel-386er-PC lauffähig sein sollte. Zuerst sollte sein ProjektFreax heißen. Da der Administrator der Universität ihmLinux als Login für sein FTP-Repository vergab, benannte Torvalds das Projekt nach diesem. Im Quelltext der Version 0.01 von Linux kommt noch der Name Freax vor („Makefile for the FREAX kernel“).
1992 erschien mit386BSD 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 inzwischen von AT&T-Quellcode befreiten Distribution.
4.4BSDLite bildete zusammen mit 386BSD die Grundlage fürNetBSD,FreeBSD und kurz daraufOpenBSD.
ApplemacOS ist ein Nachfolger vonOPENSTEP und NeXTStep und wurde 2001 unter dem Namen Mac OS X eingeführt. Als Basis dient einXNU genannter Hybridkernel, der aus einemMach-Microkernel und Teilen desFreeBSD-Kernels besteht. Das Basissystem namensDarwin enthält außerdem von anderen BSDs stammende Programme, die in einer Unix-Umgebung erwartet werden. Die Entwicklung von Darwin wurde unter die quelloffene LizenzApple Public Source License gestellt, welche in der Version 2.0 als Lizenz freier Software von derFree Software Foundation anerkannt wurde. Zusammen mit proprietären, nicht-quelloffenen Systemteilen – beispielsweiseAqua und vieleProgrammierschnittstellen – bildet Apple daraus die proprietären Betriebssysteme macOS undiOS,tvOS,watchOS undaudioOS. AbMac OS X Leopard 10.5 (2007) ist das Betriebssystem alsUNIX 03 durch dieOpen Group zertifiziert.[11]
Seit 2005 ist auchSolaris (Version 10) in der jeweils aktuellen Fassung für die gebührenfreie Benutzung erhältlich. Solaris läuft auf der 32-Bit- und 64-Bit-x86-Architektur (bzw.IA-32 ab dem80386 sowiex64 ab demOpteron) sowie auf 64-Bit-Systemen mit SunsUltraSPARC. Für Zugriff auf Quellen und Mitarbeit inklusive Erweiterung ist es in der FassungOpenSolaris erhältlich, die sich funktionell nicht von der Binärversion unterscheidet.
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.
Bell Labs; später als V7 oderVersion 7 von UNIX referenziert,[12] jedoch nicht identisch mit derSUS Version 4 (SUSv4) von 2016, ebenfallsUNIX V7 bezeichnet.
1979
UNIX/32V
Portierung der UNIX Version 7 (V7) aufVAX-Computer
Eine vom MIT durchgeführte Reimplementierung von Unix Version 6 für die Plattformen x86 und RISC-V als pädagogisch geeignetes Betriebssystem zum Lernen der Funktionsweise eines Betriebssystems[13]
Im FilmJurassic Park (1993) wird die gesamte Park-Steuerung mithilfe von Unix-Systemen erledigt, was die Hauptrolle Lex erfreut. Mit den Worten „Das ist ein Unix-System, damit kenne ich mich aus“ (im engl. Original: “It’s a Unix-System, I know this”) beginnt sie, das System zu bedienen (ca. 100. Filmminute, in der Blu-ray-Version etwa ab 113:04 min). Dabei kommen die dreidimensionale Dateiverwaltungfsn und einIRIX-System vonSilicon Graphics zum Einsatz.[14]
Plan 9 (Betriebssystem), in den 1980er Jahren neu entwickeltes Betriebssystem derBell Labs (und mit u. a.Ken Thompson), das Unix-Konzepte weiterführt, aber nicht kompatibel ist
Dennis M. Ritchie, Ken Thompson:Unix Programmer’s Manual, 2. Ausgabe, Bell Telephone Laboratories, Inc., 1972 (PDF; 7,4 MB)
Dennis M. Ritchie, Ken Thompson:The UNIX Time-Sharing System. In: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
Brian W. Kernighan:Die UNIX-Story. Die faszinierende Geschichte, wie Unix begann und wie es die Computerwelt eroberte (deutsche Übersetzung). dpunkt.verlag, Heidelberg 2020,ISBN 978-3-86490-778-4
↑Die Unix-Story. Geschichtliches Sachbuch über das Computerbetriebssystem Unix von AutorBrian W. Kernighan, 254 Seiten, Oktober 2020,dpunkt.verlag GmbH, Heidelberg, S. 55