Unix

KAPITEL 03 · BETRIEBSSYSTEME

Unix

Das Betriebssystem, das die Welt veränderte – von den Bell Labs 1969 bis zu modernen BSD-Varianten, macOS und Enterprise-Systemen wie Solaris und AIX. Die Philosophie, Architektur und Varianten von Unix im Detail.

Seit 1969 BSD & System V Unix-Philosophie Unix vs. Linux

1. Was ist Unix?

Definition

Unix ist ein Multiuser-, Multitasking-Betriebssystem, das 1969 in den Bell Labs von AT&T entwickelt wurde. Es gilt als eines der einflussreichsten Betriebssysteme der Geschichte und bildet die Grundlage für Linux, macOS, BSD und zahlreiche Enterprise-Systeme.

Der Name „Unix" ist ein Wortspiel auf „Multics" (Multiplexed Information and Computing Service) – ein früheres Projekt, an dem Ken Thompson und Dennis Ritchie beteiligt waren. Unix wurde als einfachere, elegantere Alternative zu Multics konzipiert.

Heute bezeichnet „Unix" sowohl das ursprüngliche Betriebssystem als auch die Familie unixoider Betriebssysteme, die dessen Architektur und Philosophie übernommen haben. Der Begriff „UNIX®" ist eine eingetragene Marke der Open Group – nur zertifizierte Systeme dürfen offiziell „UNIX" heißen (z.B. macOS, AIX, Solaris).

Unix vs. Unixoid vs. Linux

  • UNIX® (zertifiziert): macOS, AIX, Solaris, HP-UX – offiziell von der Open Group zertifiziert
  • Unixoid (Unix-like): Linux, FreeBSD, OpenBSD – verhalten sich wie Unix, sind aber nicht zertifiziert
  • Linux: Unixoider Kernel, erstellt von Linus Torvalds 1991 – kein Unix-Code, aber Unix-kompatibel

2. Die Geschichte von Unix

Von einem Nebenprojekt in den Bell Labs zum Fundament der modernen Computerwelt.

1969

Die Geburt von Unix

Ken Thompson schreibt die erste Version von Unix auf einer PDP-7 in den Bell Labs. Das System ist als einfaches, elegantes OS für Programmierer gedacht.

1971

Erste Unix-Manuals

Das erste Unix Programmer's Manual wird veröffentlicht. Unix wird auf eine PDP-11 portiert und intern bei AT&T eingesetzt.

1973

Unix in C umgeschrieben

Dennis Ritchie und Ken Thompson schreiben Unix in der Programmiersprache C um – revolutionär, da Betriebssysteme bisher in Assembler geschrieben wurden. Dies ermöglicht Portabilität auf andere Hardware.

1975

Unix an Universitäten

AT&T lizenziert Unix an Universitäten (da AT&T als Telefonmonopol keine Computer verkaufen darf). Die UC Berkeley beginnt mit der Entwicklung von BSD Unix.

1978

BSD Unix

Die University of California, Berkeley veröffentlicht 1BSD – den Beginn der BSD-Linie, die TCP/IP, CSH und viele weitere Innovationen hervorbringt.

1983

System V

AT&T veröffentlicht System V (SysV) als kommerzielle Unix-Version. Die „Unix Wars" zwischen BSD und SysV beginnen.

1988

POSIX-Standard

IEEE veröffentlicht POSIX (Portable Operating System Interface) – ein Standard, der die Kompatibilität zwischen Unix-Systemen sicherstellt.

1991

Linux entsteht

Linus Torvalds veröffentlicht den Linux-Kernel – ein unixoides Betriebssystem von Grund auf neu geschrieben. Beginn einer neuen Ära.

2001

macOS (Mac OS X)

Apple veröffentlicht Mac OS X – basiert auf Darwin (BSD-Kern) und erhält die offizielle UNIX®-Zertifizierung.

3. Die Unix-Philosophie

Die Unix-Philosophie ist ein Satz von Prinzipien, die das Design und die Entwicklung von Unix und unixoiden Systemen leiten. Sie beeinflusst bis heute Software-Entwicklung weltweit.

Do One Thing and Do It Well

Jedes Programm soll genau eine Aufgabe erledigen – und diese so gut wie möglich. Keine „Schweizer-Taschenmesser"-Programme.

Pipes & Filter

Programme kommunizieren über Standard-Ein- und Ausgabe. Pipes (|) verbinden Programme zu mächtigen Werkzeugketten.

cat /var/log/syslog | grep "error" | sort | uniq -c

Everything is a File

Alles ist eine Datei – Hardware, Sockets, Prozesse. Dies vereinheitlicht den Zugriff auf alle Ressourcen.

Text als universelles Interface

Programme arbeiten mit Textdaten (Plain Text). Das macht sie kombinierbar, lesbar und debuggbar.

Shell als Programmierumgebung

Die Shell ist nicht nur ein Kommando-Interpreter, sondern eine vollständige Skriptsprache für Automatisierung.

Multiuser & Sicherheit

Unix wurde von Anfang an als Multiuser-System entworfen – mit strenger Trennung von Benutzerrechten und Prozessen.

4. Unix-Architektur

Unix folgt einer klaren Schichtenarchitektur. Jede Schicht hat eine definierte Aufgabe und kommuniziert nur mit den benachbarten Schichten.

Schichtenmodell von Unix

Anwendungsschicht (User Space)

Web-Server, Datenbanken, Editoren, Compiler, Benutzerprogramme

Shell & Systembibliotheken

Bash, Zsh, libc, POSIX-API – Schnittstelle zwischen User und Kernel

Kernel

Prozessverwaltung, Speicherverwaltung, Dateisystem, Netzwerk-Stack, Treiber

Hardware

CPU, RAM, Festplatten, Netzwerkkarten, Peripherie

Kernkomponenten des Unix-Kernels

  • Prozess-Scheduler: Verwaltet CPU-Zeit für alle laufenden Prozesse
  • Speicherverwaltung: Virtueller Speicher, Paging, Swap
  • VFS (Virtual File System): Abstraktionsschicht für verschiedene Dateisysteme
  • Netzwerk-Stack: TCP/IP-Implementierung
  • System Calls: Definierte Schnittstelle zwischen User Space und Kernel (z.B. open(), read(), fork())

5. Unix-Varianten und Derivate

Die Unix-Familie hat sich in zwei Hauptlinien verzweigt: BSD (Berkeley Software Distribution) und System V (AT&T). Daraus entstanden zahlreiche Varianten.

FreeBSD

Performance & Zuverlässigkeit

Die populärste BSD-Variante. Bekannt für hohe Performance, Stabilität und fortschrittliches Netzwerk- und Speichermanagement.

  • BSD-Lizenz (sehr frei)
  • ZFS-Dateisystem nativ
  • Jails (Container-Technologie)
  • Ports/Pkg-Paketverwaltung
  • Basis für macOS (Darwin)
Einsatzgebiete: Server, Netzwerkinfrastruktur, Netflix CDN, PlayStation OS, macOS-Basis

OpenBSD

Sicherheit durch Design

Fokussiert auf Sicherheit und Korrektheit. Führt regelmäßige Code-Audits durch. Entwickelt OpenSSH, OpenSMTPD und PF.

  • Proaktive Code-Audits
  • OpenSSH (weltweiter Standard)
  • PF Firewall
  • W^X, ASLR, pledge/unveil
  • Nur 2 Remote-Exploits in Jahrzehnten
Einsatzgebiete: Firewalls, Router, Sicherheitskritische Server, Bastion Hosts

NetBSD

Portabilität: "Of course it runs NetBSD"

Das portabelste Betriebssystem der Welt. Läuft auf mehr Hardware-Plattformen als jedes andere OS – von Supercomputern bis zu Toastern.

  • 50+ Hardware-Plattformen
  • Sauberer, portabler Code
  • pkgsrc (portable Paketverwaltung)
  • Ideal für Embedded Systems
  • Grundlage für Forschung
Einsatzgebiete: Embedded Systems, Forschung, NASA, portabel auf fast jeder CPU-Architektur

Oracle Solaris

Enterprise Unix von Sun/Oracle

Ursprünglich von Sun Microsystems entwickelt. Pionier bei ZFS, DTrace, Zones und SMF. Jetzt von Oracle weitergeführt.

  • ZFS (wurde hier erfunden)
  • DTrace (dynamische Analyse)
  • Solaris Zones (Container)
  • SMF (Service Management)
  • UNIX®-zertifiziert
Einsatzgebiete: Enterprise-Server, Datenbanken, Finanzindustrie, SPARC-Systeme

IBM AIX

IBMs Enterprise Unix

IBMs proprietäres Unix für Power Systems. Eines der stabilsten und leistungsfähigsten kommerziellen Unix-Systeme.

  • LPAR (Logische Partitionierung)
  • WPAR (Workload Partitions)
  • JFS2-Dateisystem
  • Live Partition Mobility
  • UNIX®-zertifiziert
Einsatzgebiete: SAP-Systeme, Banken, Versicherungen, Mainframe-Umgebungen

HP-UX

Hewlett-Packard Unix

HPs proprietäres Unix für PA-RISC und Itanium. Stark im Enterprise-Umfeld, aber heute im Rückgang.

  • vPar/nPar (Partitionierung)
  • VxFS (Journaling File System)
  • Serviceguard (HA-Cluster)
  • Itanium-Unterstützung
  • UNIX®-zertifiziert
Einsatzgebiete: Legacy-Enterprise-Systeme, SAP, Oracle-Datenbanken (Rückläufig)

macOS

Apples zertifiziertes UNIX®

Basierend auf Darwin (BSD-Kern + XNU). Das meistgenutzte zertifizierte UNIX® der Welt – durch die Verbreitung von Macs.

  • Darwin-Kern (XNU + BSD)
  • APFS-Dateisystem
  • Zsh als Standard-Shell
  • Homebrew-Paketverwaltung
  • UNIX®-zertifiziert (Single UNIX Spec)
Einsatzgebiete: Software-Entwicklung, Design, Wissenschaft, alltäglicher Desktop-Einsatz

6. Unix vs. Linux – Die Unterschiede

Linux wird oft als „Unix" bezeichnet, ist aber technisch gesehen ein unixoides System. Hier die wichtigsten Unterschiede:

Aspekt Unix (klassisch) Linux
Herkunft AT&T Bell Labs (1969) Linus Torvalds (1991)
Code-Basis Original AT&T-Code Von Grund auf neu geschrieben
Lizenz Proprietär (kommerziell) GPL (Open Source)
Kosten Lizenzkosten (oft hoch) Kostenlos (Support optional)
Kernel Monolithisch (variiert) Monolithisch mit Modulen
Zertifizierung UNIX® (The Open Group) Nicht zertifiziert (POSIX-kompatibel)
Hardware Oft an Hersteller-Hardware gebunden Läuft auf fast jeder Hardware
Dateisysteme UFS, JFS, VxFS, ZFS (Solaris) ext4, XFS, Btrfs, ZFS (via FUSE)
Shell sh, ksh, csh bash, zsh, fish
Init-System init (SysV), SMF (Solaris) systemd, SysVinit, OpenRC
Paketverwaltung Herstellerspezifisch apt, dnf, pacman, zypper
Verbreitung Enterprise, Mainframe, Nischen Server (90%+), Cloud, Desktop, Mobile

Warum hat Linux Unix größtenteils verdrängt?

  • Kostenlos: Keine Lizenzkosten – entscheidend für Cloud und Startups
  • Open Source: Community-Entwicklung, schnelle Innovation
  • Hardware-Unabhängig: Läuft auf x86, ARM, RISC-V, Power, s390x
  • Cloud-Native: AWS, Azure, GCP basieren auf Linux
  • Container-Revolution: Docker und Kubernetes sind Linux-native

Unix existiert weiterhin in Nischen: macOS (Desktop), AIX (SAP/Banken), Solaris (Legacy-Enterprise), FreeBSD (Netzwerk/Storage).

7. Unix-Standards und Spezifikationen

Standard Herausgeber Beschreibung
POSIX (IEEE 1003.1) IEEE / The Open Group Standard für Betriebssystem-Schnittstellen (APIs, Shell, Utilities). Garantiert Portabilität zwischen unixoiden Systemen.
Single UNIX Specification The Open Group Erweitert POSIX. Nur Systeme, die diese bestehen, dürfen „UNIX®" heißen.
FHS (Filesystem Hierarchy Standard) Linux Foundation Standardisiert die Verzeichnisstruktur (/etc, /var, /usr, /home, etc.)
LSB (Linux Standard Base) Linux Foundation Standard für Linux-Distributionen (Bibliotheken, Init-System, Paketformate)

8. Unix-Dateisystem-Hierarchie (FHS)

Unix verwendet eine einheitliche, baumartige Verzeichnisstruktur. Alles beginnt bei / (Root).

FHS / # Root-Verzeichnis ├── bin/ # Wichtige Benutzerbefehle (ls, cp, mv) ├── sbin/ # Systembefehle (init, fdisk, iptables) ├── etc/ # Konfigurationsdateien │ ├── passwd # Benutzerkonten │ ├── shadow # Passwort-Hashes │ ├── group # Gruppen │ ├── hosts # Hostname-Auflösung │ └── fstab # Dateisystem-Mounts ├── home/ # Benutzerverzeichnisse │ └── username/ # Persönliches Verzeichnis ├── root/ # Home-Verzeichnis des Root-Users ├── var/ # Variable Daten (Logs, Spool, Mail) │ ├── log/ # System-Logs │ └── mail/ # E-Mail-Postfächer ├── tmp/ # Temporäre Dateien ├── usr/ # Benutzerprogramme & Bibliotheken │ ├── bin/ # Nicht-essenzielle Befehle │ ├── lib/ # Bibliotheken │ ├── local/ # Lokal installierte Software │ └── share/ # Geteilte Daten (man, doc) ├── opt/ # Optionale Zusatzsoftware ├── dev/ # Gerätedateien (alles ist eine Datei!) ├── proc/ # Prozessinformationen (virtuell) ├── sys/ # Kernel-Informationen (virtuell) ├── mnt/ # Mount-Punkte für externe Medien └── lib/ # Systembibliotheken

„Alles ist eine Datei"

Das Unix-Konzept „Everything is a file" bedeutet, dass nicht nur Dokumente, sondern auch Hardware-Geräte, Netzwerk-Sockets und Prozesse über das Dateisystem angesprochen werden. Beispiele:

  • /dev/sda – Erste Festplatte
  • /dev/null – Das „Nichts" (verschluckt alle Daten)
  • /proc/cpuinfo – CPU-Informationen
  • /dev/random – Zufallszahlengenerator

9. Shell & Wichtige Befehle

Die Shell ist die Kommandozeilen-Schnittstelle von Unix. Sie interpretiert Benutzereingaben und führt Programme aus.

Shell Entwickler Jahr Besonderheit
sh (Bourne Shell) Stephen Bourne 1979 Die Original-Unix-Shell, POSIX-Standard
bash Brian Fox (GNU) 1989 Bourne Again Shell, Standard auf Linux
zsh Paul Falstad 1990 Standard auf macOS, erweiterbar
ksh David Korn (AT&T) 1983 Korn Shell, Standard auf AIX/Solaris
csh / tcsh Bill Joy (BSD) 1978 C-ähnliche Syntax, BSD-Standard
fish Axel Liljencrantz 2005 Benutzerfreundlich, Autovervollständigung

Die wichtigsten Unix-Befehle

SHELL # Dateiverwaltung $ ls -la # Alle Dateien auflisten (detailliert) $ cd /etc # Verzeichnis wechseln $ pwd # Aktuelles Verzeichnis anzeigen $ cp datei.txt kopie.txt # Datei kopieren $ mv alt.txt neu.txt # Datei verschieben/umbenennen $ rm datei.txt # Datei löschen $ mkdir verzeichnis # Verzeichnis erstellen $ chmod 755 script.sh # Berechtigungen setzen $ chown user:group datei # Besitzer ändern # Textverarbeitung (Unix-Philosophie: Pipes!) $ cat datei.txt # Dateiinhalt ausgeben $ grep "Suchbegriff" datei # Nach Text suchen $ awk '{print $1}' datei # Erste Spalte extrahieren $ sed 's/alt/neu/g' datei # Text ersetzen $ sort datei | uniq -c # Sortieren und zählen $ wc -l datei.txt # Zeilen zählen # Systeminformationen $ uname -a # System- und Kernel-Info $ whoami # Aktueller Benutzer $ df -h # Festplattennutzung $ top # Prozess-Übersicht (live) $ ps aux # Alle laufenden Prozesse $ kill -9 PID # Prozess beenden # Netzwerk $ ping hostname # Erreichbarkeit testen $ ifconfig / ip addr # Netzwerkkonfiguration $ netstat -tulpn # Offene Ports anzeigen $ ssh user@server # Remote-Verbindung

Die Macht der Pipes

Das Pipe-Zeichen | ist das Herzstück der Unix-Philosophie. Es verbindet Programme:

# Beispiel: Die 10 häufigsten Wörter in einer Datei finden $ cat text.txt | tr ' ' '\n' | sort | uniq -c | sort -rn | head -10 # Beispiel: Alle laufenden Apache-Prozesse finden $ ps aux | grep apache | grep -v grep | wc -l

10. FAQ – Häufige Fragen & Antworten

Häufige Fragen zu Unix

Ist Linux ein Unix?

Technisch nein, praktisch ja. Linux ist kein zertifiziertes UNIX® und enthält keinen Original-Unix-Code. Es wurde von Linus Torvalds von Grund auf neu geschrieben. Aber:

  • Linux implementiert die POSIX-Spezifikation
  • Linux verhält sich wie Unix (unixoid)
  • Fast alle Unix-Tools und -Konzepte funktionieren unter Linux
  • Im Alltag werden die Begriffe oft synonym verwendet
Was bedeutet „Everything is a File"?

In Unix wird alles als Datei repräsentiert – auch Hardware und abstrakte Konzepte:

  • /dev/sda – Festplatte als Datei
  • /dev/null – „Schwarzes Loch" (verwirft alle Daten)
  • /proc/cpuinfo – CPU-Informationen als lesbare Datei
  • /dev/random – Zufallszahlen als Datei
  • /proc/[pid] – Prozessinformationen als Verzeichnis

Dadurch können Standard-Tools wie cat, grep und cp auf alles angewendet werden – egal ob Textdatei, Hardware oder Prozess.

Was ist der Unterschied zwischen BSD und System V?

Die zwei Hauptlinien der Unix-Entwicklung:

  • BSD (Berkeley Software Distribution): Entwickelt an der UC Berkeley. Brachte TCP/IP, C-Shell, vi-Editor. Fokus auf Innovation und Freiheit. Heute: FreeBSD, OpenBSD, NetBSD.
  • System V (SysV): Kommerzielle Version von AT&T. Brachte SysVinit, vi-Verbesserungen. Fokus auf Standardisierung und Enterprise. Heute: AIX, Solaris, HP-UX.

Moderne Systeme (einschließlich Linux) kombinieren Elemente aus beiden Linien.

Warum ist macOS ein Unix?

macOS basiert auf Darwin, einem Open-Source-Betriebssystem, das den XNU-Kernel (eine Kombination aus Mach-Mikrokernel und BSD-Komponenten) verwendet.

Apple hat macOS offiziell nach der Single UNIX Specification zertifizieren lassen. Damit ist macOS ein offizielles UNIX® – und durch die Verbreitung von Macs das meistgenutzte zertifizierte Unix der Welt.

Wird Unix heute noch eingesetzt?

Ja, in wichtigen Bereichen:

  • macOS: Millionen von Desktop-Nutzern (zertifiziertes UNIX®)
  • AIX: SAP-Systeme, Banken, Versicherungen auf IBM Power Systems
  • Solaris: Legacy-Enterprise-Systeme, Oracle-Datenbanken
  • FreeBSD: Netflix CDN, Netzwerkinfrastruktur, Storage (ZFS)
  • OpenBSD: Firewalls, sicherheitskritische Systeme

Allerdings hat Linux den Großteil des Unix-Marktes übernommen – besonders in Cloud, Web und Container-Umgebungen.

Was ist POSIX und warum ist es wichtig?

POSIX (Portable Operating System Interface) ist ein IEEE-Standard, der definiert:

  • Systemaufrufe (open, read, write, fork, etc.)
  • Shell-Syntax und Standard-Utilities
  • Thread-APIs (Pthreads)
  • Reguläre Ausdrücke
  • Dateisystem-Verhalten

POSIX sorgt dafür, dass Software, die für ein unixoides System geschrieben wurde, auf anderen unixoiden Systemen mit minimalen Änderungen läuft. Ohne POSIX wäre die Portabilität zwischen Unix, Linux und macOS nicht möglich.

Was sind Unix „Pipes" und warum sind sie so mächtig?

Eine Pipe (|) leitet die Ausgabe eines Programms als Eingabe an ein anderes Programm weiter. Dies ermöglicht das Kombinieren einfacher Tools zu komplexen Datenverarbeitungs-Pipelines:

# Zeige die 10 häufigsten IP-Adressen in einem Log cat access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head -10 # Finde große Dateien und zeige sie sortiert an find /var/log -type f -size +10M | xargs ls -lhS

Pipes sind das Herzstück der Unix-Philosophie: Kleine, spezialisierte Tools werden zu mächtigen Werkzeugketten kombiniert.

Soll ich Unix oder Linux lernen?

Für die meisten Menschen ist Linux die bessere Wahl:

  • Kostenlos und überall verfügbar
  • Große Community und Dokumentation
  • Dominierend in Cloud, Server und DevOps
  • Grundlage für Docker, Kubernetes, CI/CD

Unix-Kenntnisse lohnen sich, wenn Sie in bestimmten Branchen arbeiten: Banken (AIX), Oracle-Umgebungen (Solaris), Netzwerk-Sicherheit (OpenBSD) oder Apple-Entwicklung (macOS/Darwin).

Das Gute: Die Konzepte sind übertragbar. Wer Linux kann, versteht auch Unix – und umgekehrt. Die Shell-Befehle, Dateisystem-Hierarchie und Systemkonzepte sind weitgehend identisch.

Zusammenfassung

Die wichtigsten Punkte

  • Unix (1969): Entwickelt in den Bell Labs – eines der einflussreichsten Betriebssysteme der Geschichte
  • Philosophie: Do one thing well, Pipes, Everything is a File, Text als Interface
  • Architektur: Schichtenmodell (Hardware → Kernel → Shell → Anwendungen)
  • Zwei Linien: BSD (Berkeley) und System V (AT&T)
  • Varianten: FreeBSD, OpenBSD, NetBSD, Solaris, AIX, HP-UX, macOS
  • Linux: Unixoides System, von Grund auf neu geschrieben, hat Unix weitgehend verdrängt
  • POSIX: Standard für Portabilität zwischen unixoiden Systemen
  • Zertifiziertes UNIX®: macOS, AIX, Solaris – von der Open Group zertifiziert
  • Einsatz heute: Enterprise-Nischen, macOS-Desktop, Netzwerk, Storage, Security

Weiterführende Themen

Linux

Das unixoides Betriebssystem im Detail – Distributionen, Verwaltung, Einsatz.

Zu Linux
macOS

Apples zertifiziertes UNIX® – Architektur, Terminal, Homebrew.

Zu macOS
Terminal-Befehle

Die wichtigsten Shell-Befehle für Unix, Linux und macOS.

Zu Terminal-Befehlen
Dateisysteme

UFS, ZFS, ext4, APFS – Dateisysteme im Unix-Umfeld.

Zu Dateisystemen