Unix
UNIX ist ein Mehrbenutzer-Betriebssystem. Es wurde Anfang der 1970er Jahre von Bell Laboratories zur Unterstützung der Software-Entwicklung entwickelt. Unix bezeichnet im allgemeinen Sprachgebrauch Betriebssysteme, die entweder ihren Ursprung im Unix-System von AT&T (ursprünglich Bell Laboratories) der 1970er haben oder dessen Konzepte implementieren.
Da UNIX ein eingetragenes Markenzeichen der Open Group ist, dürfen nur zertifizierte Systeme den Namen UNIX führen. Dennoch ordnet man auch Betriebssysteme wie Linux der Unix-Familie zu. In der Fachliteratur verwendet man üblicherweise Unix als Bezeichnung für unix-artige Systeme, während man UNIX (in Großbuchstaben oder Kapitälchen) dazu nutzt, zertifizierte Systeme zu kennzeichnen.
Zu all diesen Systemen, die in Unix-Derivate und Unix-artige Betriebssysteme eingeteilt werden können, zählen zum Beispiel die BSD-Systeme, Mac OS X, HP-UX, AIX, IRIX und Solaris. Einige andere Systeme wie GNU/Linux oder QNX sind im historischen Sinne keine Unix-Derivate, da sie nicht auf dem ursprünglichen Unix-Quelltext basieren, sondern separat entwickelt wurden. BSD basierte zwar ursprünglich auf Bell Labs-Quelltexten, diese wurden jedoch bis Mitte der 1990er vollständig entfernt.
Der Unix-Kernel hat über Gerätetreiber allein Zugriff auf die Hardware und verwaltet Prozesse. Daneben stellt er das Dateisystem zur Verfügung, in modernen Varianten zusätzlich den Netzwerk-Protokollstapel. Systemaufrufe aus Prozessen dienen zum Starten (Systemrufe fork, exec) und Steuern von weiteren Prozessen sowie zur Kommunikation mit dem Dateisystem. Zugriffe auf die Gerätetreiber werden auf Zugriffe auf spezielle Dateien im Dateisystem abgebildet. Dadurch werden Dateien und Geräte aus Sicht der Prozesse und damit Anwendungsprogramme soweit wie möglich vereinheitlicht (Systemrufe open, read, write, ...). Eine Vielzahl von Programmen inklusive eines C-Entwicklungssystems und eines Textsatzprogrammes (troff) vervollständigen das System.
Das Dateisystem ist als hierarchisches Verzeichnis mit beliebigen Unterverzeichnissen organisiert, ein damals neues Konzept, das heute überall selbstverständlich ist. Wurzelverzeichnis (Root-Verzeichnis) dieser Hierarchie ist das Verzeichnis "/". Eins der hervorragenden Grundkonzepte von UNIX ist, auch Disketten- und CD-Laufwerke, weitere Festplatten des eigenen oder fremder Rechner, Terminals, Bandgeräte und andere "special files" im Dateisystem abzubilden. "Alles ist eine Datei" ist ein Grundprinzip von Unix. Dieser verallgemeinerte Dateibegriff gehört zum Wesen von UNIX und ermöglicht eine einfache, einheitliche Schnittstelle für die verschiedensten Anwendungen. In manchen UNIX-Derivaten werden selbst Prozesse und deren Eigenschaften auf Dateien abgebildet (proc-Filesystem).
Der Kommandointerpreter, die Shell, – unter Unix ein normaler Prozess ohne Privilegien – sowie zahlreiche Standard-Kommandos ermöglichen dem Anwender eine unerreicht einfache Ein-/Ausgabeumleitung in diese Dateien, und über Pipes die Kommunikation zwischen Prozessen.
Eine große Sammlung von einfachen Kommandos, der "UNIX-Werkzeugkasten", kann so mit Hilfe der Programmiermöglichkeiten des Kommandointerpreters kombiniert werden und komplizierte Aufgaben übernehmen. Durch die Kombinierbarkeit der größtenteils standardisierten Werkzeuge wird häufig vermieden, dass man für "Einmalaufgaben" oder einfachere Administrationsarbeiten jeweils spezialisierte Programme schreiben muss, wie dies in anderen Betriebssystem häufig der Fall ist.
Zu den wichtigen Merkmalen eines typischen Unixsystems gehören: hohe Stabilität, Multiuser, Multitasking (mittlerweile auch Multithreading), Speicherschutz und virtueller Speicher (zuerst implementiert in der BSD-Linie), TCP/IP-Netzwerkunterstützung (ebenfalls zuerst in der BSD-Linie), hervorragende Scriptingeigenschaften, eine voll ausgebaute Shell und eine Vielzahl von Werkzeugen (siehe Unix-Kommandos) und Daemonen. Betriebssysteme von Unix-Workstations sowie Unix-Derivate enthalten in der Regel eine grafische Benutzeroberfläche basierend auf X11.
Unix ist historisch eng mit der Programmiersprache C verknüpft – beide verhalfen sich gegenseitig zum Durchbruch, und so ist C auch heute noch die bevorzugte Sprache unter Unixsystemen.