Betriebssysteme
Aufgaben eines Betriebssystems
Das Betriebssystem (BS) ist die Vermittlungsschicht zwischen Hardware und Anwendungsprogrammen. Es stellt Anwendungen einheitliche Schnittstellen zur Verfügung, damit diese nicht direkt mit der Hardware kommunizieren müssen. Prüfungsrelevant sind vor allem fünf Kernaufgaben:
- Ressourcenverwaltung: Verteilung von CPU-Zeit, Arbeitsspeicher, Peripheriegeräten und Netzwerkzugriff auf die laufenden Programme, inklusive Schutz vor gegenseitiger Störung.
- Prozessverwaltung: Erzeugen, Starten, Anhalten und Beenden von Prozessen sowie Zuteilung von Rechenzeit durch den Scheduler.
- Speicherverwaltung: Zuweisung von Arbeitsspeicherbereichen an Prozesse, Verwaltung von virtuellem Speicher (Auslagerungsdatei/Swap) und Schutz der Speicherbereiche einzelner Prozesse voreinander.
- Ein-/Ausgabeverwaltung: Steuerung von Geräten wie Festplatte, Netzwerkkarte, Tastatur oder Drucker über Gerätetreiber, die die Hardware-Details vor der Anwendung verbergen.
- Benutzerschnittstelle: Bereitstellung einer grafischen Oberfläche (GUI) oder Kommandozeile (CLI), über die Nutzer und Programme mit dem System interagieren.
Man unterscheidet außerdem Einzelplatz- und Mehrbenutzersysteme sowie Einprogramm- und Mehrprogrammbetrieb (Multitasking), bei dem mehrere Prozesse scheinbar gleichzeitig laufen.
Prozesse und Threads
Ein Prozess ist ein in Ausführung befindliches Programm inklusive seines eigenen Speicherbereichs, Dateihandles und Zustands (laufend, bereit, wartend). Jeder Prozess ist vom Betriebssystem gegenüber anderen Prozessen isoliert.
Ein Thread ist ein "Ausführungsstrang" innerhalb eines Prozesses. Mehrere Threads eines Prozesses teilen sich denselben Speicherbereich und dieselben Ressourcen, besitzen aber jeweils einen eigenen Befehlszähler und Stack. Threads sind dadurch leichtgewichtiger als Prozesse: Sie lassen sich schneller erzeugen und wechseln, und die Kommunikation zwischen Threads ist einfacher, weil kein Datenaustausch über Prozessgrenzen nötig ist.
Scheduling
Der Scheduler entscheidet, welcher Prozess bzw. Thread wann die CPU zugeteilt bekommt. Zwei Grundprinzipien solltest du kennen:
- Zeitscheibenverfahren (Round Robin): Jeder Prozess erhält reihum ein festes Zeitintervall (Zeitscheibe) CPU-Zeit. Läuft die Zeit ab, wird der Prozess unterbrochen und der nächste kommt an die Reihe. Das sorgt für gefühlte Gleichzeitigkeit bei Multitasking.
- Prioritätsgesteuertes Scheduling: Prozesse mit höherer Priorität werden bevorzugt der CPU zugeteilt, z. B. Systemprozesse vor Hintergrundprogrammen. Häufig kombiniert mit Zeitscheiben, damit niedrig priorisierte Prozesse nicht komplett verhungern.
In der AP1 wird oft nur der Unterschied zwischen Prozess und Thread abgefragt ("eigener Adressraum" vs. "gemeinsamer Adressraum"). Merke dir das als klaren Merksatz – das reicht meist für die Punkte.
Dateisysteme im Vergleich
Ein Dateisystem organisiert, wie Daten auf einem Datenträger gespeichert und wiedergefunden werden. Prüfungsrelevant sind vor allem NTFS, ext4 sowie FAT32/exFAT.
| Dateisystem | Einsatz | Max. Dateigröße | Rechteverwaltung |
|---|---|---|---|
| NTFS | Windows (Standard) | ca. 16 TB (praktisch) | ACLs (NTFS-Berechtigungen) |
| ext4 | Linux (Standard) | 16 TB | Unix-Rechte (rwx) |
| FAT32 | USB-Sticks, alte Geräte | 4 GB | keine |
| exFAT | USB-Sticks, SD-Karten (groß) | 16 EB (praktisch) | keine |
Rechteverwaltung: NTFS vs. Unix
NTFS-Berechtigungen arbeiten mit ACLs (Access Control Lists): Für jede Datei bzw. jeden Ordner kann einzelnen Benutzern oder Gruppen jeweils eine eigene Kombination aus Lesen, Schreiben, Ändern, Ausführen und Vollzugriff zugewiesen werden – fein granular und beliebig erweiterbar.
Bei Unix-Rechten (rwx) gibt es für jede Datei genau drei Rechte-Trios für Besitzer (owner), Gruppe (group) und alle anderen (others), jeweils mit r (lesen), w (schreiben) und x (ausführen), z. B. rwxr-xr-- bzw. numerisch 754. Das ist einfacher, aber weniger granular als NTFS-ACLs.
FAT32/exFAT kennen keine Zugriffsrechte auf Dateisystemebene – deshalb eignen sie sich vor allem für austauschbare Wechseldatenträger, nicht für Systempartitionen mit mehreren Benutzern.
Windows-Grundlagen
Dienste (Services)
Ein Dienst ist ein Hintergrundprogramm, das ohne Benutzeranmeldung läuft und meist automatisch mit dem System startet (z. B. Druckerwarteschlange, Windows-Update, DNS-Client). Verwaltet werden Dienste über services.msc oder die Kommandozeile mit sc bzw. PowerShell-Cmdlets wie Get-Service.
Registry
Die Registry ist eine zentrale, hierarchische Datenbank, in der Windows Konfigurationseinstellungen für System, Hardware, Software und Benutzerprofile speichert. Bearbeitet wird sie über regedit. Wichtige Hauptschlüssel:
HKEY_LOCAL_MACHINE (HKLM)– systemweite Einstellungen für alle BenutzerHKEY_CURRENT_USER (HKCU)– Einstellungen des aktuell angemeldeten BenutzersHKEY_USERS (HKU)– Profile aller auf dem System vorhandenen BenutzerHKEY_CLASSES_ROOT (HKCR)– Dateiverknüpfungen und COM-ObjektinformationenHKEY_CURRENT_CONFIG (HKCC)– aktuelle Hardwarekonfiguration
Benutzer- und Gruppenverwaltung (lokal)
Lokale Benutzer und Gruppen werden über lusrmgr.msc oder die Computerverwaltung angelegt. Standardgruppen sind unter anderem Administratoren (voller Systemzugriff) und Benutzer (eingeschränkte Rechte). Rechte werden idealerweise nicht einzelnen Benutzern, sondern Gruppen zugewiesen – das erleichtert die Verwaltung erheblich.
Linux-Grundlagen
Verzeichnisstruktur (FHS)
Der Filesystem Hierarchy Standard (FHS) legt eine einheitliche Verzeichnisstruktur für Linux-Systeme fest:
/etc– Konfigurationsdateien des Systems/home– persönliche Verzeichnisse der Benutzer/var– veränderliche Daten wie Logs (/var/log) oder Spool-Dateien/usr– installierte Programme und zugehörige Ressourcen/bin,/sbin– grundlegende Programme bzw. Systemverwaltungsbefehle/root– Home-Verzeichnis des Administrators (root)/tmp– temporäre Dateien
Wichtige Befehle
ls– Verzeichnisinhalt anzeigencd– Verzeichnis wechselnchmod– Zugriffsrechte ändern, z. B.chmod 755 datei.shchown– Besitzer/Gruppe einer Datei ändern, z. B.chown user:gruppe dateips– laufende Prozesse anzeigensystemctl– Dienste (systemd) verwalten, z. B.systemctl status apache2
Paketverwaltung
Software wird unter Linux nicht wie unter Windows per Installer eingerichtet, sondern über einen Paketmanager aus zentralen Repositories bezogen, installiert und aktualisiert. Das Grundprinzip: Der Paketmanager löst Abhängigkeiten automatisch auf und installiert benötigte Zusatzpakete gleich mit. Beispiele: apt (Debian/Ubuntu, z. B. apt install nginx) und yum bzw. dnf (RedHat/CentOS/Fedora).
Virtualisierung — kurzer Überblick
Virtualisierung erlaubt es, mehrere Gastbetriebssysteme auf einem physischen Hostsystem gleichzeitig zu betreiben. Die dafür zuständige Softwareschicht heißt Hypervisor: Sie teilt die physische Hardware (CPU, RAM, Speicher) logisch zwischen den Gastsystemen auf und isoliert diese voneinander. Man unterscheidet grob Typ-1-Hypervisor (läuft direkt auf der Hardware, z. B. VMware ESXi) und Typ-2-Hypervisor (läuft als Anwendung auf einem bestehenden Betriebssystem, z. B. VirtualBox).
Für die AP1 reicht dieses Grundverständnis von Host, Gast und Hypervisor. Vertiefte Konzepte wie Servervirtualisierung, Container gegenüber klassischer Virtualisierung oder Live-Migration werden erst in der AP2 relevant.