Linux ist der Betriebssystemkernel: die privilegierte Software, die Prozessoren, Speicher, Geräte, Prozesse und allgemeine Ressourcenabstraktionen verwaltet. Ein vollständiges Linux-System umfasst außerdem Bibliotheken, Werkzeuge, Dienste, Shells und grafische Software im User-Space sowie die Richtlinien einer Distribution.
Kernel · Lektion 1
Überblick über den Kernel
Erfahre, wie der Linux-Kernel Hardware, Ressourcen, Isolation und Anfragen aus dem User-Space vermittelt.
Hardwareressourcen
Prozessoren führen Anweisungen aus, Speicher hält aktive Zustände und Controller verbinden Massenspeicher, Netzwerke, Bildschirme, Eingabegeräte und andere Peripherie. Hardware stellt architektur- und gerätespezifische Mechanismen bereit und keine einzelne sichere Schnittstelle für jede Anwendung.
Der Kernel initialisiert und steuert diese Ressourcen durch Architekturcode und Gerätetreiber. Er behandelt Interrupts, DMA-Koordination, Zeitgeber und Energieverwaltungsereignisse und setzt dabei Zugriffsgrenzen zwischen Arbeitslasten durch.
Welche Schicht koordiniert unter Linux gewöhnlich Gerätetreiber und Hardware-Interrupts?
Zuständigkeiten des Kernels
Zu den wichtigsten Zuständigkeiten gehören:
- ausführungsbereite Threads auf CPUs einzuplanen
- virtuelle Adressräume zu erstellen und zu isolieren
- Prozesszugangsdaten, Berechtigungen und Sicherheitsrichtlinien durchzusetzen
- Dateisystem-, Netzwerk-, IPC- und Geräteschnittstellen bereitzustellen
- Signale, Zeitgeber und den Prozesslebenszyklus zu behandeln
- Ressourcen zuzuweisen, abzurechnen und zurückzugewinnen
Linux wird gewöhnlich als monolithischer Kernel bezeichnet, weil zentrale Dienste und viele Treiber in einem einzigen privilegierten Kerneladressraum laufen. Zugleich ist er modular: Unterstützte Komponenten können als Kernelmodule geladen und entladen werden. Ein Fehler in privilegiertem Kernelcode kann das gesamte System gefährden, wodurch Kernelaktualisierungen und die Herkunft von Modulen sicherheitskritisch sind.
Was verwaltet der Kernel-Scheduler?
User-Space
Der User-Space enthält gewöhnliche Prozesse: init und Dienste, Befehlszeilenwerkzeuge, Sprachlaufzeiten, Datenbanken, Shells und Desktop-Anwendungen. Hardwareprivilegien verhindern, dass diese Programme viele vertrauliche Anweisungen unmittelbar ausführen oder auf beliebigen Kernelspeicher zugreifen.
Prozesse fordern Kernelarbeit über Systemaufrufe an und interagieren mit bereitgestellten Schnittstellen wie Dateideskriptoren, Sockets, Geräteknoten, procfs, sysfs, Netlink und Speicherabbildungen. Bibliotheken kapseln diese Schnittstellen häufig in übergeordneten APIs.
root im User-Space besitzt aufgrund von Richtlinien weitreichende Berechtigungen, führt seine Anweisungen aber gewöhnlich weiterhin im Benutzermodus des Prozessors aus. Benutzeridentität und CPU-Privilegienmodus sind getrennte Konzepte.
Führt eine gewöhnliche Anwendung im Besitz von root alle ihre Anweisungen im Kernelmodus aus?
Grenzen und Abstraktionen
Der Kernel stellt virtuelle Prozesse, Dateien, Sockets und Adressräume bereit, statt die rohe physische Maschine unmittelbar offenzulegen. Diese Abstraktionen unterstützen Isolation und Portabilität, sind für sich allein aber keine perfekten Sicherheitsgrenzen. Namensräume, cgroups, Capabilities, Sicherheitsmodule, seccomp und Virtualisierung ergänzen spezialisierte Kontrollen.
Frage bei der Fehlersuche, welcher Schicht das Verhalten gehört: Anwendung, Bibliothek, Systemaufrufschnittstelle, Dateisystem, Treiber, Kernel-Subsystem, Firmware oder Hardware. Belege aus der falschen Schicht können zu falschen Lösungen führen.
Was ist ein Systemaufruf?
Nutze Kernelmodule unter Linux verwalten, um einen modularen Teil des Kernels in einer kontrollierten Umgebung zu beobachten.
Lektion abgeschlossen
Sie haben Überblick über den Kernel abgeschlossen
Du kannst den Kernel nun zwischen physischen Ressourcen und isolierten User-Space-Prozessen einordnen.
Setze Treiber und Architekturcode mit der Hardwaresteuerung in Beziehung.
Bestimme Zuständigkeiten für Scheduling, Speicher, Sicherheit, Dateisystem und Netzwerk.
Behandle root-Zugangsdaten und den Kernelmodus des Prozessors als getrennte Konzepte.
Verorte die Interaktion zwischen Benutzer und Kernel an kontrollierten Laufzeitschnittstellen.
Lernfortschritt speichern
Erstellen Sie ein kostenloses Konto, um diese Lektion zu speichern und auf jedem Gerät weiterzulernen.
Kostenloses Konto erstellen