Unix

Aus besserwiki.de
UNIX
Unix-Zeittafel
Unix-Zeittafel
Entwickler Ken Thompson, Dennis Ritchie, Douglas McIlroy u. a. bei Bell Laboratories
Lizenz(en) bis 1981: keine (frei)
ab 1981: proprietär (AT&T, Novell)
ab 2005 frei (CDDL) Sun Microsystems
Abstammung UNIX (keine Vorfahren)
Typisches Unix-Eingabefenster für Kommandozeilenbefehle, auch als Terminal oder Unix-Shell bezeichnet. Gezeigt ist die Auflistung der Inhalte eines Ordners nach Eingabe des Unix-Befehls ls -l

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.

Unix
UNIX logo.svg
Simh-pdp11-unix-sysiii.png
Unix System III läuft auf einem PDP-11-Simulator
EntwicklerKen Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy und Joe Ossanna bei Bell Labs
Geschrieben inC und Assembler
Betriebssystem-FamilieUnix
Quellcode-ModellHistorisch gesehen proprietäre Software, während einige Unix-Projekte (einschließlich BSD-Familie und illumos) Open-Source sind
Erste VeröffentlichungBeginn der Entwicklung im Jahr 1969
Erstes internes Handbuch im November 1971 veröffentlicht
Bekanntgabe außerhalb der Bell Labs im Oktober 1973
Verfügbar inEnglisch
Kernel-TypUnterschiedlich; monolithisch, Mikrokernel, hybrid
Beeinflusst vonCTSS, Multics
Standard
Benutzeroberfläche
Befehlszeilenschnittstelle und grafisch (Wayland und X Window System; Android SurfaceFlinger; macOS Quartz)
LizenzUnterschiedlich; einige Versionen sind proprietär, andere sind freie/offene Software
Offizielle Websitewww.opengroup.org/membership/forums/platform/unix

Unix (/ˈjnɪks/; auch als UNIX bekannt) ist eine Familie von Multitasking- und Mehrbenutzer-Computerbetriebssystemen, die auf das ursprüngliche AT&T Unix zurückgehen, dessen Entwicklung 1969 im Bell Labs-Forschungszentrum von Ken Thompson, Dennis Ritchie und anderen begonnen wurde.

Ursprünglich für den Einsatz innerhalb des Bell-Systems gedacht, lizenzierte AT&T Unix in den späten 1970er Jahren an externe Parteien, was zu einer Vielzahl von akademischen und kommerziellen Unix-Varianten von Anbietern wie der University of California, Berkeley (BSD), Microsoft (Xenix), Sun Microsystems (SunOS/Solaris), HP/HPE (HP-UX) und IBM (AIX) führte. Anfang der 1990er Jahre verkaufte AT&T seine Unix-Rechte an Novell, das dann die UNIX-Marke an The Open Group, ein 1996 gegründetes Industriekonsortium, verkaufte. Die Open Group erlaubt die Verwendung der Marke für zertifizierte Betriebssysteme, die der Single UNIX Specification (SUS) entsprechen.

Unix-Systeme zeichnen sich durch einen modularen Aufbau aus, der manchmal als "Unix-Philosophie" bezeichnet wird. Nach dieser Philosophie sollte das Betriebssystem eine Reihe einfacher Werkzeuge bereitstellen, von denen jedes eine begrenzte, genau definierte Funktion ausführt. Ein vereinheitlichtes und inodenbasiertes Dateisystem (das Unix-Dateisystem) und ein als "Pipes" bezeichneter Mechanismus für die Kommunikation zwischen Prozessen dienen als Hauptkommunikationsmittel, und eine Shell-Skript- und Befehlssprache (die Unix-Shell) wird verwendet, um die Werkzeuge zur Durchführung komplexer Arbeitsabläufe zu kombinieren.

Unix hebt sich von seinen Vorgängern als erstes portables Betriebssystem ab: Fast das gesamte Betriebssystem ist in der Programmiersprache C geschrieben, wodurch Unix auf zahlreichen Plattformen eingesetzt werden kann.

Überblick

Version 7 von Unix, dem Forschungs-Unix, dem Vorläufer aller modernen Unix-Systeme

Unix war ursprünglich als bequeme Plattform für Programmierer gedacht, die Software entwickeln, die darauf und auf anderen Systemen ausgeführt werden soll, und nicht für Nicht-Programmierer. Das System wuchs, als sich das Betriebssystem in akademischen Kreisen zu verbreiten begann und als die Benutzer dem System ihre eigenen Werkzeuge hinzufügten und sie mit Kollegen teilten.

Anfangs war Unix nicht auf Portabilität oder Multitasking ausgelegt. Später wurde Unix nach und nach portabel, multitaskingfähig und mehrbenutzerfähig in einer Time-Sharing-Konfiguration. Unix-Systeme zeichnen sich durch verschiedene Konzepte aus: die Verwendung von Klartext zum Speichern von Daten, ein hierarchisches Dateisystem, die Behandlung von Geräten und bestimmten Arten der Interprozesskommunikation (IPC) als Dateien und die Verwendung einer großen Anzahl von Softwaretools, kleinen Programmen, die über einen Befehlszeileninterpreter unter Verwendung von Pipes aneinandergereiht werden können, im Gegensatz zur Verwendung eines einzigen monolithischen Programms, das alle dieselben Funktionen enthält. Diese Konzepte sind unter dem Begriff "Unix-Philosophie" bekannt. Brian Kernighan und Rob Pike fassen dies in The Unix Programming Environment als "die Idee, dass die Stärke eines Systems mehr aus den Beziehungen zwischen den Programmen als aus den Programmen selbst kommt" zusammen.

Anfang der 1980er Jahre begannen die Benutzer, Unix als ein potenziell universelles Betriebssystem zu betrachten, das für Computer aller Größen geeignet ist. Die Unix-Umgebung und das Client-Server-Programmmodell waren wesentliche Elemente bei der Entwicklung des Internets und der Neugestaltung der Computertechnik, die sich eher auf Netzwerke als auf einzelne Computer konzentrierte.

Sowohl Unix als auch die Programmiersprache C wurden von AT&T entwickelt und an staatliche und akademische Einrichtungen verteilt, was dazu führte, dass beide auf eine größere Vielfalt von Rechnerfamilien portiert wurden als jedes andere Betriebssystem.

Das Unix-Betriebssystem besteht aus vielen Bibliotheken und Dienstprogrammen sowie dem Hauptsteuerungsprogramm, dem Kernel. Der Kernel stellt Dienste zum Starten und Beenden von Programmen bereit, verwaltet das Dateisystem und andere allgemeine "Low-Level"-Aufgaben, die sich die meisten Programme teilen, und plant den Zugriff, um Konflikte zu vermeiden, wenn Programme versuchen, gleichzeitig auf dieselbe Ressource oder dasselbe Gerät zuzugreifen. Um solche Zugriffe zu vermitteln, verfügt der Kernel über besondere Rechte, was sich in der Unterscheidung zwischen Kernel- und Benutzerbereich widerspiegelt, wobei letzterer ein vorrangiger Bereich ist, in dem die meisten Anwendungsprogramme arbeiten.

Geschichte

Ken Thompson (sitzend) und Dennis Ritchie arbeiten zusammen an einer PDP-11

Die Ursprünge von Unix gehen auf die Mitte der 1960er Jahre zurück, als das Massachusetts Institute of Technology, Bell Labs und General Electric Multics entwickelten, ein Time-Sharing-Betriebssystem für den Großrechner GE-645. Multics brachte einige Innovationen mit sich, warf aber auch große Probleme auf. Frustriert von der Größe und Komplexität von Multics, aber nicht von seinen Zielen, begannen einzelne Forscher bei Bell Labs, sich aus dem Projekt zurückzuziehen. Die letzten, die das Projekt verließen, waren Ken Thompson, Dennis Ritchie, Douglas McIlroy und Joe Ossanna, die beschlossen, ihre Erfahrungen in einem neuen, kleineren Projekt umzusetzen. Dieses neue Betriebssystem war zunächst ohne organisatorische Unterstützung und auch ohne Namen.

Das neue Betriebssystem war ein Single-Tasking-System. Im Jahr 1970 prägte die Gruppe den Namen Unics für Uniplexed Information and Computing Service in Anlehnung an Multics, das für Multiplexed Information and Computer Services stand. Brian Kernighan schreibt die Idee der Gruppe zu, fügt aber hinzu, dass sich "niemand mehr an den Ursprung der endgültigen Schreibweise Unix erinnern kann". Dennis Ritchie, Doug McIlroy und Peter G. Neumann berufen sich ebenfalls auf Kernighan.

Das Betriebssystem war ursprünglich in Assembler geschrieben, aber 1973 wurde Version 4 Unix in C umgeschrieben. Version 4 Unix enthielt jedoch noch viele PDP-11-abhängige Codes und war für eine Portierung nicht geeignet. Die erste Portierung auf eine andere Plattform wurde fünf Jahre später (1978) für die Interdata 8/32 vorgenommen.

Bell Labs produzierte mehrere Versionen von Unix, die unter dem Begriff Research Unix zusammengefasst werden. 1975 wurde die erste Quellcode-Lizenz für UNIX an Donald B. Gillies von der University of Illinois Urbana-Champaign Department of Computer Science (UIUC) verkauft. Der UIUC-Diplomstudent Greg Chesson, der in den Bell Labs am Unix-Kernel gearbeitet hatte, war maßgeblich an der Aushandlung der Lizenzbedingungen beteiligt.

In den späten 1970er und frühen 1980er Jahren führte der Einfluss von Unix in akademischen Kreisen zu einer weitreichenden Übernahme von Unix (BSD und System V) durch kommerzielle Startups, was wiederum zu einer Aufsplitterung von Unix in mehrere, ähnliche, aber oft leicht inkompatible Systeme führte, darunter DYNIX, HP-UX, SunOS/Solaris, AIX und Xenix. In den späten 1980er Jahren entwickelten die AT&T Unix System Laboratories und Sun Microsystems System V Release 4 (SVR4), das anschließend von vielen kommerziellen Unix-Anbietern übernommen wurde.

In den 1990er Jahren gewannen Unix und Unix-ähnliche Systeme an Popularität und wurden zum bevorzugten Betriebssystem für über 90 % der 500 schnellsten Supercomputer der Welt, da BSD- und Linux-Distributionen in Zusammenarbeit mit einem weltweiten Netzwerk von Programmierern entwickelt wurden. Im Jahr 2000 veröffentlichte Apple Darwin, ebenfalls ein Unix-System, das den Kern des Betriebssystems Mac OS X bildete, das später in macOS umbenannt wurde.

Unix-ähnliche Betriebssysteme sind in modernen Servern, Workstations und mobilen Geräten weit verbreitet.

Normen

Das Common Desktop Environment (CDE), Teil der COSE-Initiative

In den späten 1980er Jahren sorgte eine offene Standardisierungsinitiative für Betriebssysteme, die heute unter dem Namen POSIX bekannt ist, für eine gemeinsame Grundlage für alle Betriebssysteme. Das IEEE stützte POSIX auf die gemeinsame Struktur der wichtigsten konkurrierenden Varianten des Unix-Systems und veröffentlichte 1988 den ersten POSIX-Standard. In den frühen 1990er Jahren wurde ein separates, aber sehr ähnliches Projekt von einem Industriekonsortium gestartet, die Common Open Software Environment (COSE) Initiative, die schließlich zur Single UNIX Specification (SUS) wurde, die von der Open Group verwaltet wird. Ab 1998 gründeten die Open Group und das IEEE die Austin Group, um eine gemeinsame Definition von POSIX und der Single UNIX Specification zu erarbeiten, die bis 2008 zur Open Group Base Specification wurde.

In dem Bemühen um Kompatibilität einigten sich 1999 mehrere Unix-Systemhersteller auf das Executable and Linkable Format (ELF) von SVR4 als Standard für Binär- und Objektcodedateien. Das gemeinsame Format ermöglicht eine weitgehende Binärkompatibilität zwischen verschiedenen Unix-Systemen, die auf der gleichen CPU-Architektur arbeiten.

Der Filesystem Hierarchy Standard wurde geschaffen, um ein Referenzverzeichnis-Layout für Unix-ähnliche Betriebssysteme bereitzustellen; er wurde hauptsächlich in Linux verwendet.

Bestandteile

Das Unix-System besteht aus mehreren Komponenten, die ursprünglich zusammen verpackt waren. Indem es neben dem Kernel eines Betriebssystems auch die Entwicklungsumgebung, Bibliotheken, Dokumente und den portablen, veränderbaren Quellcode für alle diese Komponenten enthielt, war Unix ein in sich geschlossenes Softwaresystem. Dies war einer der Hauptgründe dafür, dass es sich zu einem wichtigen Lehr- und Lernmittel entwickelte und einen so großen Einfluss ausübte.

Die ursprüngliche V7-Unix-Distribution, die aus Kopien aller kompilierten Binärdateien sowie dem gesamten Quellcode und der Dokumentation bestand, war weniger als 10 MB groß und wurde auf einem einzigen Neun-Spur-Magnetband geliefert, was ihr den Ruf eines portablen Systems einbrachte. Die gedruckte Dokumentation, die aus den Online-Quellen gesetzt wurde, war in zwei Bänden enthalten.

Die Namen und Dateisystempositionen der Unix-Komponenten haben sich im Laufe der Geschichte des Systems erheblich geändert. Nichtsdestotrotz wird die V7-Implementierung von vielen als die kanonische frühe Struktur angesehen:

  • Kernel - Quellcode in /usr/sys, bestehend aus mehreren Unterkomponenten:
    • conf - Konfiguration und maschinenabhängige Teile, einschließlich Boot-Code
    • dev - Gerätetreiber für die Steuerung von Hardware (und einiger Pseudo-Hardware)
    • sys - Betriebssystem-"Kernel", der sich um Speicherverwaltung, Prozessplanung, Systemaufrufe usw. kümmert
    • h - Header-Dateien, die Schlüsselstrukturen innerhalb des Systems und wichtige systemspezifische Invarianten definieren
  • Entwicklungsumgebung - frühe Versionen von Unix enthielten eine Entwicklungsumgebung, die ausreichte, um das gesamte System aus dem Quellcode neu zu erstellen:
    • ed - Texteditor, zum Erstellen von Quellcode-Dateien
    • cc - Compiler für die Sprache C (erschien erstmals in V3 Unix)
    • as - Assembler in Maschinensprache für den Rechner
    • ld - Linker, zum Zusammenfügen von Objektdateien
    • lib - Objektcode-Bibliotheken (installiert in /lib oder /usr/lib). libc, die Systembibliothek mit C-Laufzeitunterstützung, war die primäre Bibliothek, aber es gab immer zusätzliche Bibliotheken für Dinge wie mathematische Funktionen (libm) oder Datenbankzugriff. Mit V7 Unix wurde die erste Version der modernen "Standard I/O" Bibliothek stdio als Teil der Systembibliothek eingeführt. Spätere Implementierungen erhöhten die Anzahl der Bibliotheken erheblich.
    • make - Build-Manager (eingeführt in PWB/UNIX), um den Build-Prozess effektiv zu automatisieren
    • include - Header-Dateien für die Softwareentwicklung, die Standardschnittstellen und Systeminvarianten definieren
    • Andere Sprachen - V7 Unix enthielt einen Fortran-77-Compiler, einen programmierbaren Rechner mit beliebiger Genauigkeit (bc, dc) und die Skriptsprache awk; spätere Versionen und Implementierungen enthalten viele andere Sprachcompiler und Toolsets. Frühe BSD-Versionen enthielten Pascal-Werkzeuge, und viele moderne Unix-Systeme enthalten auch die GNU Compiler Collection sowie oder anstelle eines proprietären Compiler-Systems.
    • Andere Werkzeuge - einschließlich eines Objektcode-Archiv-Managers (ar), Symboltabellen-Lister (nm), Compiler-Entwicklungswerkzeuge (z.B. lex & yacc) und Debugging-Werkzeuge.
  • Befehle - Unix unterscheidet kaum zwischen Befehlen (Programmen auf Benutzerebene) für den Betrieb und die Wartung des Systems (z. B. cron), Befehlen von allgemeinem Nutzen (z. B. grep) und allgemeineren Anwendungen wie dem Textformatierungs- und Schriftsatzpaket. Einige Hauptkategorien sind jedoch:
    • sh - der programmierbare "Shell"-Befehlszeileninterpreter, die primäre Benutzerschnittstelle unter Unix, bevor Fenstersysteme aufkamen, und auch danach (innerhalb eines "Befehlsfensters").
    • Utilities - der Kern des Unix-Befehlssatzes, einschließlich cp, ls, grep, find und viele andere. Zu den Unterkategorien gehören:
      • System-Utilities - Verwaltungswerkzeuge wie mkfs, fsck und viele andere.
      • Benutzerdienstprogramme - Werkzeuge zur Umgebungsverwaltung wie passwd, kill und andere.
    • Dokumentenformatierung - Unix-Systeme wurden von Anfang an für die Vorbereitung von Dokumenten und für Schriftsatzsysteme verwendet und enthielten viele entsprechende Programme wie nroff, troff, tbl, eqn, refer und pic. Einige moderne Unix-Systeme enthalten auch Pakete wie TeX und Ghostscript.
    • Grafiken - das Plot-Subsystem bot Möglichkeiten zur Erstellung einfacher Vektorplots in einem geräteunabhängigen Format, mit gerätespezifischen Interpretern zur Anzeige solcher Dateien. Moderne Unix-Systeme enthalten im Allgemeinen auch X11 als Standard-Fenstersystem und GUI, und viele unterstützen OpenGL.
    • Kommunikation - frühe Unix-Systeme enthielten keine systemübergreifende Kommunikation, aber die Programme mail und write für die Kommunikation zwischen Benutzern. Mit V7 wurde das frühe systemübergreifende Kommunikationssystem UUCP eingeführt, und Systeme, die mit BSD Release 4.1c begannen, enthielten TCP/IP-Dienstprogramme.
  • Dokumentation - Unix war das erste Betriebssystem, das seine gesamte Dokumentation in maschinenlesbarer Form online zur Verfügung stellte. Die Dokumentation umfasste:
    • man - Handbuchseiten für jeden Befehl, jede Bibliothekskomponente, jeden Systemaufruf, jede Header-Datei, usw.
    • doc - längere Dokumente, die wichtige Subsysteme wie die Sprache C und troff detailliert beschreiben

Auswirkungen

Ken Thompson und Dennis Ritchie, Hauptentwickler von Research Unix
Foto von der USENIX 1984, mit Dennis Ritchie (Mitte)
Plan 9 von Bell Labs erweitert die Unix-Designprinzipien und wurde als Nachfolger von Unix entwickelt.

Das Unix-System hatte einen erheblichen Einfluss auf andere Betriebssysteme. Es erlangte seinen Ruf durch seine Interaktivität, durch die Bereitstellung der Software gegen eine geringe Gebühr für den Einsatz im Bildungsbereich, durch den Betrieb auf preiswerter Hardware und durch die einfache Anpassung und Verlagerung auf andere Maschinen. Unix war ursprünglich in Assembler geschrieben, wurde aber bald in C, einer Hochsprache, umgeschrieben. Obwohl diese Sprache den Vorreitern CTSS, Multics und Burroughs MCP folgte, war es Unix, das die Idee populär machte.

Unix hatte ein drastisch vereinfachtes Dateimodell im Vergleich zu vielen heutigen Betriebssystemen: Es behandelte alle Arten von Dateien als einfache Byte-Arrays. Die Dateisystemhierarchie enthielt Maschinendienste und Geräte (wie Drucker, Terminals oder Festplattenlaufwerke) und bot so eine einheitliche Schnittstelle, allerdings auf Kosten der Tatsache, dass gelegentlich zusätzliche Mechanismen wie ioctl und Mode-Flags erforderlich waren, um auf Funktionen der Hardware zuzugreifen, die nicht in das einfache "Strom von Bytes"-Modell passten. Das Betriebssystem Plan 9 trieb dieses Modell noch weiter voran und beseitigte die Notwendigkeit zusätzlicher Mechanismen.

Unix machte auch das hierarchische Dateisystem mit beliebig verschachtelten Unterverzeichnissen populär, das ursprünglich von Multics eingeführt wurde. Andere gängige Betriebssysteme dieser Zeit hatten Möglichkeiten, ein Speichergerät in mehrere Verzeichnisse oder Abschnitte zu unterteilen, aber sie hatten eine feste Anzahl von Ebenen, oft nur eine Ebene. Mehrere große proprietäre Betriebssysteme fügten schließlich rekursive Unterverzeichnisfunktionen hinzu, die ebenfalls nach dem Vorbild von Multics gestaltet waren. DEC's RSX-11M's "group, user" Hierarchie entwickelte sich zu OpenVMS Verzeichnissen, CP/M's Volumes entwickelten sich zu MS-DOS 2.0+ Unterverzeichnissen, und HP's MPE group.account Hierarchie und IBM's SSP und OS/400 Bibliothekssysteme wurden in breitere POSIX Dateisysteme eingebettet.

Eine weitere Multics-Innovation, die von Unix übernommen wurde, bestand darin, den Befehlsinterpreter zu einem gewöhnlichen Programm auf Benutzerebene zu machen, wobei zusätzliche Befehle als separate Programme bereitgestellt wurden. Die Unix-Shell verwendete für interaktive Befehle dieselbe Sprache wie für die Skripterstellung (Shell-Skripte - es gab keine separate Job-Control-Sprache wie IBMs JCL). Da die Shell und die Betriebssystembefehle "nur ein weiteres Programm" waren, konnte der Benutzer seine eigene Shell wählen (oder sogar schreiben). Neue Befehle konnten hinzugefügt werden, ohne die Shell selbst zu verändern. Die innovative Befehlszeilensyntax von Unix zur Erstellung modularer Ketten von Erzeuger-Verbraucher-Prozessen (Pipelines) machte ein leistungsstarkes Programmierparadigma (Coroutines) weithin verfügbar. Viele spätere Kommandozeileninterpreter wurden von der Unix-Shell inspiriert.

Eine grundlegende vereinfachende Annahme von Unix war die Konzentration auf Newline-getrennten Text für fast alle Dateiformate. In der ursprünglichen Version von Unix gab es keine "binären" Editoren - das gesamte System wurde mit textuellen Shell-Befehlsskripten konfiguriert. Der gemeinsame Nenner im E/A-System war das Byte - im Gegensatz zu "Record-basierten" Dateisystemen. Die Konzentration auf Text zur Darstellung von fast allem machte Unix-Pipes besonders nützlich und förderte die Entwicklung einfacher, allgemeiner Werkzeuge, die leicht kombiniert werden konnten, um kompliziertere Ad-hoc-Aufgaben auszuführen. Die Konzentration auf Text und Bytes machte das System weitaus skalierbarer und portabler als andere Systeme. Im Laufe der Zeit haben sich textbasierte Anwendungen auch in anderen Anwendungsbereichen durchgesetzt, z. B. in Druckersprachen (PostScript, ODF) und auf der Anwendungsebene der Internetprotokolle, z. B. FTP, SMTP, HTTP, SOAP und SIP.

Unix machte eine Syntax für reguläre Ausdrücke populär, die weithin Verwendung fand. Die Unix-Programmierschnittstelle wurde zur Grundlage für einen weit verbreiteten Betriebssystem-Schnittstellenstandard (POSIX, siehe oben). Die Programmiersprache C verbreitete sich bald über Unix hinaus und ist heute in der System- und Anwendungsprogrammierung allgegenwärtig.

Die frühen Unix-Entwickler spielten eine wichtige Rolle bei der Einführung der Konzepte der Modularität und Wiederverwendbarkeit in die Praxis der Softwareentwicklung und brachten eine Bewegung für "Software-Tools" hervor. Im Laufe der Zeit etablierten die führenden Entwickler von Unix (und der darauf laufenden Programme) eine Reihe kultureller Normen für die Softwareentwicklung, die ebenso wichtig und einflussreich wurden wie die Unix-Technologie selbst; dies wird als Unix-Philosophie bezeichnet.

Die TCP/IP-Netzprotokolle wurden schnell in die auf relativ preiswerten Computern weit verbreiteten Unix-Versionen implementiert, was zum explosionsartigen Anstieg der weltweiten Echtzeit-Konnektivität im Internet beitrug und die Grundlage für Implementierungen auf vielen anderen Plattformen bildete.

Die Unix-Politik einer umfassenden Online-Dokumentation und (viele Jahre lang) eines einfachen Zugangs zum gesamten Quellcode des Systems weckte die Erwartungen der Programmierer und trug 1983 zur Entstehung der Bewegung für freie Software bei.

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.

Freies Unix und Unix-ähnliche Varianten

Konsolen-Screenshots von Debian (oben, eine beliebte Linux-Distribution) und FreeBSD (unten, ein beliebtes Unix-ähnliches Betriebssystem)

1983 kündigte Richard Stallman das GNU-Projekt (kurz für "GNU's Not Unix") an, ein ehrgeiziges Projekt zur Entwicklung eines Unix-ähnlichen Systems mit freier Software; "frei" in dem Sinne, dass jeder, der ein Exemplar erhält, es frei verwenden, studieren, verändern und weitergeben kann. Das eigene Kernel-Entwicklungsprojekt des GNU-Projekts, GNU Hurd, hatte noch keinen funktionierenden Kernel hervorgebracht, aber 1991 veröffentlichte Linus Torvalds den Linux-Kernel als freie Software unter der GNU General Public License. Zusätzlich zu ihrer Verwendung im GNU-Betriebssystem haben viele GNU-Pakete - wie die GNU Compiler Collection (und der Rest der GNU Toolchain), die GNU C-Bibliothek und die GNU Core Utilities - auch in anderen freien Unix-Systemen eine zentrale Rolle gespielt.

Linux-Distributionen, die aus dem Linux-Kernel und großen Sammlungen kompatibler Software bestehen, sind sowohl bei Privatanwendern als auch in der Wirtschaft beliebt geworden. Zu den beliebten Distributionen gehören Red Hat Enterprise Linux, Fedora, SUSE Linux Enterprise, openSUSE, Debian, Ubuntu, Linux Mint, Mandriva Linux, Slackware Linux, Arch Linux und Gentoo.

Ein freies Derivat von BSD Unix, 386BSD, wurde 1992 veröffentlicht und führte zu den Projekten NetBSD und FreeBSD. Mit der Beilegung eines Rechtsstreits, den die Unix System Laboratories 1994 gegen die University of California und Berkeley Software Design Inc. angestrengt hatten (USL gegen BSDi), wurde klargestellt, dass Berkeley das Recht hat, BSD Unix kostenlos zu vertreiben, wenn es dies wünscht. Seitdem wurde BSD Unix in mehreren verschiedenen Produktzweigen entwickelt, darunter OpenBSD und DragonFly BSD.

Linux und BSD decken zunehmend die Marktbedürfnisse ab, die traditionell von proprietären Unix-Betriebssystemen bedient wurden, und expandieren in neue Märkte, wie z. B. den Consumer-Desktop sowie mobile und eingebettete Geräte. Aufgrund des modularen Aufbaus des Unix-Modells ist die gemeinsame Nutzung von Komponenten relativ üblich; folglich enthalten die meisten oder alle Unix- und Unix-ähnlichen Systeme zumindest einen Teil des BSD-Codes, und einige Systeme enthalten auch GNU-Dienstprogramme in ihren Distributionen.

In einem Interview aus dem Jahr 1999 äußerte Dennis Ritchie die Meinung, dass Linux und BSD-Betriebssysteme eine Fortsetzung der Basis des Unix-Designs darstellen und Derivate von Unix sind:

Ich denke, das Linux-Phänomen ist recht reizvoll, weil es so stark auf der Grundlage von Unix aufbaut. Linux scheint zu den gesündesten der direkten Unix-Derivate zu gehören, obwohl es auch die verschiedenen BSD-Systeme sowie die offizielleren Angebote der Workstation- und Mainframe-Hersteller gibt.

In demselben Interview erklärt er, dass er sowohl Unix als auch Linux als "die Fortsetzung von Ideen, die von Ken und mir und vielen anderen vor vielen Jahren begonnen wurden" betrachtet.

OpenSolaris war das freie Software-Gegenstück zu Solaris, das von Sun Microsystems entwickelt wurde und einen CDDL-lizenzierten Kernel und ein hauptsächlich GNU-basiertes Benutzerland enthielt. Nach der Übernahme von Sun durch Oracle wurde das Projekt jedoch eingestellt, was eine Gruppe ehemaliger Sun-Mitarbeiter und Mitglieder der OpenSolaris-Community dazu veranlasste, OpenSolaris in den illumos-Kernel umzuwandeln. Seit 2014 ist illumos das einzige aktive Open-Source-Derivat von System V.

ARPANET

Im Mai 1975 wurde in RFC 681 die Entwicklung von Network Unix durch das Center for Advanced Computation an der University of Illinois Urbana-Champaign beschrieben. Das Unix-System sollte "mehrere interessante Fähigkeiten als ARPANET-Mini-Host" bieten. Damals war für Unix eine Lizenz der Bell Telephone Laboratories erforderlich, die für nicht-universitäre Einrichtungen 20.000 US-Dollar kostete, während Universitäten eine Lizenz für eine geringe Gebühr von 150 US-Dollar erwerben konnten. Es wurde vermerkt, dass Bell "offen für Vorschläge" für eine ARPANET-weite Lizenz war.

Der RFC erwähnt ausdrücklich, dass Unix "leistungsfähige lokale Verarbeitungsmöglichkeiten in Form von Benutzerprogrammen, mehrere Compiler, einen auf QED basierenden Editor, ein vielseitiges System zur Vorbereitung von Dokumenten und ein effizientes Dateisystem mit ausgeklügelter Zugriffskontrolle, mountable und de-mountable Volumes und eine einheitliche Behandlung von Peripheriegeräten als spezielle Dateien bietet". Letzteres ermöglichte die Integration des Network Control Program (NCP) in das Unix-Dateisystem, das Netzwerkverbindungen als spezielle Dateien behandelte, auf die über standardmäßige Unix-E/A-Aufrufe zugegriffen werden konnte, mit dem zusätzlichen Vorteil, dass alle Verbindungen beim Beenden des Programms geschlossen wurden, falls der Benutzer dies versäumte. Der modulare Aufbau von Unix ermöglichte es ihnen, "die Menge an Code, die dem grundlegenden Unix-Kernel hinzugefügt wurde, zu minimieren", wobei ein Großteil des NCP-Codes in einem auslagerbaren Benutzerprozess enthalten war, der nur bei Bedarf ausgeführt wurde.

Branding

Werbekennzeichen der Digital Equipment Corporation
HP9000 Workstation mit HP-UX, einem zertifizierten Unix-Betriebssystem

Im Oktober 1993 übertrug Novell, das Unternehmen, das damals die Rechte am Unix System V-Quellcode besaß, die Marken von Unix an die X/Open Company (heute The Open Group) und verkaufte 1995 die damit verbundenen Geschäftsbereiche an Santa Cruz Operation (SCO). Die Frage, ob Novell auch die Urheberrechte an der eigentlichen Software verkauft hat, war Gegenstand eines Bundesgerichtsverfahrens im Jahr 2006, SCO gegen Novell, das Novell gewann. Gegen den Fall wurde Berufung eingelegt, doch am 30. August 2011 bestätigte der United States Court of Appeals for the Tenth Circuit die Gerichtsentscheidungen und stellte den Fall ein. Der Unix-Anbieter SCO Group Inc. beschuldigte Novell der Titelverleumdung.

Der derzeitige Inhaber der Marke UNIX ist The Open Group, ein Konsortium für Industriestandards. Nur Systeme, die vollständig mit der Single UNIX Specification übereinstimmen und nach dieser zertifiziert sind, gelten als "UNIX" (andere werden als "Unix-ähnlich" bezeichnet).

Auf Beschluss der Open Group bezieht sich der Begriff "UNIX" eher auf eine Klasse von Betriebssystemen als auf eine bestimmte Implementierung eines Betriebssystems. Diejenigen Betriebssysteme, die die Single UNIX Specification der Open Group erfüllen, sollten heute die Marken UNIX 98 oder UNIX 03 tragen können, nachdem der Hersteller des Betriebssystems eine beträchtliche Zertifizierungsgebühr und jährliche Lizenzgebühren an die Open Group entrichtet hat. Zu den Systemen, die eine Lizenz für die Verwendung der UNIX-Marke erhalten haben, gehören AIX, EulerOS, HP-UX, Inspur K-UX, IRIX, macOS, Solaris, Tru64 UNIX (früher "Digital UNIX" oder OSF/1) und z/OS. Insbesondere EulerOS und Inspur K-UX sind Linux-Distributionen, die als UNIX 03-konform zertifiziert sind.

Manchmal wird eine Darstellung wie Un*x, *NIX oder *N?X verwendet, um alle Unix-ähnlichen Betriebssysteme zu bezeichnen. Dies kommt von der Verwendung des Sterns (*) und des Fragezeichens als Platzhalter in vielen Dienstprogrammen. Diese Notation wird auch verwendet, um andere Unix-ähnliche Systeme zu beschreiben, die die Anforderungen der Open Group für die UNIX-Marke nicht erfüllt haben.

Die Open Group verlangt, dass UNIX immer als Adjektiv, gefolgt von einem generischen Begriff wie System, verwendet wird, um die Schaffung einer generischen Marke zu vermeiden.

Unix war die ursprüngliche Formatierung, aber die Verwendung von UNIX ist nach wie vor weit verbreitet, weil es früher in Kapitälchen geschrieben wurde (Unix). Als Dennis Ritchie auf dem dritten Betriebssystem-Symposium der American Association for Computing Machinery (ACM) das ursprüngliche Unix-Papier vorstellte, sagte er: "Wir hatten einen neuen Schriftsetzer, und Troff war gerade erfunden worden, und wir waren berauscht von der Möglichkeit, Kapitälchen zu produzieren. Viele der Vorgänger und Zeitgenossen des Betriebssystems verwendeten Großbuchstaben, so dass viele Leute den Namen aus Gewohnheit in Großbuchstaben schrieben. Es handelt sich nicht um ein Akronym.

Markennamen können von verschiedenen Unternehmen in verschiedenen Ländern registriert werden, und die Markengesetze in einigen Ländern erlauben es, dass ein und derselbe Markenname von zwei verschiedenen Unternehmen kontrolliert wird, wenn jedes Unternehmen die Marke in leicht zu unterscheidenden Kategorien verwendet. Dies hat dazu geführt, dass Unix als Markenname für verschiedene Produkte wie Bücherregale, Tintenstifte, Klebstoff in Flaschen, Windeln, Haartrockner und Lebensmittelbehälter verwendet wurde.

Mehrere Pluralformen von Unix werden beiläufig verwendet, um sich auf mehrere Marken von Unix und Unix-ähnlichen Systemen zu beziehen. Am gebräuchlichsten ist das herkömmliche Unixes, aber auch Unices, das Unix als lateinisches Substantiv der dritten Deklination behandelt, ist beliebt. Die pseudo-angelsächsische Pluralform Unixen ist nicht gebräuchlich, kommt aber gelegentlich vor. Sun Microsystems, der Entwickler der Solaris-Variante, hat behauptet, dass der Begriff Unix selbst ein Plural ist, der sich auf seine vielen Implementierungen bezieht.

Verbreitung

Professionelle Computergrafik- und CAD-Workstation SGI Octane mit dem UNIX-Derivat IRIX, Ende der 1990er Jahre.

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.

IBM Blue Gene

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 (siehe Beowulf) oder Supercomputern laufen. Die in der TOP500-Liste der schnellsten Computersysteme aufgeführten Systeme werden derzeit (Stand: November 2018) ausschließlich unter Linux betrieben. 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.

UNIX-Derivate und unixähnliche Betriebssysteme

GNU

Minix und Linux

Linus Torvalds, Entwickler von 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.

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.

Trivia

Im Film „Jurassic Park“ wird die komplette Park-Steuerung von Unix-Systemen erledigt, was die Hauptrolle „Lex“ erfreut (ca. 100. Filmminute) – sie weiß diese Steuerung zu bedienen.