Aufbau eines Betriebssystems
Zielgruppe: Lernende Informatik EFZ in den Fachrichtungen Plattformentwicklung und Applikationsentwicklung.
Dauer: 4 bis 8 Lektionen, je nach Tiefe und Übungsanteil.
Ausgangslage
Ein Betriebssystem ist die zentrale Software zwischen Hardware, Anwendungen und Benutzenden. Es verwaltet Prozessorzeit, Arbeitsspeicher, Dateien, Geräte, Netzwerkverbindungen, Benutzerrechte, Dienste und laufende Programme.
Für Informatikerinnen und Informatiker ist dieses Verständnis wichtig, weil viele technische Probleme nur erklärbar sind, wenn man die Rolle des Betriebssystems versteht:
- Warum ist ein Computer langsam, obwohl nur wenige Fenster offen sind?
- Warum kann ein Prozess nicht auf eine Datei zugreifen?
- Warum belegt eine Anwendung viel Arbeitsspeicher?
- Warum startet ein Dienst nach einem Neustart automatisch?
- Warum funktioniert ein Netzwerkdienst lokal, aber nicht von aussen?
- Warum verhalten sich Windows und Linux bei Pfaden, Rechten und Services unterschiedlich?
Diese Unterrichtseinheit vermittelt nicht nur Begriffe, sondern zeigt, wie die wichtigsten Bestandteile eines Betriebssystems zusammenarbeiten.
Lernziele
Die Lernenden können nach der Einheit:
- erklären, welche Aufgaben ein Betriebssystem hat.
- den Unterschied zwischen Kernel, Shell, Services und Anwendungen beschreiben.
- Prozesse, Threads und Zeitscheiben grundlegend erklären.
- beschreiben, wie ein Betriebssystem CPU-Zeit auf mehrere Prozesse verteilt.
- Arbeitsspeicher, virtüllen Speicher und Swap/Pagefile unterscheiden.
- Dateisysteme, Laufwerke, Mount Points und Berechtigungen vergleichen.
- grundlegende Unterschiede zwischen Windows und Linux benennen.
- erklären, wie Netzwerkzugriffe über IP-Adressen, Ports und Dienste funktionieren.
- Services unter Windows und Linux einordnen.
- typische Diagnosewerkzeuge für Prozesse, Speicher, Disk und Netzwerk nennen.
- einschätzen, welche Betriebssystemkonzepte für Docker, Serverbetrieb und Entwicklung wichtig sind.
Grundidee eines Betriebssystems
Ein Betriebssystem hat drei zentrale Aufgaben:
- Es verwaltet Hardware.
- Es stellt Anwendungen eine einheitliche Umgebung bereit.
- Es schützt Benutzer, Prozesse und Daten voreinander.
Ohne Betriebssystem müsste jede Anwendung selbst wissen, wie man Tastatur, Bildschirm, Festplatte, Netzwerk, Speicher und CPU verwendet. Das Betriebssystem stellt dafür Schnittstellen bereit.
Typische Bestandteile:
- Kernel: Kern des Betriebssystems, verwaltet Hardware und Systemressourcen.
- Treiber: Software zur Ansteürung bestimmter Hardware.
- Dateisystem: Organisation von Dateien und Verzeichnissen.
- Prozessverwaltung: Starten, Planen, Überwachen und Beenden von Programmen.
- Speicherverwaltung: Zuteilung und Schutz von Arbeitsspeicher.
- Netzwerkstack: Umsetzung von Netzwerkprotokollen wie TCP/IP.
- Benutzer- und Rechteverwaltung: Kontrolle, wer was tun darf.
- Systemdienste: Hintergrundprogramme für dafürhafte Aufgaben.
- Shell oder grafische Oberfläche: Bedienung durch Menschen.
- Anwendungen: Programme wie Browser, Editor, Datenbank oder Entwicklungsumgebung.
Schichtenmodell
Vereinfacht kann man ein Betriebssystem in Schichten betrachten:
Benutzerin / Benutzer
|
Anwendungen
|
Shell, GUI, Systembibliotheken
|
Systemaufrufe
|
Kernel
|
Treiber
|
Hardware
Beispiel: Eine Anwendung möchte eine Datei speichern.
- Die Anwendung ruft eine Betriebssystemfunktion auf.
- Der Kernel prüft Rechte und Pfad.
- Das Dateisystem entscheidet, wo die Daten gespeichert werden.
- Der passende Treiber spricht das Speichergerät an.
- Die Hardware schreibt die Daten.
Kernel
Der Kernel ist der wichtigste Teil eines Betriebssystems. Er läuft mit sehr hohen Rechten und verwaltet zentrale Ressourcen.
Aufgaben des Kernels:
- Prozesse und Threads planen.
- Arbeitsspeicher zuteilen und schützen.
- Dateizugriffe koordinieren.
- Netzwerkpakete verarbeiten.
- Hardware über Treiber ansprechen.
- Systemaufrufe von Anwendungen entgegennehmen.
- Rechte und Isolation durchsetzen.
Anwendungen laufen normalerweise nicht direkt mit Kernelrechten. Sie verwenden Systemaufrufe, um kontrolliert auf Ressourcen zuzugreifen.
Windows und Linux beim Kernel
Windows:
- verwendet den Windows NT Kernel.
- ist stark mit Windows-spezifischen Systemdiensten, Registry, Treibermodell und grafischer Oberfläche integriert.
- bietet Win32, .NET und weitere APIs für Anwendungen.
Linux:
- verwendet den Linux-Kernel.
- ist nur der Kernel; eine vollständige Linux-Distribution besteht zusätzlich aus Shell, Paketmanager, Systemdiensten, Bibliotheken und Werkzeugen.
- wird in vielen Varianten eingesetzt, zum Beispiel Ubuntu, Debian, Fedora, Alpine oder Red Hat Enterprise Linux.
Wichtig: "Linux" meint im Alltag oft die ganze Distribution. Technisch ist Linux aber der Kernel.
Prozesse, Threads und Zeitscheiben
Ein Prozess ist ein laufendes Programm mit eigenem Speicherbereich und eigenen Ressourcen. Beispiele:
- Browser
- Terminal
- Webserver
- Datenbank
- Editor
Ein Thread ist ein Ausführungsstrang innerhalb eines Prozesses. Ein Prozess kann einen oder mehrere Threads besitzen.
Beispiel:
- Ein Browserprozess kann einen Thread für die Benutzeroberfläche verwenden.
- Weitere Threads laden Webseiten, führen JavaScript aus oder verarbeiten Netzwerkdaten.
Zeitscheiben
Ein Computer führt scheinbar viele Programme gleichzeitig aus. In Wirklichkeit verteilt das Betriebssystem die CPU-Zeit sehr schnell zwischen Prozessen und Threads.
Eine Zeitscheibe ist ein kurzer Zeitraum, in dem ein Prozess oder Thread auf der CPU laufen darf. Danach kann der Scheduler entscheiden, ob ein anderer Prozess CPU-Zeit erhält.
Vereinfacht:
Dieses schnelle Umschalten heisst Kontextwechsel. Dabei speichert das Betriebssystem den Zustand des aktuellen Prozesses und lädt den Zustand des nächsten Prozesses.
Scheduling
Der Scheduler ist der Teil des Betriebssystems, der entscheidet, welcher Prozess oder Thread als Nächstes CPU-Zeit bekommt.
Kriterien können sein:
- Priorität
- Wartezeit
- CPU-Auslastung
- Interaktive Reaktionszeit
- Hintergrund- oder Vordergrundprozess
- I/O-Wartezeiten, zum Beispiel Warten auf Disk oder Netzwerk
Windows und Linux verwenden unterschiedliche Scheduler-Implementierungen, verfolgen aber dasselbe Ziel: Die verfügbare CPU-Zeit soll fair, performant und passend zur Nutzung verteilt werden.
Arbeitsspeicher und virtueller Speicher
Der Arbeitsspeicher, RAM, ist schneller Speicher für aktuell benötigte Daten und Programme.
Das Betriebssystem verwaltet:
- welcher Prozess welchen Speicherbereich bekommt.
- welche Speicherbereiche geschützt sind.
- welche Daten gerade im RAM liegen.
- welche Daten auf Disk ausgelagert werden.
Virtüller Speicher
Moderne Betriebssysteme geben Prozessen einen virtüllen Adressraum. Ein Prozess sieht dadurch scheinbar seinen eigenen Speicherbereich. Der Kernel ordnet diese virtüllen Adressen dem echten physischen RAM zu.
Vorteile:
- Prozesse sind voneinander isoliert.
- Ein fehlerhafter Prozess kann nicht einfach fremden Speicher überschreiben.
- Speicher kann effizienter genutzt werden.
- Daten können bei Bedarf ausgelagert werden.
Swap und Pagefile
Wenn der RAM knapp wird, können Betriebssysteme Teile des Speichers auf Disk auslagern.
Linux:
- verwendet Swap, entweder als Swap-Partition oder Swap-Datei.
- Werkzeuge:
free,top,htop,swapon.
Windows:
- verwendet ein Pagefile, zum Beispiel
pagefile.sys. - Werkzeuge: Task-Manager, Ressourcenmonitor, Performance Monitor.
Auslagerung ist langsamer als RAM. Wenn ein System stark swappt oder viel ins Pagefile schreibt, fühlt es sich oft sehr langsam an.
Disk, Dateisysteme und Pfade
Das Betriebssystem organisiert dafürhafte Daten auf Speichergeräten wie SSDs, HDDs oder virtüllen Disks.
Wichtige Begriffe:
- Blockgerät: Speichergerät, das blockweise gelesen und geschrieben wird.
- Partition: Bereich auf einem Datenträger.
- Dateisystem: Struktur, wie Dateien und Verzeichnisse gespeichert werden.
- Mount: Einbinden eines Dateisystems in die Verzeichnisstruktur.
- Berechtigungen: Regeln, wer Dateien lesen, schreiben oder ausführen darf.
Windows
Typisch für Windows:
- Laufwerksbuchstaben wie
C:\,D:\. - Pfadtrenner ist meistens
\. - häufiges Dateisystem: NTFS.
- Berechtigungen über NTFS Access Control Lists.
- zentrale Konfiguration teilweise in der Registry.
- Programme oft unter
C:\Program Files.
Beispiel:
Linux
Typisch für Linux:
- ein gemeinsamer Verzeichnisbaum mit
/als Wurzel. - keine Laufwerksbuchstaben.
- Dateisysteme werden in Verzeichnisse eingehängt.
- Pfadtrenner ist
/. - häufige Dateisysteme: ext4, xfs, btrfs.
- Berechtigungen über Besitzer, Gruppe und Rechtebits.
- Konfiguration oft als Textdateien unter
/etc.
Beispiel:
Wichtige Linux-Verzeichnisse:
/home: Benutzerverzeichnisse./etc: Systemkonfiguration./var: veränderliche Daten, Logs, Spools, Datenbanken./usr: installierte Programme und Bibliotheken./binund/sbin: wichtige Systemprogramme./tmp: temporäre Dateien./dev: Gerätedateien./proc: laufende Kernel- und Prozessinformationen.
Netzwerk
Das Betriebssystem stellt den Netzwerkstack bereit. Anwendungen müssen TCP/IP nicht selbst komplett implementieren, sondern verwenden Betriebssystemfunktionen.
Wichtige Begriffe:
- IP-Adresse: Adresse eines Geräts oder Interfaces im Netzwerk.
- Port: Nummer für einen Dienst auf einem System.
- TCP: verbindungsorientiertes Transportprotokoll.
- UDP: verbindungsloses Transportprotokoll.
- DNS: Namensauflösung von Namen zu IP-Adressen.
- Socket: Kommunikationsendpunkt für Netzwerkverbindungen.
- Firewall: Regelwerk, das Netzwerkverkehr erlaubt oder blockiert.
Beispiel:
Der Port entscheidet, welcher Dienst angesprochen wird:
22: SSH53: DNS80: HTTP443: HTTPS5432: PostgreSQL3306: MySQL/MariaDB
Netzwerk unter Windows und Linux
Windows:
- Konfiguration oft über grafische Einstellungen, PowerShell oder
netsh. - Firewall über Windows Defender Firewall.
- Diagnose mit
ipconfig,ping,tracert,netstat, PowerShell-Cmdlets.
Linux:
- Konfiguration je nach Distribution über NetworkManager, systemd-networkd oder Konfigurationsdateien.
- Firewall zum Beispiel über
nftables,iptablesoderufw. - Diagnose mit
ip,ping,traceroute,ss,dig,curl.
Services und Daemons
Services sind Programme, die im Hintergrund laufen und Aufgaben bereitstellen. Unter Linux spricht man häufig von Daemons.
Beispiele:
- Webserver
- Datenbankserver
- SSH-Server
- Druckdienst
- Update-Dienst
- Monitoring-Agent
- DNS-Server
Windows Services
Windows verwaltet Hintergrunddienste über den Service Control Manager.
Werkzeuge:
- Dienste-App
- Task-Manager
- PowerShell:
Get-Service,Start-Service,Stop-Service sc.exe
Beispiel:
Linux systemd Services
Viele moderne Linux-Distributionen verwenden systemd zur Verwaltung von Diensten.
Werkzeuge:
systemctljournalctl
Beispiel:
Ein Service kann automatisch beim Systemstart gestartet werden. Das ist wichtig für Serverdienste wie Webserver, Datenbanken oder Container-Runtimes.
Anwendungen
Anwendungen sind Programme, die eine Aufgabe für Benutzer oder andere Systeme erledigen.
Beispiele:
- Browser
- Office-Programme
- Entwicklungsumgebung
- Datenbank-Client
- Webanwendung
- Serverprozess
- Kommandozeilenwerkzeug
Anwendungen nutzen Betriebssystemfunktionen für:
- Dateien
- Netzwerk
- Speicher
- Prozesse
- Benutzerrechte
- Eingabe und Ausgabe
- grafische Darstellung
Eine Anwendung kann direkt von einem Menschen gestartet werden oder als Service dafürhaft im Hintergrund laufen.
Unterschiede zwischen Windows und Linux
| Bereich | Windows | Linux |
|---|---|---|
| Kernel | Windows NT Kernel | Linux-Kernel |
| Distribution | Ein Produkt mit Editionen | Viele Distributionen |
| Bedienung | stark GUI-orientiert, PowerShell wichtig | Shell sehr zentral, GUI optional |
| Pfade | C:\Users\... |
/home/... |
| Laufwerke | Laufwerksbuchstaben | Ein Verzeichnisbaum mit Mount Points |
| Konfiguration | GUI, Registry, Dateien, Gruppenrichtlinien | meist Textdateien unter /etc, Tools |
| Softwareinstallation | Installer, Microsoft Store, winget | Paketmanager wie apt, dnf, pacman, apk |
| Services | Windows Services | Daemons, oft mit systemd |
| Rechte | NTFS ACLs, Benutzer, Gruppen, UAC | Besitzer, Gruppe, Rechtebits, ACLs, sudo |
| Logs | Ereignisanzeige, Event Viewer | Logdateien, journalctl |
| Netzwerktools | ipconfig, netstat, PowerShell |
ip, ss, dig, curl |
| Gross-/Kleinschreibung | Dateinamen meist nicht case-sensitive | Dateinamen normalerweise case-sensitive |
| Typischer Einsatz | Desktop, Unternehmensumgebungen, Server | Server, Cloud, Container, Embedded, Entwicklung |
Zusammenspiel an einem Beispiel
Beispiel: Ein Webserver läuft auf einem Linux-System.
- Beim Systemstart startet
systemdden Webserver-Service. - Der Webserver-Prozess wird vom Kernel erzeugt.
- Der Scheduler gibt dem Prozess CPU-Zeit.
- Der Prozess reserviert RAM für Konfiguration, Verbindungen und Cache.
- Konfigurationsdateien werden aus
/etcgelesen. - Webseiten oder Anwendungsdaten werden von Disk geladen.
- Der Webserver öffnet einen Netzwerkport, zum Beispiel
443. - Die Firewall erlaubt oder blockiert eingehende Verbindungen.
- Clients verbinden sich über IP-Adresse und Port.
- Logs werden geschrieben und können mit
journalctloder Logdateien ausgewertet werden.
Dieses Beispiel zeigt, dass Kernel, Prozessverwaltung, Speicher, Disk, Netzwerk, Rechte und Services immer zusammenwirken.
Diagnosewerkzeuge
Windows
| Aufgabe | Werkzeug |
|---|---|
| Prozesse anzeigen | Task-Manager, Get-Process |
| Services anzeigen | Dienste-App, Get-Service |
| Speicher prüfen | Task-Manager, Ressourcenmonitor |
| Disk prüfen | Datenträgerverwaltung, Ressourcenmonitor |
| Netzwerk anzeigen | ipconfig, netstat, PowerShell |
| Logs anzeigen | Ereignisanzeige |
Linux
| Aufgabe | Werkzeug |
|---|---|
| Prozesse anzeigen | ps, top, htop |
| Services anzeigen | systemctl |
| Speicher prüfen | free, top, vmstat |
| Disk prüfen | lsblk, df, du, mount |
| Netzwerk anzeigen | ip, ss, ping, curl, dig |
| Logs anzeigen | journalctl, Dateien unter /var/log |
Wichtige Begriffe
- Betriebssystem: Software, die Hardware verwaltet und Anwendungen ausführt.
- Kernel: Kern des Betriebssystems mit Zugriff auf zentrale Ressourcen.
- Treiber: Software zur Ansteürung von Hardware.
- Prozess: laufendes Programm.
- Thread: Ausführungsstrang innerhalb eines Prozesses.
- Scheduler: entscheidet über CPU-Zeit.
- Zeitscheibe: kurzer Zeitraum, in dem ein Prozess oder Thread CPU-Zeit erhält.
- Kontextwechsel: Umschalten zwischen Prozessen oder Threads.
- RAM: schneller Arbeitsspeicher.
- Virtüller Speicher: Speicherabstraktion für Prozesse.
- Swap/Pagefile: Auslagerung von Speicher auf Disk.
- Dateisystem: Struktur zur Organisation von Dateien.
- Mount Point: Einhängepunkt eines Dateisystems.
- Service/Dämon: Hintergrundprozess für dafürhafte Aufgaben.
- Port: Nummer eines Netzwerkdienstes.
- Socket: Netzwerkendpunkt einer Anwendung.
- Shell: textbasierte Schnittstelle zum Betriebssystem.
- GUI: grafische Benutzeroberfläche.
Kontrollfragen
- Welche Aufgaben hat ein Betriebssystem?
- Warum dürfen Anwendungen normalerweise nicht direkt auf Hardware zugreifen?
- Was ist der Unterschied zwischen Kernel und Anwendung?
- Was ist ein Prozess?
- Was ist ein Thread?
- Was bedeutet Zeitscheibe?
- Warum kann ein Computer mehrere Programme scheinbar gleichzeitig ausführen?
- Was passiert bei einem Kontextwechsel?
- Warum verwendet ein Betriebssystem virtüllen Speicher?
- Was ist der Unterschied zwischen RAM und Swap/Pagefile?
- Wie unterscheiden sich Windows- und Linux-Pfade?
- Was ist ein Mount Point?
- Was ist der Unterschied zwischen einer Anwendung und einem Service?
- Warum braucht ein Webserver einen Port?
- Welche Werkzeuge würdest du unter Linux verwenden, um Prozesse, Speicher, Disk und Netzwerk zu prüfen?
Praktische Aufgaben
Aufgabe 1: Prozesse vergleichen
Windows:
Linux:
Auftrag:
- Suche drei laufende Prozesse.
- Notiere Name, ungefähre Speicherverwendung und Zweck.
- Unterscheide Benutzerprozess und Systemprozess.
Aufgabe 2: Services untersuchen
Windows:
Linux:
Auftrag:
- Suche drei Services.
- Kläre, ob sie laufen oder gestoppt sind.
- Beschreibe, wofür sie vermutlich gebraucht werden.
Aufgabe 3: Speicher beobachten
Windows:
- Task-Manager öffnen.
- Reiter "Leistung" betrachten.
Linux:
Auftrag:
- Notiere RAM-Grösse und aktuelle Auslastung.
- Prüfe, ob Swap oder Pagefile verwendet wird.
- Starte eine grössere Anwendung und beobachte die Veränderung.
Aufgabe 4: Disk und Pfade vergleichen
Windows:
Linux:
Auftrag:
- Vergleiche Laufwerksbuchstaben und Mount Points.
- Finde dein Benutzerverzeichnis.
- Erkläre den Unterschied zwischen
C:\Users\...und/home/....
Aufgabe 5: Netzwerkdienste prüfen
Windows:
Linux:
Auftrag:
- Finde die lokale IP-Adresse.
- Suche offene Ports.
- Kläre, welcher Prozess oder Dienst einen Port verwendet.
Merksatz
Ein Betriebssystem ist nicht nur eine Oberfläche. Es ist die Schicht, die Hardware, Prozesse, Speicher, Dateien, Netzwerk, Dienste, Sicherheit und Anwendungen kontrolliert und miteinander verbindet.