Haupt >> Software >> Unix

Unix

Unix (offiziell markenrechtlich geschützt als UNIX ) ist ein Computerbetriebssystem, das ursprünglich in den 1960er und 1970er Jahren von einer Gruppe von AT&T Mitarbeiter von Bell Labs, darunter Ken Thompson, Dennis Ritchie , und Douglas McIlroy. Die heutigen Unix-Systeme sind in verschiedene Zweige aufgeteilt, die im Laufe der Zeit von AT&T sowie verschiedenen kommerziellen Anbietern und gemeinnützigen Organisationen entwickelt wurden.

Der jetzige Inhaber der Marke UNIX ist The Open Group, ein Konsortium für Industriestandards. Nur Systeme, die vollständig mit der Single UNIX Specification kompatibel und dafür zertifiziert sind, gelten als „UNIX“ (andere werden als „Unix-systemähnlich“ oder „Unix-ähnlich“ bezeichnet).

In den späten 1970er und frühen 1980er Jahren führte der Einfluss von Unix in akademischen Kreisen zu einer groß angelegten Einführung von Unix (insbesondere der BSD-Variante, die von der University of California, Berkeley stammt) durch kommerzielle Startups, von denen das bemerkenswerteste Sun Microsystems ist. Heute werden neben zertifizierten Unix-Systemen auch Unix-ähnliche Betriebssysteme wie z Linux und Mac OS X sind häufig anzutreffen.



Manchmal, Traditionelles Unix kann verwendet werden, um ein Unix oder ein Betriebssystem zu beschreiben, das die Merkmale von entweder Version 7 Unix oder UNIX System V aufweist.

  Filiation von Unix und Unix-ähnlichen Systemen   Vergrößern Filiation von Unix und Unix-ähnlichen Systemen

Überblick

Unix-Betriebssysteme sind sowohl auf Servern als auch auf Workstations weit verbreitet. Die Unix-Umgebung und das Client-Server-Programmmodell waren wesentliche Elemente bei der Entwicklung des Internet und die Neugestaltung der Datenverarbeitung, da sie sich auf Netzwerke statt auf einzelne Computer konzentriert.

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 Maschinenfamilien portiert wurden als jedes andere Betriebssystem. Dadurch wurde Unix zum Synonym für „offene Systeme“.

Unix wurde entwickelt, um portabel, multitaskingfähig und für mehrere Benutzer in einer Timesharing-Konfiguration zu sein. Unix-Systeme sind durch verschiedene Konzepte gekennzeichnet: die Verwendung von Klartext zum Speichern von Daten; ein hierarchisches Dateisystem; Behandlung von Geräten und bestimmten Arten von Interprozesskommunikation (IPC) als Dateien; und die Verwendung einer großen Anzahl kleiner Programme, die über einen Befehlszeileninterpreter unter Verwendung von Pipes aneinandergereiht werden können, im Gegensatz zur Verwendung eines einzelnen monolithischen Programms, das alle dieselbe Funktionalität enthält. Diese Konzepte sind als Unix-Philosophie bekannt.

Unter Unix besteht das 'Betriebssystem' aus vielen dieser Dienstprogramme zusammen mit dem übergeordneten Steuerungsprogramm, dem Kernel. Der Kernel stellt Dienste bereit, um Programme zu starten und zu stoppen, das Dateisystem und andere übliche 'High-Level'-Aufgaben zu verwalten, die die meisten Programme gemeinsam nutzen, und, vielleicht am wichtigsten, den Zugriff auf die Hardware zu planen, um Konflikte zu vermeiden, wenn zwei Programme versuchen, gleichzeitig auf dieselbe Ressource zuzugreifen oder Gerät. Um solche Zugriffe zu vermitteln, wurden dem Kernel Sonderrechte auf dem System eingeräumt und zur Teilung zwischen ihnen geführt Benutzerbereich und Kernel-Raum .

Der Mikrokernel versuchte, die wachsende Größe der Kernel umzukehren und zu einem System zurückzukehren, in dem die meisten Aufgaben von kleineren Dienstprogrammen erledigt würden. In einer Zeit, als ein 'normaler' Computer aus einer Festplatte zum Speichern und einem Datenterminal für Ein- und Ausgabe (E/A) bestand, funktionierte das Unix-Dateimodell recht gut, da die meisten E/A 'linear' waren. Moderne Systeme umfassen jedoch Netzwerke und andere neue Geräte. Das Beschreiben einer grafischen Benutzeroberfläche, die von der Maussteuerung in einer 'ereignisgesteuerten' Weise gesteuert wird, funktionierte unter dem alten Modell nicht gut. Die Arbeit an Systemen, die diese neuen Geräte in den 1980er Jahren unterstützten, führte zu Einrichtungen für nicht blockierende E / A, anderen Formen der Kommunikation zwischen Prozessen als nur Pipes sowie zum Verschieben von Funktionen wie Netzwerkprotokollen aus dem Kernel.

Geschichte

In den 1960er Jahren arbeiteten das Massachusetts Institute of Technology, AT&T Bell Labs und General Electric an einem experimentellen Betriebssystem namens Multics ( Viel verwirrt ich Informationen und C Berechnung S service), das für den Betrieb auf dem Mainframe-Computer GE-645 entwickelt wurde. Das Ziel war die Schaffung eines kommerziellen Produkts, obwohl dies nie ein großer Erfolg war. Multics war ein interaktives Betriebssystem mit vielen neuartigen Fähigkeiten, einschließlich verbesserter Sicherheit. Das Projekt entwickelte Produktionsversionen, aber diese Veröffentlichungen schnitten anfangs schlecht ab.

AT&T Bell Labs zog sich zurück und setzte seine Ressourcen woanders ein. Einer der Entwickler des Bell Labs-Teams, Ken Thompson, entwickelte weiter für den GE-645-Mainframe und schrieb ein Spiel für diesen Computer namens Space Travel. Er stellte jedoch fest, dass das Spiel auf der GE-Maschine zu langsam und kostspielig war und 75 US-Dollar pro Ausführung in knapper Rechenzeit kostete.

  Eine unvollständige Liste gleichzeitig laufender Prozesse auf einem UNIX-System.   Vergrößern Eine unvollständige Liste gleichzeitig laufender Prozesse auf einem UNIX-System.

Thompson schrieb daher das Spiel in Assemblersprache für den PDP-7 der Digital Equipment Corporation mit Hilfe von Dennis Ritchie neu. Diese Erfahrung, kombiniert mit seiner Arbeit am Multics-Projekt, veranlasste Thompson, ein neues Betriebssystem für den PDP-7 zu starten. Thompson und Ritchie leiteten ein Team von Entwicklern, darunter Rudd Canaday, bei Bell Labs, die ein Dateisystem sowie das neue Multitasking-Betriebssystem selbst entwickelten. Sie enthielten einen Befehlszeileninterpreter und einige kleine Hilfsprogramme.

1970er

1970 wurde das Projekt benannt Unikat , kurz für EIN verwirrt ich Informationen und C Berechnung S System und könnte zwei gleichzeitige Benutzer unterstützen. Der Name wurde Brian Kernighan zugeschrieben und war ein Wortspiel Multic - Unix würde eine Sache tun, und zwar gut, anstatt das allzu allgemeine und aufgeblähte Multics-System. Die Schreibweise wurde später in Unix geändert.

Bis zu diesem Zeitpunkt gab es keine finanzielle Unterstützung von Bell Labs. Als die Computer Science Research Group Unix auf einem viel größeren Rechner als dem PDP-7 verwenden wollte, gelang es Thompson und Ritchie, das Versprechen, Unix mit Textverarbeitungsfunktionen auszustatten, gegen einen PDP-11/20-Rechner einzutauschen. Dies führte zu einer gewissen finanziellen Unterstützung durch Bell. 1970 wurde das UNIX-Betriebssystem zum ersten Mal offiziell benannt und auf dem PDP-11/20 ausgeführt. Es fügte ein Textformatierungsprogramm namens roff und einen Texteditor hinzu. Alle drei wurden in der Assemblersprache PDP-11/20 geschrieben. Bell Labs nutzte dieses erste „Textverarbeitungssystem“, bestehend aus Unix, roff und dem Editor, für die Textverarbeitung von Patentanmeldungen. Roff entwickelte sich bald zu troff, dem ersten elektronischen Veröffentlichungsprogramm mit vollständiger Satzfunktion. Das Handbuch für UNIX-Programmierer wurde am 3. November 1971 veröffentlicht.

1973 wurde die Entscheidung getroffen, Unix in der Programmiersprache C neu zu schreiben. Die Änderung bedeutete, dass es einfacher war, Unix so zu modifizieren, dass es auf anderen Computern funktioniert (und somit portabel wurde), und andere Entwickler Variationen erstellen konnten. Der Code war jetzt prägnanter und kompakter, was zu einer beschleunigten Entwicklung von Unix führte. AT&T stellte Unix Universitäten und Handelsunternehmen sowie der Regierung der Vereinigten Staaten unter Lizenzen zur Verfügung. Die Lizenzen enthielten den gesamten Quellcode mit Ausnahme des maschinenabhängigen Kernels, der im PDP-11-Assemblercode geschrieben wurde. Kopien des mit Anmerkungen versehenen maschinenabhängigen Unix-Kernels verbreiteten sich jedoch Ende der 1970er Jahre in Form eines viel kopierten Buches von John Lions von der University of New South Wales Lions-Kommentar zu UNIX, 6. Ausgabe, mit Quellcode , was zu einer beträchtlichen Akzeptanz von Unix als Betriebssystem für den Unterricht führte.

Die Versionen des Unix-Systems wurden durch Ausgaben seiner Benutzerhandbücher bestimmt, so dass (zum Beispiel) „Fünfte Edition UNIX“ und „UNIX Version 5“ beide verwendet wurden, um dasselbe zu bezeichnen. Die Entwicklung wurde erweitert, wobei die Versionen 4, 5 und 6 bis 1975 veröffentlicht wurden. Diese Versionen fügten das Konzept von Pipes hinzu, was zur Entwicklung einer modulareren Codebasis führte und die Entwicklungsgeschwindigkeit noch weiter erhöhte. Version 5 und insbesondere Version 6 führten zu einer Fülle verschiedener Unix-Versionen sowohl innerhalb als auch außerhalb von Bell Labs, darunter PWB/UNIX, IS/1 (das erste kommerzielle Unix) und die Portierung der University of Wollongong auf Interdata 7/32 (the erstes Nicht-PDP-Unix).

1978 wurde UNIX/32V für das VAX-System veröffentlicht. Zu diesem Zeitpunkt liefen über 600 Maschinen in irgendeiner Form mit Unix. Version 7 Unix, die letzte allgemein veröffentlichte Version von Research Unix, wurde 1979 veröffentlicht. Die Versionen 8, 9 und 10 wurden in den 1980er Jahren entwickelt, aber nur an wenige Universitäten veröffentlicht, obwohl sie Papiere erstellten, in denen die neue Arbeit beschrieben wurde . Diese Forschung führte zur Entwicklung von Plan 9 von Bell Labs, einem neuen tragbaren verteilten System.

1980er

  Bearbeiten eines Shell-Skripts mit dem ed-Editor. Das Dollarzeichen oben auf dem Bildschirm ist die von der Shell ausgegebene Eingabeaufforderung.'ed' is typed to start the editor, which takes over from that point on the screen downwards.   Vergrößern Bearbeiten eines Shell-Skripts mit der ed Editor. Das Dollarzeichen oben auf dem Bildschirm ist die von der Shell ausgegebene Eingabeaufforderung. 'ed' wird eingegeben, um den Editor zu starten, der ab diesem Punkt auf dem Bildschirm nach unten übernimmt.

AT&T lizenzierte nun UNIX System III, das größtenteils auf Version 7 basiert, für die kommerzielle Nutzung, wobei die erste Version 1982 auf den Markt kam. Dies beinhaltete auch die Unterstützung für VAX. AT&T stellte weiterhin Lizenzen für ältere Unix-Versionen aus. Um die Verwirrung zwischen all seinen unterschiedlichen internen Versionen zu beenden, kombinierte AT&T sie in UNIX System V Release 1. Dadurch wurden einige Funktionen wie der vi-Editor und Curses aus der Berkeley Software Distribution von Unix eingeführt, die an der University of California, Berkeley, entwickelt wurden. Dazu gehörte auch die Unterstützung der Western Electric 3B-Maschinenserie.

Da die neueren kommerziellen UNIX-Lizenzbedingungen für den akademischen Gebrauch nicht so günstig waren wie die älteren Unix-Versionen, entwickelten die Berkeley-Forscher BSD Unix als Alternative zu UNIX System III und V weiter, ursprünglich auf der PDP-11-Architektur (die 2. xBSD-Releases, die mit 2.11BSD enden) und später für VAX-11 (die 4.x-BSD-Releases). Viele Beiträge zu Unix erschienen zuerst auf BSD-Systemen, insbesondere die C-Shell mit Jobsteuerung (nach dem Vorbild von ITS). Der vielleicht wichtigste Aspekt der BSD-Entwicklungsbemühungen war die Hinzufügung von TCP/IP-Netzwerkcode zum Mainstream-Unix-Kernel. Die BSD-Bemühungen brachten mehrere bedeutende Releases hervor, die Netzwerkcode enthielten: 4.1cBSD, 4.2BSD, 4.3BSD, 4.3BSD-Tahoe ('Tahoe' ist der Spitzname der CCI Power 6/32-Architektur, die die erste Nicht-DEC-Release des BSD-Kernel), Net/1, 4.3BSD-Reno (um dem Namen „Tahoe“ zu entsprechen und dass die Veröffentlichung ein Glücksspiel war), Net/2, 4.4BSD und 4.4BSD-lite. Der in diesen Versionen enthaltene Netzwerkcode ist der Vorfahr fast aller heute verwendeten TCP/IP-Netzwerkcodes, einschließlich des Codes, der später in AT&T System V UNIX und veröffentlicht wurde Microsoft Windows . Die begleitende Berkeley Sockets API ist ein De-facto-Standard für Netzwerk-APIs und wurde auf vielen Plattformen kopiert.

Andere Unternehmen begannen, kommerzielle Versionen des UNIX-Systems für ihre eigenen Minicomputer und Workstations anzubieten. Die meisten dieser neuen Unix-Varianten wurden auf Basis von System V unter einer Lizenz von AT&T entwickelt; Andere basierten jedoch stattdessen auf BSD. Einer der führenden Entwickler von BSD, Bill Joy, war 1982 Mitbegründer von Sun Microsystems und schuf SunOS (jetzt Solaris) für deren Workstation-Computer. 1980, Microsoft kündigte sein erstes Unix für 16-Bit-Mikrocomputer namens Xenix an, das die Santa Cruz Operation (SCO) 1983 auf den Intel 8086-Prozessor portierte und Xenix schließlich 1989 in SCO UNIX verzweigte.

1984 wurde eine Industriegruppe namens X/Open mit dem Ziel gegründet, kompatible offene Systeme zu bilden, dh die UNIX-Umgebung zu standardisieren. Mitte der 1980er Jahre wurden die (weitgehend grundlosen) Inkompatibilitäten zwischen konkurrierenden Unix-Versionen, im Volksmund 'die Unix-Kriege' genannt, als Hindernis für die Einführung von Unix auf einem Markt angesehen, der anfing, von Unix dominiert zu werden Microsoft Betriebssysteme von . In gewissem Maße inspiriert von der Entwicklung von Dual-Mode-Versionen (AT&T/BSD) von Unix, entwickelte die IEEE Working Group P1003 den ersten POSIX-Standard für eine Unix-basierte Anwendungsprogrammierschnittstelle, die 1988 veröffentlicht wurde.

AT&T hat UNIX System V verschiedene Funktionen hinzugefügt, wie z. B. Dateisperren, Systemverwaltung, Streams, das Remote File System und TLI. AT&T kooperierte mit Sun Microsystems und führte zwischen 1987 und 1989 unabhängig von X/Open Funktionen von Xenix, BSD, SunOS und System V in System V Release 4 (SVR4) zusammen. Diese neue Version konsolidierte alle vorherigen Funktionen in einem Paket und läutete das Ende konkurrierender Versionen ein. Es erhöhte auch die Lizenzgebühren.

1990er

1990 veröffentlichte die Open Software Foundation OSF/1, ihre Standard-Unix-Implementierung, basierend auf Mach und BSD. Die Foundation wurde 1988 gegründet und von mehreren Unix-bezogenen Unternehmen finanziert, die der Zusammenarbeit von AT&T und Sun bei SVR4 entgegenwirken wollten. Anschließend bildeten AT&T und eine weitere Gruppe von Lizenznehmern die Gruppe „UNIX International“, um OSF entgegenzuwirken. Diese Eskalation des Konflikts zwischen konkurrierenden Anbietern führte zu dem Ausdruck „Unix-Kriege“.

1991 verließ eine Gruppe von BSD-Entwicklern (Donn Seeley, Mike Karels, Bill Jolitz und Trent Hein) die University of California, um Berkeley Software Design, Inc (BSDI) zu gründen. BSDI produzierte eine voll funktionsfähige kommerzielle Version von BSD Unix für die kostengünstige und allgegenwärtige Intel-Plattform, die eine Welle des Interesses an der Verwendung kostengünstiger Hardware für Produktionscomputer auslöste. Kurz nach der Gründung verließ Bill Jolitz BSDI, um den Vertrieb von 386BSD, dem freien Software-Vorfahren von FreeBSD, fortzusetzen. OpenBSD , und NetBSD.

Bis 1993 hatten die meisten kommerziellen UNIX-Anbieter ihre kommerziellen Unix-Varianten so geändert, dass sie auf System V basierten und viele BSD-Funktionen darüber hinaus hinzugefügt wurden. Die Gründung der COSE-Initiative in diesem Jahr durch die Hauptakteure von Unix markierte das Ende der berüchtigtsten Phase der Unix-Kriege, gefolgt von der Fusion von UI und OSF im Jahr 1994. Die neue kombinierte Einheit, die den Namen OSF behielt , stellte in diesem Jahr die Arbeit an OSF/1 ein. Zu diesem Zeitpunkt war der einzige Anbieter, der es verwendete, Digital, das seine eigene Entwicklung fortsetzte und sein Produkt Anfang 1995 in Digital UNIX umbenannte.

Kurz nachdem UNIX System V Release 4 produziert wurde, verkaufte AT&T alle seine Rechte an UNIX an Novell. (Dennis Ritchie verglich dies mit der biblischen Geschichte von Esau, der sein Erstgeburtsrecht für das sprichwörtliche „Eintopfgericht“ verkaufte.) Novell entwickelte seine eigene Version, UnixWare, und verschmolz seine NetWare mit UNIX System V Release 4. Novell versuchte, damit zu kämpfen Windows NT, aber ihre Kernmärkte litten erheblich.

1993 beschloss Novell, das UNIX-Warenzeichen und die Zertifizierungsrechte an das X/Open-Konsortium zu übertragen. 1996 fusionierte X/Open mit OSF und gründete die Open Group. Verschiedene Standards der Open Group definieren nun, was ein 'UNIX'-Betriebssystem ist und was nicht, insbesondere die Single UNIX Specification nach 1998.

1995 wurden das Geschäft der Verwaltung und Unterstützung der bestehenden UNIX-Lizenzen sowie Rechte zur Weiterentwicklung der System V-Codebasis von Novell an die Santa Cruz Operation verkauft. Ob Novell auch die Urheberrechte verkauft hat, ist derzeit Gegenstand von Rechtsstreitigkeiten (siehe unten).

2000 bis heute

Im Jahr 2000 verkaufte SCO sein gesamtes UNIX-Geschäft und seine Vermögenswerte an Caldera Systems, das später seinen Namen in The SCO Group änderte. Dieser neue Spieler leitete daraufhin rechtliche Schritte gegen verschiedene Benutzer und Anbieter von Linux ein. SCO hat behauptet, dass Linux urheberrechtlich geschützten Unix-Code enthält, der jetzt der SCO Group gehört. Weitere Vorwürfe betreffen Verletzungen von Geschäftsgeheimnissen durch IBM oder Vertragsverletzungen durch ehemalige Santa Cruz-Kunden, die inzwischen auf Linux umgestiegen sind. Novell bestritt jedoch den Anspruch der SCO-Gruppe, das Urheberrecht an der UNIX-Quellbasis zu besitzen. Laut Novell sind SCO (und damit die SCO-Gruppe) effektiv Franchise-Betreiber für Novell, die auch die Kernurheberrechte, Vetorechte über zukünftige Lizenzierungsaktivitäten von SCO und 95 % der Lizenzeinnahmen behielten. Die SCO Group war damit nicht einverstanden, und der Streit hatte zu der Klage SCO gegen Novell geführt.

Im Jahr 2005 veröffentlichte Sun Microsystems den Großteil seines Solaris-Systemcodes (basierend auf UNIX System V Release 4) in einer Open Source Projekt namens OpenSolaris. Neue Sun-OS-Technologien wie das ZFS-Dateisystem werden nun zunächst als Open-Source-Code über das OpenSolaris-Projekt veröffentlicht; Ab 2006 hat es mehrere Nicht-Sun-Distributionen wie SchilliX, Belenix, Nexenta und MartuX hervorgebracht.

Der Dotcom-Crash hat auch zu einer erheblichen Konsolidierung der UNIX-Benutzer geführt. Von den vielen kommerziellen Varianten von UNIX, die in den 1980er Jahren entstanden sind, machen sich nur noch Solaris, HP-UX und AIX relativ gut auf dem Markt. Von diesen hat Solaris den größten Marktanteil und wird möglicherweise immer beliebter, da es jetzt Open Source ist.

Normen

Ab Ende der 1980er Jahre lieferte eine Standardisierungsbemühung für offene Betriebssysteme, die jetzt als POSIX bekannt ist, eine gemeinsame Basislinie für alle Betriebssysteme. IEEE basiert POSIX auf der gemeinsamen Struktur der wichtigsten konkurrierenden Varianten des Unix-Systems und veröffentlichte 1988 den ersten POSIX-Standard. Etwa zur gleichen Zeit wurde auch ein separater, aber sehr ähnlicher Standard, die Single UNIX Specification, von der Open Group erstellt. Ab 1998 begannen diese beiden Normungsgremien mit der Arbeit an der Zusammenführung der beiden Normen, die nun identisch sind.

Im Bemühen um Kompatibilität einigten sich mehrere Unix-Systemanbieter auf das ausführbare und verknüpfbare Format (ELF) von SVR4 als Standard für Binär- und Objektcodedateien. Das gemeinsame Format ermöglicht eine beträchtliche Binärkompatibilität zwischen Unix-Systemen, die auf derselben CPU-Architektur arbeiten.

Das Verzeichnislayout einiger Systeme, insbesondere unter Linux, wird durch den Filesystem Hierarchy Standard definiert. Diese Art von Standard ist jedoch umstritten, und selbst innerhalb der Linux-Community ist seine Übernahme alles andere als universell.

Komponenten

Das UNIX-System besteht aus mehreren Komponenten, die normalerweise zusammen gepackt sind. Indem – zusätzlich zum Kernel eines Betriebssystems – die Entwicklungsumgebung, Bibliotheken, Dokumente und der portable, modifizierbare Quellcode für all diese Komponenten enthalten waren, war UNIX ein in sich geschlossenes Softwaresystem. Dies war einer der Hauptgründe, warum es sich zu einem wichtigen Lehr- und Lerninstrument entwickelt hat und einen so breiten Einfluss hatte.

Die Integration dieser Komponenten machte das System nicht groß – die ursprüngliche V7-UNIX-Distribution, bestehend aus Kopien aller kompilierten Binärdateien plus dem gesamten Quellcode und der Dokumentation, belegte weniger als 10 MB und kam auf einem einzigen 9-Spur-Magtape an. Die gedruckte Dokumentation war in zwei ziemlich dünnen Büchern enthalten.

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

  • Kernel — ursprünglich in /usr/sys zu finden und aus mehreren Unterkomponenten zusammengesetzt:
    • Konf — Ursprünglich in /usr/sys/conf zu finden und aus konfigurations- und maschinenabhängigen Teilen zusammengesetzt, oft einschließlich Boot-Code
    • Entwickler — Gerätetreiber (ursprünglich /usr/sys/dev) zur Steuerung von Hardware (und manchmal Pseudo-Hardware)
    • sys — Der 'Kernel' des Betriebssystems, der die Speicherverwaltung, Systemaufrufe usw. handhabt.
    • h (oder enthalten ) – Header-Dateien, die im Allgemeinen Schlüsselschnittstellen innerhalb des Systems und wichtige systemspezifische unveränderliche Variablen definieren
  • Entwicklungsumgebung — Die meisten Implementierungen von Unix enthielten eine Entwicklungsumgebung, die ausreichte, um das System aus dem Quellcode neu zu erstellen. Die Entwicklungsumgebung beinhaltete:
    • cc — Der C-Sprach-Compiler (erstmals in V3 Unix erschienen)
    • wie — Der maschinensprachliche Assembler für die Maschine
    • ld — Der Linker zum Kombinieren von Objektdateien
    • lib — Bibliotheken. Ursprünglich 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 ( Buchen ) oder Datenbankzugriff. V7 Unix führte die erste Version der modernen 'Standard I/O'-Bibliothek ein Studio als Teil der Systembibliothek. Spätere Implementierungen haben die Anzahl und Art der Bibliotheken erheblich vervielfacht.
    • machen - Der Build-Manager (eingeführt in PWB/UNIX), entworfen, um den Build-Prozess effektiv zu automatisieren
    • enthalten — Header-Dateien für die Softwareentwicklung, die Standardschnittstellen und Systeminvarianten definieren
    • Andere (sekundäre) Sprachen – V7 Unix enthielt einen Fortran-77-Compiler, einen programmierbaren Taschenrechner und die awk-Skriptsprache, und andere Versionen und Implementierungen haben oder enthalten jetzt viele andere Sprachcompiler und Toolsets. Frühe BSD-Versionen enthielten Pascal-Programmiersprachentools, und viele moderne Unix-Systeme enthalten auch die GNU Compiler Collection sowie oder anstelle eines proprietären Compilersystems.
    • ... und eine Reihe anderer Tools, einschließlich eines Objektcode-Archivmanagers ( Mit ), Symboltabellen-Lister, Compiler-Entwicklungstools (z. jacc ), machen und Debugging-Tools.
  • Befehle — Die meisten Unix-Implementierungen unterscheiden kaum zwischen Befehlen (Programmen auf Benutzerebene) für Systembetrieb und -wartung (z. Cron ), Befehle von allgemeinem Nutzen (z. Griff ) und allgemeinere Anwendungen wie das Textformatierungs- und Satzpaket. Einige Hauptkategorien sind jedoch:
    • Sch — Die Shell, die primäre Benutzerschnittstelle unter Unix, bevor Windows-Systeme auftauchten, und das Zentrum der Befehlsumgebung. Je nach Shell-Implementierung variieren externe Programme (wie z Ausdruck ) wurden von der Shell verwendet.
    • Dienstprogramme — der Kern des Unix-Befehlssatzes, einschließlich ls , Griff , finden und viele andere. Diese Kategorie könnte untergliedert werden:
      • Systemdienstprogramme - wie zum Beispiel mkfs , fsck , und viele andere; und
      • Benutzerdienstprogramme Passwort , töten , und andere.
    • Dokumentformatierung — Unix-Systeme wurden von Anfang an für die Dokumentenvorbereitung und Satzsysteme verwendet und enthielten viele verwandte Programme wie z Nroff , trof , tbl , Gl , verweisen , und Bild . Einige Systeme enthalten auch fortgeschrittenere Pakete wie z TeX und GhostScript.
    • Grafik - Das Handlung Das Subsystem bot Einrichtungen zum Erstellen einfacher Vektordiagramme in einem geräteunabhängigen Format mit gerätespezifischen Interpretern zum Anzeigen 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 Kommunikation zwischen den Systemen, enthielten jedoch die Kommunikationsprogramme zwischen den Benutzern Post und schreiben . V7 führte das frühe Kommunikationssystem zwischen Systemen ein UUCP , und Systeme ab BSD-Version 4.1c enthielten TCP/IP-Dienstprogramme.
  Das'man' command can display a 'man page' for every command on the system, including itself.   Vergrößern Der Befehl „man“ kann eine „Manpage“ für jeden Befehl auf dem System anzeigen, einschließlich sich selbst.
  • Dokumentation — Unix war das erste Betriebssystem, das seine gesamte Dokumentation online in maschinenlesbarer Form bereitstellte. Die Dokumentation umfasste:
    • Mann — Handbuchseiten für jeden Befehl, jede Bibliothekskomponente, jeden Systemaufruf, jede Header-Datei usw.
    • Dok — Längere Dokumente, die wichtige Subsysteme wie die C-Sprache und detailliert beschreiben trof

Einfluss

Das Unix-System hatte einen großen Einfluss auf andere Betriebssysteme. Unix wurde als 'das wichtigste Betriebssystem, das Sie niemals verwenden dürfen' bezeichnet.

Nach dem Vorbild von Multics wurde es in Hochsprache geschrieben und nicht in Assembler (Assembler war notwendig, um auf frühen Computern eine akzeptable Leistung zu erzielen).

Es hatte ein drastisch vereinfachtes Dateimodell im Vergleich zu vielen modernen Betriebssystemen und behandelte alle Arten von Dateien als einfache Byte-Arrays. Die Dateisystemhierarchie enthielt Maschinendienste und Geräte (wie Drucker, Terminals oder Festplattenlaufwerke), die eine einheitliche Schnittstelle bereitstellten, jedoch auf Kosten von gelegentlich zusätzlichen Mechanismen wie ioctl und Modus-Flags, um auf Funktionen der Hardware zuzugreifen, die dies nicht taten dem einfachen 'Stream of Bytes'-Modell entsprechen. Das Betriebssystem Plan 9 hat dieses Modell noch weiter vorangetrieben und zusätzliche Mechanismen überflüssig gemacht.

Unix hat auch das ursprünglich von Multics eingeführte hierarchische Dateisystem mit willkürlich verschachtelten Unterverzeichnissen populär gemacht. Andere gängige Betriebssysteme der Ära hatten Möglichkeiten, ein Speichergerät in mehrere Verzeichnisse oder Abschnitte zu unterteilen, aber es gab eine feste Anzahl von Ebenen und oft nur eine Ebene. Die wichtigsten proprietären Betriebssysteme haben alle rekursive Unterverzeichnisfunktionen hinzugefügt, die ebenfalls nach Multics gemustert sind. Die RSTS-Programmier- / Projekthierarchie von DEC entwickelte sich zu VMS-Verzeichnissen, die Volumes von CP / M entwickelten sich zu MS-DOS 2.0+ -Unterverzeichnissen, und die MPE-Gruppenkontohierarchie von HP sowie die System 36- und OS / 400-Bibliothekssysteme von IBM wurden zu breiteren POSIX-Dateisystemen zusammengefasst.

Den Befehlsinterpreter zu einem gewöhnlichen Programm auf Benutzerebene zu machen, mit zusätzlichen Befehlen, die als separate Programme bereitgestellt werden, war eine weitere Multics-Innovation, die von Unix populär gemacht wurde. Die Unix-Shell verwendete für interaktive Befehle dieselbe Sprache wie für das Skripting (Shell-Skripte – es gab keine separate Job-Control-Sprache, wie beispielsweise IBMs JCL). Da die Shell- und OS-Befehle 'nur ein weiteres Programm' waren, konnte der Benutzer seine eigene Shell auswählen (oder sogar schreiben). Schließlich konnten neue Befehle hinzugefügt werden, ohne die Shell neu zu kompilieren. Die innovative Befehlszeilensyntax von Unix zum Erstellen von Ketten von Producer-Consumer-Prozessen (Pipelines) machte eine leistungsfähige Programmiertechnik (Coroutinen) weithin verfügbar. Viele spätere Kommandozeileninterpreter wurden mehr oder weniger von der Unix-Shell inspiriert.

Eine grundlegende vereinfachende Annahme von Unix war sein Fokus auf ASCII-Text für fast alle seine Dateiformate. In der ursprünglichen Version von Unix gab es keine „binären“ Editoren – das gesamte System wurde mithilfe von Text-Shell-Befehlsskripten konfiguriert. Der gemeinsame Nenner im E/A-System ist das Byte – im Gegensatz zu „datensatzbasierten“ Dateisystemen in anderen Computern. Der Fokus auf Text zur Darstellung von fast allem machte Unix-Pipes nützlich. Der Fokus auf Text und Bytes machte das System weitaus skalierbarer und portabler als andere Systeme. Im Laufe der Zeit haben textbasierte Anwendungen auch in Anwendungsbereichen gewonnen, wie z. B. Drucksprachen ( PostScript – nicht InterPress, ein früherer Versuch derselben Leute) und, wenn möglich, auf der Anwendungsschicht der Internetprotokolle, d. h. Telnet, FTP, SMTP, HTTP, SIP, XML usw.

Unix hat eine Syntax für reguläre Ausdrücke populär gemacht, die eine viel breitere Verwendung fand. Die Unix-Programmierschnittstelle wurde zur Basis für eine Standard-Betriebssystemschnittstelle (POSIX, siehe oben).

Die Programmiersprache C, heute allgegenwärtig in der System- und Anwendungsprogrammierung, entstand unter Unix und verbreitete sich schneller als Unix.

Frühe Unix-Entwickler waren wichtig, um die Theorie der Modularität und Wiederverwendbarkeit in die Softwareentwicklungspraxis zu bringen.

Unix stellte das TCP/IP-Netzwerkprotokoll auf relativ kostengünstigen Computern zur Verfügung, was dazu beitrug Internet Explosion der weltweiten Echtzeit-Konnektivität. Dadurch wurden auch zahlreiche Sicherheitslücken in seinen Netzwerkimplementierungen aufgedeckt, die die Grundlage für Implementierungen auf vielen anderen Plattformen bildeten.

Die Unix-Politik der umfassenden Online-Dokumentation und (seit vielen Jahren) des direkten Zugriffs auf den gesamten Systemquellcode ließ die Erwartungen der Programmierer steigen und trug zur Open-Source-Bewegung bei.

Im Laufe der Zeit entwickelten die führenden Unix-Entwickler (und Programme, die darauf liefen) eine Reihe kultureller Normen für die Entwicklung von Software, Normen, die so wichtig und einflussreich wurden wie die Technologie von Unix selbst; dies wurde als Unix-Philosophie bezeichnet.

2038

Unix speichert Zeitwerte als Anzahl von Sekunden ab Mitternacht am 1. Januar 1970 (die „Unix-Epoche“) in Variablen des Typs time_t, die historisch als „vorzeichenbehaftete 32-Bit-Ganzzahl“ definiert wurden. Am 19. Januar 2038 wird die aktuelle Zeit von einer Null gefolgt von 31 Einsen auf eine Eins gefolgt von 31 Nullen umgestellt, wodurch die Zeit je nach Implementierung auf das Jahr 1901 oder 1970 zurückgesetzt wird. Da viele Anwendungen OS-Bibliotheksroutinen für Datumsberechnungen verwenden, könnten die Auswirkungen davon viel früher als 2038 zu spüren sein; Beispielsweise können 30-jährige Hypotheken ab dem Jahr 2008 falsch berechnet werden.

Da Zeiten vor 1970 selten in Unix-Zeit dargestellt werden, wäre eine mögliche Lösung, die mit bestehenden Binärformaten kompatibel ist, die Neudefinition von time_t als 'vorzeichenlose 32-Bit-Ganzzahl'. Allerdings verschiebt ein solcher Kludge das Problem lediglich auf den 7. Februar 2106 und könnte Fehler in Software einführen, die zum Vergleichen von Unterschieden zwischen zwei Zeitreihen benötigt wird.

Einige Unix-Versionen haben sich bereits damit befasst. Beispielsweise ist time_t in Solaris auf 64-Bit-Systemen 64 Bit lang, was bedeutet, dass das Betriebssystem selbst und 64-Bit-Anwendungen Daten für etwa 292 Milliarden Jahre (ein Vielfaches des Alters des Universums) korrekt verarbeiten. Vorhandene 32-Bit-Anwendungen, die einen 32-Bit-time_t verwenden, funktionieren weiterhin auf 64-Bit-Solaris-Systemen, sind aber immer noch anfällig für das 2038-Problem.

Kostenlose Unix-ähnliche Betriebssysteme

  Linux ist ein modernes Unix-ähnliches System   Vergrößern Linux ist ein modernes Unix-ähnliches System

1983, Richard Stallmann kündigte das GNU-Projekt an, ein ehrgeiziges Unterfangen, ein Unix-ähnliches System mit freier Software zu schaffen; 'kostenlos' insofern, als jeder, der eine Kopie erhalten hat, es frei verwenden, studieren, modifizieren und weiterverteilen kann. Das Ziel von GNU wurde 1992 erreicht. Sein eigenes Kernel-Entwicklungsprojekt, GNU Hurd, hatte keinen funktionierenden Kernel produziert, aber ein kompatibler Kernel namens Linux wurde 1992 als freie Software unter der GNU General Public License veröffentlicht. Die Kombination der beiden wird häufig einfach als „Linux“ bezeichnet, obwohl die Free Software Foundation und einige Linux-Distributionen wie Debian GNU/Linux den kombinierten Begriff GNU/Linux verwenden. Die Arbeit an GNU Hurd geht weiter, wenn auch sehr langsam.

Zusätzlich zu ihrer Verwendung im Linux-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 – eine zentrale Rolle in anderen gespielt auch freie Unix-Systeme.

Linux-Distributionen, die Linux und große Sammlungen kompatibler Software umfassen, sind sowohl bei Bastlern als auch in Unternehmen beliebt geworden. Beliebte Distributionen sind Red Hat Enterprise Linux, SUSE Linux, Mandriva Linux, Fedora-Kern , Ubuntu , Debian GNU/Linux und Gentoo.

Ein freies Derivat von BSD Unix, 386BSD, wurde ebenfalls 1992 veröffentlicht und führte zu den NetBSD- und FreeBSD-Projekten. Mit der Beilegung einer Klage, die UNIX Systems Laboratories 1994 gegen die University of California und Berkeley Software Design Inc. ( USL gegen BSDi) eingereicht hatte, wurde klargestellt, dass Berkeley das Recht hatte, BSD Unix zu vertreiben – kostenlos, wenn es dies wünschte . Seitdem wurde BSD Unix in verschiedene Richtungen entwickelt, einschließlich der OpenBSD und DragonFly BSD-Varianten.

Linux und die BSD-Verwandten besetzen jetzt schnell den Markt, der traditionell von proprietären UNIX-Betriebssystemen besetzt war, und expandieren in neue Märkte wie Desktop- und mobile und eingebettete Geräte für Verbraucher. Ein Maß für diesen Erfolg kann gesehen werden, als Apple Computer nach einer neuen Grundlage für sein Macintosh-Betriebssystem suchte: Es entschied sich für NEXTSTEP, ein von NeXT entwickeltes Betriebssystem mit einem frei verteilbaren Kernbetriebssystem, das nach der Übernahme durch Apple in Darwin umbenannt wurde. Es basierte auf der BSD-Familie und dem Mach-Kernel. Der Einsatz von Darwin BSD Unix in Mac OS X macht es laut Aussage eines Apple-Mitarbeiters auf einer USENIX-Konferenz zum am weitesten verbreiteten Unix-basierten System auf dem Markt für Desktop-Computer. Aufgrund der Modularität des Unix-Designs ist das Teilen von Bits und Stücken relativ üblich; Folglich enthalten die meisten oder alle Unix- und Unix-ähnlichen Systeme zumindest etwas BSD-Code, und moderne BSDs enthalten normalerweise auch einige GNU-Dienstprogramme in ihrer Distribution, sodass Apples Kombination von Teilen von NeXT und FreeBSD mit Mach und einigen GNU-Dienstprogrammen Präzedenzfälle hat.

Im Jahr 2005 veröffentlichte Sun Microsystems den Großteil des Quellcodes für das Solaris-Betriebssystem, eine System-V-Variante, unter dem Namen OpenSolaris und war damit das erste aktiv entwickelte kommerzielle Unix-System überhaupt Open Source (Einige Jahre zuvor hatte Caldera viele der älteren Unix-Systeme unter einer Bildungs- und später einer BSD-Lizenz veröffentlicht. Infolgedessen ist ein großer Teil des ehemals proprietären AT&T/USL-Codes jetzt frei verfügbar.

Branding

Im Oktober 1993 übertrug Novell, das Unternehmen, das damals die Rechte an der Unix-System-V-Quelle besaß, die Marken von Unix an die X/Open Company (jetzt The Open Group) und verkaufte 1995 die damit verbundenen Geschäftsaktivitäten an Santa Cruz-Operation. Ob Novell auch die Urheberrechte an der eigentlichen Software verkauft hat, ist derzeit Gegenstand eines Rechtsstreits in einem Bundesverfahren, SCO gegen Novell. Der UNIX-Anbieter SCO Group Inc. beschuldigte Novell der Titelverleumdung.

Der jetzige Inhaber der Marke UNIX ist The Open Group, ein Konsortium für Industriestandards. Nur Systeme, die vollständig mit der Single UNIX Specification kompatibel und dafür zertifiziert sind, gelten als „UNIX“ (andere werden als „Unix-systemähnlich“ oder „Unix-ähnlich“ bezeichnet). Der Begriff UNIX ist kein Akronym, sondern folgt der frühen Konvention, Computersysteme in Großbuchstaben zu benennen, wie ENIAC und MISTIC.

Per Erlass von The Open Group bezieht sich der Begriff „UNIX“ eher auf eine Klasse von Betriebssystemen als auf eine spezifische Implementierung eines Betriebssystems; Diejenigen Betriebssysteme, die die Single UNIX-Spezifikation von The Open Group erfüllen, sollten heute in der Lage sein, die Warenzeichen UNIX 98 oder UNIX 03 zu tragen, nachdem der Anbieter des Betriebssystems eine Gebühr an The Open Group gezahlt hat. Systeme, die zur Nutzung der Marke UNIX® lizenziert sind, umfassen AIX, HP-UX, IRIX, Solaris, Tru64, A/UX und einen Teil von z/OS. Apple Computer hat erklärt, dass sie Mac OS X 10.5 und Mac OS 10.5 Server bei The Open Group zur Zertifizierung als UNIX 03-System einreichen werden.

In der Praxis wird der Begriff, insbesondere wenn er als „Un*x“, „*NIX“ oder „*N?X“ geschrieben wird, auf eine Reihe anderer POSIX-basierter Mehrbenutzersysteme wie GNU/Linux, Mac OS X und FreeBSD, das kein UNIX-Branding anstrebt, weil die Lizenzgebühren für ein Produkt, das an Verbraucher vermarktet wird oder frei über das Internet verfügbar ist, zu teuer wären; dies würde bedeuten, dass 'Unix' zu einer Bezeichnung für eine Vielzahl von Produkten geworden ist, ähnlich wie ein generisches Warenzeichen. Um dies zu vermeiden, fordert The Open Group, dass „UNIX“ immer als Adjektiv gefolgt von einem Oberbegriff wie „System“ verwendet wird.

Der Begriff „Unix“ wird auch verwendet und war eigentlich die ursprüngliche Großschreibung, aber der Name UNIX blieb da in den Worten hängen Dennis Ritchie „Als wir das Original-Unix-Papier auf dem dritten Operating Systems Symposium der American Association for Computing Machinery vorstellten, hatten wir uns gerade einen neuen Setzer zugelegt und waren berauscht davon, Kapitälchen produzieren zu können“ (zitiert aus der Jargon-Datei, Version 4.3.3 , 20. September 2002). Darüber hinaus sollte beachtet werden, dass viele Vorgänger und Zeitgenossen des Betriebssystems nur Großbuchstaben verwendeten, da viele Computerterminals der damaligen Zeit keine Kleinbuchstaben erzeugen konnten, so dass viele Menschen den Namen aus Gewohnheit in Großbuchstaben schrieben .

Mehrere Pluralformen von Unix werden verwendet, um sich auf mehrere Marken von Unix und Unix-ähnlichen Systemen zu beziehen. Am gebräuchlichsten ist die herkömmliche ' Unixe ', aber die Hackerkultur, die Unix hervorgebracht hat, hat eine Vorliebe für den spielerischen Umgang mit Sprache, und ' Vereine ' (Behandeln von Unix als Latein Wort) ist ebenfalls beliebt. Die angelsächsische Pluralform 'Unixen' ist nicht üblich, obwohl gelegentlich gesehen.

UNIX ist auch ein geschützter Name für eine Teppichmarke. Das US-Markenrecht erlaubt jedoch doppelte Namen, wenn die Produkte, wie in diesem Fall, leicht unterscheidbar sind.

Allgemeine Unix-Befehle

Zu den weit verbreiteten Unix-Befehlen gehören:

  • Erstellung und Navigation von Verzeichnissen und Dateien: ls cd pwd mkdir rm rmdir cp find touch
  • Anzeigen und Bearbeiten von Dateien: more less ed vi emacs head tail
  • Textverarbeitung: echo cat grep sort uniq sed awk cut tr split printf
  • Dateivergleich: comm cmp diff patch
  • Verschiedene Schalenwerkzeuge: yes test xargs
  • Systemverwaltung: chmod chown ps su w who
  • Kommunikation: mail telnet ftp finger ssh