| FOTO | AUTO | EDV | AUDIO |

Modul 1: Historie & Architektur

1. Die Evolution: Von Zahnrädern zu Time-Sharing

Betriebssysteme sind nicht durch einen Urknall entstanden, sondern durch die Notwendigkeit, immer komplexere Hardware effizient auszulasten. Wenn wir den Begriff „Betriebssystem“ sehr abstrakt fassen, erfüllt bereits ein mechanisches Uhrwerk diese Definition[cite: 1].

In der IT begann alles mit Konrad Zuse. Er konstruierte mit der Z1 das erste Rechenwerk, das vollständig auf Basis des Dualsystems arbeitete[cite: 1]. Logische Operationen wurden rein mechanisch über übereinanderliegende Blechstreifen realisiert – eine Hardware-Gatterebene ohne jegliche Software[cite: 1]. Die Weiterentwicklung Z22 war später der erste Röhrenrechner der Zuse KG[cite: 1]. Der entscheidende Durchbruch: Die Z22 hatte so viel Speicherkapazität, dass Programme erstmals direkt in der Maschine gespeichert werden konnten und nicht mehr mühsam über Lochstreifen eingelesen werden mussten[cite: 1].

Wir teilen die Entwicklung klassischerweise in Generationen ein[cite: 1]:

  • Erste Generation (ca. 1945-1955): Diese Maschinen besaßen noch kein ausgewiesenes Betriebssystem[cite: 1]. Programmiert wurde extrem hardwarenah über Steckbretter und Lochkarten[cite: 1].
  • Zweite Generation (ca. 1955-1965): Die Ära der Stapelverarbeitung (Batch Processing)[cite: 1]. Ein Job wurde komplett mit Programm, Daten und Steueranweisungen auf Lochkarten übergeben und als geschlossener Block abgearbeitet[cite: 1].
  • Dritte Generation (ca. 1965-1980): Der fundamentale Sprung zur Dialogverarbeitung[cite: 1]. Nutzer konnten über Tastatur und Bildschirm live mit dem Computer kommunizieren[cite: 1]. Konzepte wie Multiprogramming (zeitlich verschachtelte Bearbeitung mehrerer Programme im Speicher) und Spooling wurden Standard[cite: 1].
  • Vierte Generation (ab ca. 1975): Die Einführung echter Dialogsysteme mit grafischen Benutzeroberflächen wie GEM von Digital Research oder das Apple OS für Lisa und Macintosh[cite: 1].

2. Architektur des Kernels: Wie strukturiert man die Macht?

Der Kernel ist das Herzstück. Er läuft im hochprivilegierten Supervisor Mode und abstrahiert die nackte Hardware für die Anwendungen. Das Skript definiert drei primäre Architekturmodelle[cite: 1]:

2.1 Monolithische Architektur

Alle Systemkomponenten – Prozessverwaltung, Speicherverwaltung, Dateisysteme und Hardware-Treiber – sind starr zu einem riesigen, homogenen Gebilde zusammengefügt[cite: 1].

Die Praxis: Wenn wir auf unseren Servern ein aktuelles Red Hat Enterprise Linux oder Debian „Bookworm“ ausrollen, nutzen wir genau diesen monolithischen Ansatz. * Vorteil: Die Effizienz für spezielle Geräte ist extrem hoch[cite: 1]. Da keine aufwendigen Kontextwechsel (Context Switches) zwischen User-Space und Kernel-Space für OS-interne Kommunikation anfallen, ist die Performance brachial. * Nachteil: Die Flexibilität leidet[cite: 1]. Ein Programmierfehler in einem winzigen Gerätetreiber kann das gesamte System in eine Kernel Panic reißen. Um Flexibilität zu gewinnen, nutzen moderne Monolithen (wie Linux) dynamisch ladbare Kernelmodule.

2.2 Mikrokern Architektur (Microkernel)

Hier wird der Kernel auf das absolute Minimum reduziert. Ein Mikrokern übernimmt in der Regel lediglich die rudimentäre Speicher- und Prozessverwaltung sowie die grundlegende Synchronisation und Kommunikation[cite: 1]. Alle anderen Dienste (wie Dateisysteme oder Gerätetreiber) laufen als isolierte, reguläre Prozesse im unprivilegierten User-Space. * Vorteil: Enorme Stabilität und Sicherheit. Stürzt der Netzwerktreiber ab, wird lediglich dieser eine Prozess vom Kernel neu gestartet – das restliche System läuft ungestört weiter. * Nachteil: Der ständige Nachrichtenversand (Message Passing / IPC) zwischen den User-Space-Diensten und dem Mikrokern kostet massiv Rechenzeit und drückt die Performance. * Einsatzgebiet: Vor allem bei Echtzeitbetriebssystemen[cite: 1]. Bekannte Beispiele für Mikrokerne sind Mach, L3 oder L4[cite: 1]. Der Darwin-Kernel, der unter der Haube von Apple macOS X arbeitet, basiert ebenfalls auf Mach[cite: 1].

2.3 Mehrschichtige Architektur (Schalenmodell)

Eine funktionelle Trennung des Betriebssystems in hierarchische Schichten (oder Schalen), die mit unterschiedlichen Privilegien ausgestattet sind[cite: 1]. Jede Schicht darf nur die Dienste der direkt darunterliegenden Schicht nutzen. Dies führt zu einem sehr gut strukturierten System, bei dem die hochsensiblen inneren Schalen optimal vor den äußeren Schichten abgeschirmt sind[cite: 1].

Schalenarchitektur

3. Klassifizierung von Betriebssystemen

Ein Betriebssystem richtet sich in erster Linie nach seinem Einsatzgebiet[cite: 1]. Wir klassifizieren sie in verschiedene Betriebsarten:

  • Stapelverarbeitungs-OS (Batch Processing): Abarbeitung von Programmabfolgen völlig ohne Benutzereingriff[cite: 1]. Dies existiert auch heute noch, beispielsweise in Form von automatisierten Shell-Scripten unter UNIX[cite: 1].
  • Dialogbetrieb-OS (Interactive Processing): Der Benutzer bedient den Rechner direkt über Ein-/Ausgabegeräte wie Tastatur und Bildschirm[cite: 1].
  • Netzwerk-OS: Erlauben die Einbindung in ein Computernetzwerk zur Nutzung entfernter Ressourcen von anderen Servern[cite: 1].
  • Realzeit-OS (Realtime Processing): Bei diesen Systemen spielt die strikte Einhaltung von Verarbeitungszeiten (Antwortzeiten) eine absolut kritische Rolle[cite: 1]. In der Maschinenregelung sprechen wir von geforderten Reaktionszeiten von 1-10 ms, in der Prozesssteuerung von 0,1-1 s[cite: 1]. Wenn ein Sensor einen Wert liefert, muss die Steuerung garantiert innerhalb dieser Deadline reagieren – normale Universal-Betriebssysteme können dies durch unvorhersehbares Scheduling nicht garantieren.

Außerdem unterscheiden wir nach der Anzahl der verwalteten Tasks (Single Tasking vs. Multitasking) und Benutzer (Singleuser vs. Multiuser)[cite: 1]. Unsere heutigen Linux-Server sind klassische Universal-Betriebssysteme, die Multiuser- und Multitasking-Fähigkeiten nativ verknüpfen.