Linux Internals und Systemadministration
Praxisnahe Linux-Systemadministration aus der Perspektive eines Entwicklers: bauen Sie in einem praxisorientierten Kurs ein solides Verständnis für Linux Internals, Administration und Troubleshooting auf.
Arbeiten Sie mit Prozessen, systemd, Logs, Networking und Netzwerkdiensten, Storage, Containern und Shell-Scripting.
Verstehen Sie userspace vs. kernelspace, den syscall-Mechanismus, Memory, POSIX-Grundlagen und die täglichen Linux-Operations.
Sammeln Sie praktische Erfahrung durch geführte Labs (~70 % Hands-on), die auf realistische Troubleshooting-Workflows ausgerichtet sind.
So hilft Ihnen der Kurs: Sie gewinnen die Sicherheit, Linux-Systeme in Entwicklungs-, Embedded- und Ops-Umgebungen zu analysieren, zu verwalten und zu troubleshooten.
Für wen der Kurs gedacht ist: entwickelt für Engineers, die sowohl Kontext zu Linux Internals als auch praktische Systemadministrations-Skills benötigen.
Am Ende des Kurses können Sie typische Linux-Probleme diagnostizieren, Routineaufgaben automatisieren und verstehen, was unter der Haube passiert.
Curriculum
Ausführungsmodell von Linux-Anwendungen
- Userspace vs. kernelspace
- Der syscall-Mechanismus
- Privilege Levels, Access Control und die User-/Kernel-Grenze
- Virtueller Speicher vs. physischer Speicher
- POSIX-Grundlagen und das Linux-Programmiermodell
Container-Grundlagen
- Container vs. virtuelle Maschinen
- Grundlagen zu Images, Containern, Volumes und Networking
- Grundlegende Workflows mit Docker und Podman
- Logs, Prozesse und typische Fehlerszenarien in Containern analysieren
Shell-Grundlagen und Workflows im userspace
- Produktives Arbeiten im Terminal, Shell-Konventionen und gängige Shortcuts
- Standard Streams, Pipes, Umleitungen und Grundlagen der Textverarbeitung
- Im Dateisystem navigieren und wichtige Dateien unter /etc, /proc und /var lesen
- man-Pages und eingebaute Hilfe effizient nutzen
Benutzer, Berechtigungen und Security-Grundlagen
- Benutzer, Gruppen, Ownership, Mode Bits und umask
- sudo, sudoers und praxisnahe Berechtigungsmuster
- SSH-Keys, Agent Forwarding und Grundlagen für sicheren Remote-Zugriff
- Grundlagen der Härtung: Login-Hygiene, exponierte Dienste und fail2ban
- Linux-Sicherheitsframeworks: SELinux- und AppArmor-Grundlagen
Prozessmanagement und Scheduling
- Prozesse, Daemons und Jobs
- ps, top, htop, pgrep, kill
- Scheduling-Grundlagen und Resource Control: CFS, Real-Time Linux, nice und renice
- Prozesszustände und Signale verstehen
- Laufende Systeme analysieren und sicher reagieren
systemd-Grundlagen
- Der Boot-Prozess – eine kurze Erklärung
- Der systemd-Prozess, Unit-Typen und Abhängigkeiten
- Services, Targets und Timer
- Workflows mit systemctl: start, stop, restart, enable und status
- Service-Logs mit journalctl lesen
- Einen einfachen eigenen Service erstellen, testen und troubleshooten
Logging und Monitoring
- journald-Konzepte und typische Nutzungsmuster für journalctl
- /var/log lesen und gängige Log-Orte verstehen
- Grundlagen der Log-Rotation mit logrotate
- Den Systemzustand mit uptime, free, vmstat und iostat prüfen
- Einen praxisnahen Troubleshooting-Workflow aus Logs und Metriken aufbauen
Networking-Grundlagen und Troubleshooting
- Das OSI-Netzwerkmodell
- Ethernet Switching – was Entwickler über Ethernet Switching wissen sollten
- Routing-Grundlagen – was jeder Entwickler über IP-Routing wissen sollte
- IP-Konfiguration und Analyse mit ip, ss, netstat und iptraf
- DNS-Auflösung mit dig, nslookup und /etc/resolv.conf
- Konnektivität mit ping, curl, wget und mtr troubleshooten
- Logs für Network Troubleshooting lesen
- Firewall-Grundlagen: UFW und zentrale Konzepte von iptables / nftables
- Einführung in Netzwerkdienste: SSH-Konfiguration, Apache und systemd-networkd
- /proc und sysfs für fortgeschrittenes Troubleshooting und Network Fine-Tuning nutzen
Storage und Filesystems
- Vom Block Device zum Filesystem. Die Inode-Tabelle – zentrale Konzepte
- Block Devices und Partitionen mit lsblk, fdisk und blkid untersuchen
- Mounting, Unmounting und Grundlagen von /etc/fstab
- Filesystem-Typen und wann man sie verwendet (ext4, xfs und Überblick über neuere Optionen)
- Datenträgerauslastung mit df und du analysieren
- Logs für Storage-Probleme und Hinweise auf Korruption lesen
Package Management und System-Updates
- apt, dnf und Grundlagen des Package Lifecycles
- Repositories, Signaturen, GPG-Keys und vertrauenswürdige Quellen
- Pakete suchen, installieren, entfernen und aktualisieren
- Update-Strategien, Verifikation und Awareness für Rollback-Szenarien
Shell-Scripting für Fortgeschrittene
- Bash-Struktur, Quoting und Arbeiten mit Funktionen
- Input-Parsing, Positionsparameter und Argument Handling
- Arbeiten mit gängigen Datenstrukturen: von Strings und Zahlen bis zu Arrays und JSON-Parsing
- Error Handling
- Wartbare Automatisierungsskripte für Admin-Aufgaben schreiben. Übungen
Geplante Tasks, Performance und operative Muster
- User- vs. System-crontabs
- Cron-Jobs protokollieren und debuggen
- cron vs. systemd timers
- Einführung in Linux Performance Tuning
- End-to-End-Troubleshooting über Prozesse, Netzwerk, Storage und Logs hinweg
Kursablauf
- Teil 1: 09:00–10:30
- Pause: 10:30–10:45
- Teil 2: 10:45–12:15
- Mittagspause: 12:15–13:15
- Teil 3: 13:15–15:15
- Pause: 15:15–15:30
- Teil 4: 15:30–17:30