Grundlagen

Was ist Linux: Kernel, Distributionen und Dateisystem einfach erklärt

Aktualisiert: · Skillaria.Top

Linux ist der Kernel eines quelloffenen Betriebssystems, der Prozessor, Speicher, Festplatten und Netzwerk verwaltet; zusammen mit Dienstprogrammen, Paketmanager und Init-System ergibt er eine Distribution wie Ubuntu, Debian oder Fedora. Linux läuft auf den meisten Servern, in Containern und in der Cloud, deshalb ist der Umgang damit eine Grundfähigkeit für DevOps-Ingenieure und Systemadministratoren.

Linux ist der Kernel eines quelloffenen Betriebssystems, um den herum vollständige Systeme gebaut werden: Server, Desktops und eingebettete Geräte. Wenn von einem „Linux-Server“ die Rede ist, meint man nicht ein einzelnes Programm, sondern eine Distribution — den Kernel plus Dienstprogramme, Bibliotheken, Paketmanager und Init-System. Wir klären, was Linux wirklich ist, aus welchen Teilen es besteht und warum praktisch kein DevOps-Ingenieur ohne es auskommt.

Linux ist der Kernel, nicht das ganze System

Genau genommen ist Linux nur der Kernel. Der Kernel ist das Programm, das nach dem Bootloader als Erstes startet und während des gesamten Betriebs im Speicher bleibt. Er verteilt Rechenzeit zwischen Prozessen, vergibt Speicher, arbeitet über Treiber mit Festplatten und Netzwerkkarten und setzt die Zugriffsrechte durch.

Gewöhnliche Programme greifen nicht direkt auf die Hardware zu. Speichert ein Editor eine Datei, führt er einen Systemaufruf aus (open, write, close), und der Kernel entscheidet, auf welchen Plattenblock geschrieben wird und ob der Prozess dazu berechtigt ist. Diese Trennung macht das System stabil: Ein abgestürztes Programm reißt nicht den ganzen Computer mit.

Die Kernel-Version lässt sich mit einem Befehl anzeigen:

$ uname -r
6.8.0-45-generic

Linus Torvalds hat den Kernel 1991 geschrieben, und seither wird er offen entwickelt: Der Quellcode steht unter der GNU GPL Version 2, jeder darf ihn lesen, verändern und unter denselben Bedingungen weitergeben.

Was eine Linux-Distribution ist

Ein Kernel allein genügt nicht: Man braucht eine Shell für die Eingabe von Befehlen, Werkzeuge für Dateien, Bibliotheken und einen Programminstaller. Die meisten Grundwerkzeuge (ls, cp, bash, grep) stammen aus dem GNU-Projekt, weshalb man das System manchmal GNU/Linux nennt. Der Kernel samt dieser Softwaresammlung, die als Ganzes zusammengestellt und getestet wird, heißt Distribution.

Distributionen unterscheiden sich vor allem durch den Paketmanager, die Update-Strategie und die Zielgruppe.

FamilieBeispielePaketeWo man sie findet
DebianDebian, Ubuntu, Linux Mint.deb, aptServer, Clouds, Arbeitsplatzrechner
Red HatRHEL, Fedora, Rocky Linux, AlmaLinux.rpm, dnfUnternehmensserver
AlpineAlpine LinuxapkDocker-Images, wo kleine Größe zählt
ArchArch Linux, ManjaropacmanEnthusiasten, aktuelle Paketversionen

Welche Distribution vorliegt, verrät die Datei /etc/os-release:

$ cat /etc/os-release
PRETTY_NAME="Ubuntu 24.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
ID=ubuntu
ID_LIKE=debian

Zum Lernen und für Server wählt man am häufigsten Ubuntu LTS oder Debian: Dazu gibt es viel Dokumentation, und Befehle aus Anleitungen im Netz funktionieren fast immer ohne Änderungen.

Aufbau des Systems: Kernel, Shell, Benutzerbereich

Linux lässt sich gut in Schichten denken. Unten liegt die Hardware. Darüber der Kernel. Darüber der Benutzerbereich mit Systemdiensten, Bibliotheken (zum Beispiel glibc) und Programmen. Zwischen Ihnen und dem System steht die Shell — meist bash —, die Befehle entgegennimmt und Programme startet.

  • Kernel — Prozesse, Speicher, Dateisysteme, Netzwerk, Treiber.
  • Init-System — der erste Prozess mit PID 1; bei den meisten modernen Distributionen ist das systemd. Er startet die übrigen Dienste.
  • Dienste (Daemons) — Webserver, SSH-Server, cron, Protokollierung.
  • Shell und Werkzeuge — womit Sie im Terminal arbeiten.

Auf einem Server gibt es meist gar keine grafische Oberfläche: Der Administrator verbindet sich per SSH und arbeitet in der Kommandozeile. Deshalb heißt Linux lernen vor allem Terminal lernen.

Das Linux-Dateisystem: alles beginnt bei der Wurzel /

Linux kennt keine Laufwerke C: oder D:. Es gibt einen einzigen Verzeichnisbaum, der bei der Wurzel — / — beginnt. Alle Festplatten, USB-Sticks und Netzwerkfreigaben werden in ein Verzeichnis dieses Baums eingehängt (gemountet). Ein weiteres Prinzip: Fast alles in Linux ist als Datei dargestellt — gewöhnliche Dateien, Verzeichnisse, Geräte und sogar Informationen über Prozesse.

$ ls /
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr

Die Anordnung der Verzeichnisse beschreibt der Standard FHS (Filesystem Hierarchy Standard). Deshalb liegen Konfigurationsdateien in jeder Distribution ungefähr an denselben Stellen.

VerzeichnisWas dort liegt
/etcKonfiguration von System und Diensten: /etc/passwd, /etc/ssh/sshd_config, /etc/fstab
/homeHome-Verzeichnisse der Benutzer: /home/alice
/rootHome-Verzeichnis des Superusers root
/varveränderliche Daten: Logs in /var/log, Paket-Cache, Datenbanken, Mail-Warteschlangen
/usrinstallierte Programme und Bibliotheken: /usr/bin, /usr/lib
/bin, /sbingrundlegende Befehle; in modernen Distributionen Links auf /usr/bin und /usr/sbin
/bootder Kernel (vmlinuz-*), initramfs und Dateien des Bootloaders
/devGerätedateien: /dev/sda, /dev/null
/proc, /sysvirtuelle Dateisysteme: Der Kernel zeigt darüber Prozesse und Einstellungen
/tmptemporäre Dateien, beim Neustart oft geleert
/optFremdsoftware, die als Ganzes geliefert wird
/mnt, /mediaEinhängepunkte für Festplatten und Wechselmedien

Absolute und relative Pfade

Ein absoluter Pfad beginnt mit / und hängt nicht davon ab, wo Sie sich befinden: /var/log/syslog. Ein relativer Pfad wird vom aktuellen Verzeichnis aus gezählt: ../logs/app.log. Der Punkt . ist das aktuelle Verzeichnis, zwei Punkte .. das übergeordnete, die Tilde ~ Ihr Home-Verzeichnis.

$ pwd
/home/alice
$ cd /var/log
$ cd ..
$ pwd
/var
$ cd ~
$ pwd
/home/alice

/proc: das System als Dateisammlung

Das Verzeichnis /proc liegt nicht auf der Festplatte — der Kernel erzeugt es im Moment des Zugriffs. Zum Beispiel zeigt cat /proc/cpuinfo die Prozessoren, cat /proc/meminfo den Speicher, und jeder Prozess hat ein Verzeichnis /proc/<PID> mit seiner Befehlszeile und seinen geöffneten Dateien. Viele Werkzeuge wie ps und top lesen einfach diese Dateien.

Einhängen (Mounten)

Der Befehl df -h zeigt, welche Dateisysteme wo eingehängt sind und wie viel Platz sie haben:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2        40G   12G   26G  32% /
/dev/sda1       1.1G  6.1M  1.1G   1% /boot/efi
tmpfs           393M  1.2M  392M   1% /run

Dauerhafte Einhängepunkte stehen in /etc/fstab — diese Datei liest das System beim Start.

Wie Linux startet: vom Einschalten bis zur Anmeldung

Den Startvorgang zu verstehen hilft, wenn ein Server nach einem Neustart „nicht hochkommt“. Vereinfacht sieht die Kette so aus:

  1. Firmware (UEFI oder BIOS) prüft die Hardware und findet den Bootloader.
  2. Der Bootloader GRUB zeigt das Menü und lädt den Kernel aus /boot und das initramfs-Image in den Speicher.
  3. Der Kernel initialisiert die Hardware und findet mithilfe von initramfs das Root-Dateisystem und hängt es ein.
  4. systemd startet als Prozess mit PID 1 und bringt die Dienste in der richtigen Reihenfolge hoch: Netzwerk, Protokollierung, SSH, cron und die übrigen.
  5. Die Anmeldeaufforderung erscheint auf der Konsole oder per SSH.

Kernel-Meldungen aus dem Start zeigen sudo dmesg oder journalctl -k, die Startzeit nach Phasen systemd-analyze.

Benutzer und Rechte — eingebauter Schutz

Linux ist von Anfang an ein Mehrbenutzersystem. Jede Datei hat einen Besitzer, eine Gruppe und Rechte zum Lesen, Schreiben und Ausführen. Ein normaler Benutzer kann keine Systemdateien beschädigen, und administrative Aktionen laufen über sudo. Der Superuser root darf alles, deshalb ist es nicht üblich, dauerhaft als root zu arbeiten.

$ ls -l /etc/passwd
-rw-r--r-- 1 root root 2847 Oct  1 10:12 /etc/passwd

Die Zeile liest sich so: eine gewöhnliche Datei; der Besitzer root kann lesen und schreiben; alle anderen dürfen nur lesen.

Warum DevOps-Ingenieure Linux brauchen

Für einen DevOps-Ingenieur ist Linux nicht nur ein Thema unter vielen, sondern die Umgebung, in der fast die ganze Arbeit stattfindet. Hier begegnet er ihm täglich:

  • Server. Webserver, Datenbanken und Warteschlangen laufen in den allermeisten Fällen unter Linux.
  • Container. Docker nutzt Mechanismen des Linux-Kernels — Namespaces und cgroups. Ein Container ist ein isolierter Linux-Prozess, und ein Image basiert auf einer Distribution wie Debian oder Alpine.
  • Clouds und Kubernetes. Virtuelle Maschinen in der Cloud und Cluster-Knoten sind ebenfalls Linux.
  • CI/CD. Builds in Pipelines laufen auf Linux-Runnern, und Build-Skripte werden in bash geschrieben.
  • Diagnose. Fällt ein Dienst aus, sucht man die Antwort in journalctl, top, ss, df — ohne diese Werkzeuge ist keine Störungsanalyse möglich.

Das Mindestmaß an Kenntnissen: sich sicher im Dateisystem bewegen, Rechte verstehen, Pakete installieren, Dienste mit systemctl verwalten, Logs lesen, mit Prozessen, Netzwerk und SSH arbeiten und einfache bash-Skripte schreiben.

Wie Sie mit dem Lernen beginnen

Sie müssen Linux nicht anstelle Ihres Hauptsystems installieren. Es gibt mehrere sichere Wege, es auszuprobieren:

  • Virtuelle Maschine (VirtualBox, VMware) mit Ubuntu Server — Sie können sie kaputt machen und aus einem Snapshot wiederherstellen.
  • WSL unter Windows — eine vollständige Ubuntu-Umgebung im Windows-Terminal: wsl --install.
  • Cloud-Server — die realitätsnaheste Option, Verbindung per SSH.
  • Docker-Container — docker run -it --rm ubuntu bash öffnet in Sekunden eine Shell.

Beginnen Sie mit der Navigation (pwd, ls, cd), dann Dateien und Rechte, dann Pakete, Prozesse und Dienste. Die eingebaute Hilfe ist immer griffbereit: man ls oder ls --help.

Fazit

Linux ist der Kernel, und eine Distribution ist der Kernel zusammen mit Werkzeugen, Bibliotheken, Paketmanager und systemd. Das gesamte System ist ein Verzeichnisbaum ab der Wurzel /, in dem Konfigurationen in /etc, Logs in /var/log und Programme in /usr liegen. Wer versteht, was Linux ist und wie es startet, hat das Fundament für Server, Container und Clouds. Dateisystem, Systemstart und Administration behandelt unser Linux-Kurs praxisnah Schritt für Schritt.

Häufige Fragen

Ist Linux ein Betriebssystem oder ein Kernel?

Formal ist Linux der Kernel; das Betriebssystem bildet die Distribution: Kernel plus GNU-Werkzeuge, Bibliotheken, Paketmanager und Init-System. Im Alltag bedeutet „Linux“ meist das ganze System.

Ist Linux kostenlos?

Der Kernel und die meisten Distributionen (Ubuntu, Debian, Fedora) sind unter freien Lizenzen kostenlos. Kostenpflichtig sind Support-Abonnements, etwa für Red Hat Enterprise Linux.

Welche Linux-Distribution sollte ein Einsteiger wählen?

Für Server und das Erlernen der Administration eignen sich Ubuntu LTS und Debian: stabile Versionen und viel Dokumentation. Die Kenntnisse lassen sich zwischen Distributionen übertragen; die Unterschiede liegen vor allem bei den Paketmanagern.

Muss ich Linux können, um mit Docker zu arbeiten?

Ja, zumindest die Grundlagen. Container basieren auf Mechanismen des Linux-Kernels, in den Images stecken Distributionen, und die Fehlersuche läuft über Shell-Befehle.

Worin unterscheidet sich Linux von Unix?

Unix ist eine Familie von Systemen aus den 1970er-Jahren, Linux ist ein unabhängig geschriebener Kernel, der die Ideen und Schnittstellen von Unix (Standard POSIX) nachbildet. Deshalb sind Befehle und Arbeitsweise sehr ähnlich.

Das Thema im Video lernen

Dieses Thema wird im Kurs „Linux: с нуля до уверенного администрирования“ ausführlich mit Praxis behandelt.

Zum Kurs