| FOTO | AUTO | EDV | AUDIO |

Dies ist eine alte Version des Dokuments!



Script Betriebssysteme zur Erlangung des Grades Bachelor im Studiengang Informatik / Computer Science / B.Sc.
Script Betriebssysteme zur Erlangung des Grades Bachelor im Studiengang Informatik / Computer Science / B.Sc.

DON'T PANIC: Per Anhalter durch das Betriebssystem

Willkommen, Anhalter! Dieser zweiwöchige Kurs ist euer Handtuch für die Reise durch die Galaxis der Betriebssysteme. Um es holistisch zu betrachten: Ein Betriebssystem ist nicht einfach nur Code. Es ist das Fundament der informationstechnischen Existenz, das System, das als Vermittler zwischen Benutzer, Anwendungen und Hardware fungiert[cite: 1].

Ohne ein Betriebssystem müsstet ihr jede Spannungsänderung im Silizium selbst steuern – eine Aufgabe, die selbst die Geduld eines Vogonen überstrapazieren würde. Wir werden uns primär ansehen, wie das Open-Source-Flaggschiff Linux funktioniert, wie es programmiert wird und wo die Unterschiede zu Systemen wie Windows oder macOS liegen.

Organisation eines Betriebssystem

Kapitel 1: Die Anatomie des Pinguins (Architektur)

Wie strukturiert man das Chaos aus Nullen und Einsen? Das Skript definiert drei grundlegende Herangehensweisen[cite: 1]:

  • Die Monolithische Architektur: Alle Komponenten sind starr zu einem homogenen Gebilde zusammengefügt[cite: 1]. Linux ist ein klassischer Monolith. Das bedeutet, Treiber, Dateisysteme und Speicherverwaltung laufen alle im privilegierten Kernel-Space. Das ist rasend schnell, bedeutet aber auch: Baut ihr einen fehlerhaften Treiber, stürzt das gesamte System ab (Kernel Panic). Wenn ihr heute hochstabile Enterprise-Umgebungen wie Red Hat Enterprise Linux (RHEL 7.9 bis 9.2) oder ein solides Debian 12 „Bookworm“ administriert, nutzt ihr genau diese monolithische, aber durch ladbare Module dynamisch erweiterbare Kraft.
  • Die Mikrokern Architektur: Hier verfügt der Kernel über weniger Funktionen als ein monolithischer Kernel – in der Regel lediglich Speicher- und Prozessverwaltung[cite: 1]. Treiber laufen im isolierten User-Space. Das ist sicherer, aber durch den ständigen Nachrichtenversand zwischen den Schichten (Inter-Process Communication) oft langsamer.
  • Der Systemvergleich: Apple nutzt in macOS X den Darwin-Kernel, welcher auf einem Mach-Mikrokernel basiert[cite: 1]. Unser Handout-Skript klassifiziert auch Windows NT als MACH Mikrokernel[cite: 1], in der modernen Realität spricht man bei Microsoft Windows jedoch eher von einem „Hybridkernel“, der Konzepte aus beiden Welten mischt, um Performance und Modularität auszubalancieren.

System-Call am Beispiel Windows NT

Kapitel 2: Prozesse, Threads und Bürokratie

Ein Prozess ist schlichtweg ein Programm in Ausführung[cite: 1] – sozusagen der bürokratische Akt des Rechnens. Ein Thread hingegen ist ein „leichtes Programm“, das sich mit anderen Threads die Betriebsmittel teilt[cite: 1].

Prozess

Damit wir nicht Äonen auf Berechnungen warten müssen, gibt es das Prozessmodell. Es beschreibt wesentliche Zustände[cite: 1]:

  • WARTEND: Der Prozess wartet auf die Zuteilung eines Prozessors[cite: 1].
  • LAUFEND: Der Prozess ist aktuell einem Prozessor zugeordnet und läuft ab[cite: 1].
  • UNTERBROCHEN: Der Prozess wurde durch einen anderen Prozess unterbrochen[cite: 1].
  • SUSPENDIERT: Prozesse aus dem Speicher entfernen und auslagern[cite: 1].

Prozess Warteschlange Single-Server Warteschlange Prioritätsscheduling

Damit das Multitasking flüssig wirkt, teilt ein sogenannter Scheduler die Prozessorzeit ein. Eine der bekanntesten Strategien ist „Round Robin“ (Zeitscheibenverfahren), bei der jeder Prozess eine feste Zeitspanne zugeordnet bekommt, bevor er verdrängt wird[cite: 1]. Das verhindert, dass lange Prozesse die CPU monopolisieren.

Kapitel 3: Speicherverwaltung & Der Unwahrscheinlichkeitsdrive

Es ist eine universelle Konstante: Der RAM ist immer zu klein[cite: 1]. Statt in Panik zu verfallen, hat die Menschheit den virtuellen Speicher erfunden.

Adressumsetzung

Hierbei ist der Adressraum des Prozessors strikt vom realen Adressraum des Arbeitsspeichers getrennt[cite: 1]. Eine Memory Management Unit (MMU) rechnet die virtuellen Adressen eurer Programme beim Paging in physikalische Adressen um[cite: 1]. Benötigt ein Programm Speicher, der gerade nicht in den RAM passt, lagert das Betriebssystem diesen auf die Festplatte (Swap) aus.

Kapitel 4: Dateisysteme (Everything is a file!)

In der Linux/Unix-Welt gilt ein eisernes Gesetz: „Everything is a file“ (Alles ist eine Datei). Egal ob es sich um ein Textdokument, eine Netzwerkverbindung oder eine Festplatte handelt – das OS abstrahiert alles als Datei, was die Programmierung extrem elegant macht[cite: 1].

Unix Dateisystem Struktur I-Nodes Dateideskriptoren

  • Linux (ext2/ext3/ext4): Nutzt zur Adressierung sogenannte Inodes (Index Nodes)[cite: 1]. Ein Inode enthält Informationen über den Eigentümer, Zugriffsberechtigungen und Zeiger auf die eigentlichen Datenblöcke der Datei auf der Platte[cite: 1].
  • Windows (NTFS): Nutzt eine Master File Table (MFT), in der jede Datei einen Eintrag besitzt und zusammenhängende Bereiche als B-Baum organisiert werden[cite: 1].

Spezialdateien wie Pipes verbinden Prozesse miteinander, wie ein pangalaktischer Strohhalm, durch den Datenströme fließen. Pipe Schema

Kapitel 5: Wie baut man ein OS und was ist dieses Open Source?

Wie werden Betriebssysteme eigentlich programmiert? Die Sprache der Wahl ist C. Der Linux-Kernel besteht fast vollständig aus C. Hardwarenahe Bereiche (wie das Booten oder die direkte CPU-Register-Kontrolle) werden in Assembler geschrieben.

GNU und die Open-Source-Philosophie Wenn wir „Linux“ sagen, meinen wir oft eigentlich GNU/Linux. Linux ist nur der Kernel (gestartet 1991 von Linus Torvalds[cite: 1]). Die ganzen Werkzeuge drumherum – Compiler, Shells, Basisprogramme – stammen vom GNU-Projekt („GNU's Not Unix“), das freie Software fördert. „Frei“ (Open Source) bedeutet nicht zwingend kostenlos (obwohl es das meistens ist[cite: 1]), sondern frei wie in „Freiheit“. Ihr habt das Recht, den Quellcode zu lesen, zu modifizieren und zu verbreiten.

Kann man da mitmachen? Ja! Jeder Student in diesem Kurs kann Code zum Linux-Kernel beitragen. Wenn ihr einen Bug in Debian fixen oder einen Treiber verbessern wollt, könnt ihr eure Änderungen (Patches) auf der Linux Kernel Mailing List (LKML) einreichen. Wenn der Code gut ist, wird er integriert. Linux ist das größte gemeinschaftliche Softwareprojekt der Menschheit.

Kapitel 6: Verteilte Systeme & Die Zukunft der Galaxis

Was passiert, wenn ein Computer nicht reicht? Man baut ein Cluster. Das Skript beschreibt hier primär zwei Ausprägungen[cite: 1]:

  • HA-Cluster (High Availability): Bestehen aus mindestens zwei Knoten, wobei einer passiv ist und sofort übernimmt, sobald der aktive (überwacht durch „Heartbeat“-Signale) ausfällt[cite: 1].
  • HPC-Cluster (High Performance Computing): Hier werden Rechenaufgaben in kleine Teile zerlegt und parallel auf mehreren Rechnern ausgeführt[cite: 1].

Die Zukunft, liebe Anhalter, liegt im Grid- und Cloud Computing. Hierbei werden Ressourcen (IaaS), Plattformen (PaaS) oder komplette Software (SaaS) dynamisch und transparent wie Strom aus der Steckdose bezogen[cite: 1].


Quellen
Script Betriebssysteme zur Erlangung des Grades Bachelor (German-Baltic Management School)[cite: 1]
Zusätzliche Anreicherungen durch den Kursleiter.