Unix
Unix (englisch [ˈjuːnɪks]) ist ein Mehrbenutzer-Betriebssystem für Computer. Es wurde im August 1969 von Bell Laboratories zur Unterstützung der Softwareentwicklung entwickelt. Heute steht Unix allgemein für Betriebssysteme, die entweder ihren Ursprung im Unix-System von AT&T (ursprünglich Bell 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 bei Workstations und Servern eingesetzt, insbesondere an Universitäten und Forschungseinrichtungen. Die heutige massenhafte Anwendung in fast allen Bereichen der Computertechnik begann erst ab etwa den 2000er Jahren.
Maßgebliche Entwickler von Unix waren Ken Thompson und Dennis Ritchie, die es zunächst in Assemblersprache, dann in der von Ritchie entwickelten Programmiersprache C schrieben. Mit Unix wurden einige maßgebliche Konzepte der Informationstechnik erstmals eingeführt, etwa das hierarchische, baumartig aufgebaute Dateisystem mit Ordnerstruktur. Die frühen Entwickler definierten auch eine Reihe von Konzepten und Regeln für die Softwareentwicklung, die als Unix-Philosophie bekannt wurden. Unix wurde bis in die 1980er Jahre als quelloffenes Betriebssystem vor allem an US-Universitäten weiterentwickelt und hatte erheblichen Einfluss auf die Hackerkultur.
In den 1980ern wurde es von AT&T kommerzialisiert, was zu einer Reihe von unabhängigen Weiterentwicklungen und Abspaltungen führte und in den sogenannten „Unix-Kriegen“ (Unix Wars) zwischen verschiedenen Systemen und Herstellern mündete. Die diversen auf Unix basierenden bzw. davon abgeleiteten Betriebssysteme sind heute zusammengenommen die meistverbreiteten Betriebssysteme für Computer und für viele Arten von elektronischen Geräten, die einen Computer enthalten. Dabei reicht die Einsatz-Bandbreite von Mobilgeräten wie Smartphones über Personal Computer und Webserver bis hin zu den größten Supercomputern. Ferner wird insbesondere das Unix-artige Linux auch als Embedded System in industriellen Mess- und Steuergeräten, in Geräten der Medizintechnik, Unterhaltungselektronik und elektronisch gesteuerten Gebrauchsgegenständen wie zum Beispiel Haushaltsgeräten, Kraftfahrzeugen oder WLAN-Routern eingesetzt. Die heute meistverbreitete kommerzielle, proprietäre Unix-Variante ist macOS von Apple bzw. dessen Mobilvariante iOS, die meistverbreitete Unix-artige Open-Source-Variante ist Linux bzw. das davon abgeleitete Android.
Typologie der Varianten
Da der Name „UNIX“ in Großbuchstaben oder „UNIX“ in Kapitälchen 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“ zur Kennzeichnung zertifizierter Systeme, während „Unix“ als Bezeichnung für sämtliche unixartigen 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), UnixWare (SCO Group), 386/ix (erst Eastman Kodak, später SunSoft), Solaris (Oracle), AMIX (Commodore) und macOS (Apple).
Andere Systeme wie Linux oder QNX 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 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, proprietären Programmcode ist.
Verbreitung
Ursprünglich hauptsächlich im universitären Bereich verbreitet, wurde es ab den 1980er und 1990er Jahren vor allem in professionellen Workstations und auf Servern eingesetzt. Mit Linux, macOS (bis 2016 OS X und ursprünglich, bis 2012, Mac OS X) und als Grundlage mehrerer verbreiteter Betriebssysteme für Mobilgeräte erreichte es ab etwa den 2000er Jahren auch den Massenmarkt für Privatnutzer. Die beiden meistverbreiteten Betriebssysteme für Smartphones und Tabletcomputer, iOS und Android, basieren mit BSD (iOS) bzw. Linux (Android) auf unixoiden Betriebssystemen. Im September 2013 waren allein über eine Milliarde Android-Geräte weltweit aktiviert. Für 2013 prognostizierte das Marktforschungsunternehmen Gartner-Group, dass erstmals mehr Android-basierte Systeme als PCs mit Windows verkauft würden. Zudem gewann Linux größere Bedeutung als quelloffenes Betriebssystem für Unternehmensanwendungen und als Embedded System für elektronische Geräte wie WLAN-Router oder Geräte der Unterhaltungselektronik.
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 auf Großrechnern, Computerclustern oder Supercomputern laufen. Der im Desktop-Bereich größte Konkurrent Windows spielt bei den Höchstleistungsrechnern keine Rolle.
Bedienung
Systemfunktionen und -befehle von Unix konnten ursprünglich vom Anwender nur per Tastatureingabe über eine Kommandozeile aufgerufen werden, obwohl das Konzept der grafischen Benutzeroberfläche mit Fenstern und Mausbedienung zur Entstehungszeit bereits bekannt war. Die Tastatur Teletype 33, welche zu dieser Zeit als Eingabegerät verwendet wurde, ähnelte einer elektromechanischen Schreibmaschine, 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. Aus diesem Grund gibt es keine standardisierte grafische Unix-Bedienoberfläche, sondern eine Anzahl von später entwickelten Varianten wie twm oder CDE, Gnome und KDE, von denen viele auf dem X Window System aufbauen. Bei vielen Anwendern wie professionellen Programmierern und Systemadministratoren ist die Kommandozeile nach wie vor die bevorzugte Bedienschnittstelle. Unix-Abkömmlinge für Mobilgeräte wie Smartphones und Tabletcomputer, darunter Apple iOS und Android, verwenden eigene Bedienkonzepte. Dabei ist der Zugriff auf Kommandozeile und Dateisystem meist komplett (iOS) oder teilweise (Android) gesperrt.
Aufbau und 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“ (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 (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. Das heute als Standard geltende Konzept war damals revolutionär. Stammverzeichnis (Root-Verzeichnis) 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, 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 erhielt ursprünglich von einem Mitarbeiter den Namen Unics, ein Akronym von Uniplexed Information and Computing Service und eine Anspielung auf Multics. Wie später die kürzere Schreibweise des Ausklangs als einzelner Buchstabe „x“ entstand, ist unklar.
Ob die Schreibweise Unix oder stattdessen UNIX richtig ist, wird schon lange diskutiert. Geschichtlich ist die Schreibweise Unix die ältere, die Schreibweise UNIX tauchte erst später auf – aus rein ästhetischen Gründen. 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
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 Kernel schrieb Thompson zusammen mit Dennis Ritchie das Spiel Space Travel, 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.
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 Standard IEEE 1003, der auf Anregung von Richard Stallman POSIX 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, die POSIX-Shell, die allerdings bis auf Details mit der Kornshell 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 zur Single UNIX Specification der Open Group zu verzeichnen. Dieser Standard ist offen, im Internet frei verfügbar und akzeptiert Vorschläge von jedem.
Markenrechte
Die Rechte an der Marke UNIX liegen bei der Open Group.
UNIX-Derivate und unixähnliche 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. Siemens 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.
Minix und 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 Terminalemulator, 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 der Newsgroup comp.os.minix als von Minix inspirierter Kernel, 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, benannte er das Projekt nach diesem. Im Quelltext der Version 0.01 von Linux kommt noch der Name Freax vor („Makefile for the FREAX kernel“).
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 inzwischen von AT&T-Quellcode befreiten Distribution.
4.4BSDLite bildete zusammen mit 386BSD die Grundlage für NetBSD, FreeBSD und kurz darauf OpenBSD.
macOS mit Darwin
Apple macOS ist ein Nachfolger von OPENSTEP und NeXTStep und wurde 2001 unter dem Namen Mac OS X eingeführt. Als Basis dient ein XNU genannter Hybridkernel, der aus einem Mach-Microkernel und Teilen des FreeBSD-Kernels besteht. Das Basissystem namens Darwin enthält außerdem von anderen BSDs stammende Programme, die in einer Unix-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 proprietären, nicht-quelloffenen Systemteilen – beispielsweise Aqua und viele Programmierschnittstellen – bildet Apple daraus die proprietären Betriebssysteme macOS und iOS, tvOS, watchOS und audioOS. Ab Mac OS X Leopard 10.5 (2007) ist das Betriebssystem als UNIX 03 durch die Open Group zertifiziert.
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-x86-Prozessoren (bzw. IA-32, was sowohl die 32-Bit-Architektur ab dem 80386 als auch die 64-Bit-Architektur „x64“ ab dem Opteron beinhaltet) 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.
Literatur
- 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.
- 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.
© biancahoegel.de
Datum der letzten Änderung: Jena, den: 02.10. 2022