Linux-Kurs / Was ist Linux? Kernel, Distributionen und Open Source erklärt

Streng genommen ist Linux ein Kernel: der Teil eines Betriebssystems, der die Ressourcen zwischen Hardware und Programmen verwaltet. Was die Leute als "Linux-Betriebssystem" installieren, ist normalerweise eine Distribution, die den Kernel mit Befehlen, Bibliotheken und Werkzeugen zum Installieren und Aktualisieren von Software kombiniert. Diese Unterscheidung erklärt, warum Ubuntu und Rocky Linux beide Linux-basierte Systeme sind, aber nicht genau auf die gleiche Weise funktionieren.

Nachdem Sie gelernt haben, was eine Distribution bietet, verwenden Sie die Lektion zur Auswahl einer Distribution, um eine Familie auszuwählen, und die Lektion zur Einrichtung einer virtuellen Maschine, um Installation und Wiederherstellung vorzubereiten.

Ist Linux ein Kernel oder ein Betriebssystem?

Beide Ausdrücke werden verwendet, beziehen sich jedoch auf unterschiedliche Bereiche. Der Linux-Kernel ist das Kernprogramm eines Betriebssystems. Im Alltag bedeutet ein Linux-Betriebssystem normalerweise das komplette, nutzbare System, das um diesen Kernel herum aufgebaut ist. Dementsprechend beschreiben „den Linux-Kernel aktualisieren“ und „Linux installieren“ nicht dieselbe Aufgabe.

Der Kernel weist laufenden Programmen CPU-Zeit und Speicher zu und verwaltet Dateisysteme, Netzwerke und Hardware über Gerätetreiber. Programme verwenden Schnittstellen, die vom Kernel bereitgestellt werden, anstatt Speichergeräte direkt zu steuern. Die offizielle Linux-Kernel-Dokumentation unterscheidet ebenfalls zwischen dem Kernel und den Schnittstellen, die von Programmen außerhalb des Kernels verwendet werden.

Befehle, die Dateien kopieren, Webbrowser, Webserver und grafische Desktops sind keine Teile des Kernels selbst. Sie laufen im Benutzermodus und rufen bei Bedarf Kernel-Funktionen auf. Viele Linux-Distributionen enthalten Werkzeuge des GNU-Projekts, aber nicht jedes Benutzerprogramm stammt von GNU. Die Erklärung des GNU-Projekts zu GNU und Linux behandelt diese Beziehung ausführlicher.

Was sind die Hauptbestandteile eines Linux-Systems?

Für ein erstes mentales Modell hilft es, an drei Schichten zu denken. Dies ist eine Vereinfachung: Ein echtes System hat auch einen Bootprozess und viele Komponenten dazwischen.

  1. Hardware: die physische CPU, der Speicher, die Datenspeicher, Netzwerkgeräte und andere Komponenten.
  2. Linux-Kernel: die Software, die Hardware-Ressourcen verwaltet und Programmen gemeinsame Einrichtungen bereitstellt.
  3. Benutzerebene: der Bereich, in dem Shells, Befehle, Systemdienste, Bibliotheken, grafische Umgebungen und Anwendungen ausgeführt werden.

Zum Beispiel läuft beim Ausführen eines Befehls in einem Terminal zum Lesen einer Datei der Befehl in der Benutzerebene, während der Vorgang des Öffnens der Datei über den Kernel erfolgt. Systeme mit demselben Kernel können sehr unterschiedlich aussehen, abhängig davon, welche Software auf Benutzerebene sie enthalten, wie z.B. Server-Tools oder eine Desktop-Umgebung.

Was fügt eine Distribution hinzu?

Eine Linux-Distribution wählt den Linux-Kernel aus und kombiniert ihn mit anderer Software, um dann eine Möglichkeit bereitzustellen, das daraus resultierende Betriebssystem zu installieren, zu konfigurieren und zu aktualisieren. Distributionen enthalten typischerweise einen Paketmanager und Software-Repositorien, grundlegende Systemdienste, eine Sicherheits-Update-Richtlinie und Dokumentation. Die Einführung des Debian-Projekts beschreibt eine Distribution ebenfalls als ein komplettes Betriebssystem und nicht nur als Kernel.

Ubuntu und Rocky Linux verwenden zum Beispiel beide den Linux-Kernel, aber ihre Paketformate, Software-Verwaltungstools, Standardkonfigurationen und Support-Richtlinien unterscheiden sich. Beim Befolgen von Anweisungen ist es nützlich zu fragen, ob ein Schritt den Linux-Kernel betrifft, ein Werkzeug, das in vielen Distributionen üblich ist, oder eine Methode, die spezifisch für eine Distribution ist. Die Wahl einer Distribution gehört zu Lektion 02; für den Moment ist der wichtigste Punkt, dass das Teilen eines Kernels nicht zwei vollständige Systeme identisch macht.

Was bedeutet Open Source?

Open Source bedeutet mehr, als nur den Quellcode einsehen zu können. Unter der jeweils geltenden Lizenz muss es den Menschen erlaubt sein, die Software zu verwenden, zu ändern und weiterzuverbreiten. Die Open-Source-Definition der Open Source Initiative enthält Bedingungen, die die Verfügbarkeit des Quellcodes, die Weiterverbreitung und abgeleitete Werke abdecken.

Open Source unterscheidet sich auch von „kostenlos verfügbar“. Software kann kostenlos heruntergeladen werden, ohne dass die Erlaubnis erteilt wird, sie zu ändern oder weiterzuverbreiten. Andererseits kann Open-Source-Software verkauft werden, und ein Unternehmen kann für Support Gebühren verlangen. Die Komponenten einer Distribution verwenden nicht unbedingt alle dieselbe Lizenz oder qualifizieren sich alle als Open Source. Überprüfen Sie daher die entsprechende Lizenz, bevor Sie sich auf bestimmte Rechte zum Verwenden, Ändern oder Weiterverbreiten eines Programms verlassen.

Was können Sie auf Ihrem eigenen System überprüfen?

Wenn Sie Zugriff auf einen Linux-Computer oder eine virtuelle Maschine haben, zeigt dieser Befehl die laufende Kernel-Version:

uname -r

Der Name und die Version der Distribution sind normalerweise in dieser Datei verfügbar:

cat /etc/os-release

Im Output ist PRETTY_NAME ein menschenlesbarer Distributionsname, während ID und VERSION_ID die Distribution und ihre Version identifizieren. Das Ergebnis von uname -r und die Distributionsversion beschreiben unterschiedliche Dinge, daher müssen ihre Zahlen nicht übereinstimmen. Einige minimale oder spezialisierte Systeme haben möglicherweise kein /etc/os-release oder zeigen andere Details an.

Wichtige Punkte zum Merken

  • Kernel: der Kern des Betriebssystems, der Hardware-Ressourcen verwaltet und gemeinsame Einrichtungen für Programme bereitstellt.
  • Benutzerbereich: der Bereich, in dem Shells, Befehle, Dienste und Anwendungen ausgeführt werden.
  • Distribution: ein vollständiges System, das den Linux-Kernel mit anderer Software und Werkzeugen für Installation und Verwaltung bündelt.
  • Open Source: Software, deren Lizenz die Nutzung, Modifikation und Weiterverbreitung unter ihren Bedingungen erlaubt.

Für die Geschichte, wie Linux begann und sich entwickelte, siehe Eine Geschichte von Linux: Vom Hobbyprojekt 1991 zur globalen Infrastruktur. Diese Lektion konzentriert sich stattdessen auf die Komponenten und Terminologie eines heutigen Linux-Systems.