10 Punkte von GN⁺ 2025-11-28 | 1 Kommentare | Auf WhatsApp teilen
  • Der Linux-Kernel ist kein einzelner Prozess, sondern die zentrale Schicht, die das gesamte System bildet – eine ständig präsente Struktur, die Hardware und Software verbindet
  • Er koordiniert Systemaufrufe, Interrupts und Scheduling für Benutzerprozesse und hält deren Ausführung aufrecht
  • Der Kernel arbeitet als virtualisierte, gemappte, isolierte und kontrollierte mehrschichtige Struktur
  • Als Lernmaterial werden zentrale Quelldateien wie init/main.c, kernel/fork.c, include/linux/sched.h und arch/x86/kernel/entry_64.S vorgestellt
  • Wichtig als grundlegendes Lernmaterial, um Struktur und Rolle des Kernels zu verstehen

Das Wesen des Kernels

  • Der Kernel ist kein Prozess, sondern das System selbst – eine ständig vorhandene autoritative Schicht, die Hardware und Software verbindet
    • Er unterstützt die Ausführung von Benutzerprozessen und spielt die zentrale Rolle bei der Verwaltung von Systemressourcen
  • Der Kernel ist die Instanz, die Prozesse bedient und Benutzeraufgaben aufrechterhält, indem er Systemaufrufe (syscalls), Interrupts und Scheduling koordiniert

Die Schichtenstruktur des Systems

  • Der Kernel besteht aus einer virtualisierten, gemappten, isolierten und kontrollierten Struktur
    • Zur Laufzeit interagieren mehrere Schichten miteinander und sorgen so für Systemstabilität und Kontrolle

Dateien zum Lernen

  • Zum Verständnis der Kernel-Struktur werden die folgenden vier wichtigen Dateien vorgestellt
    • init/main.c
    • kernel/fork.c
    • include/linux/sched.h
    • arch/x86/kernel/entry_64.S

Fragen zur Verständnisprüfung

  • Grundlegender Unterschied zwischen Kernel und Prozess: B. Der Kernel ist kein Prozess, sondern das System selbst
  • Wie der Kernel Benutzerprozesse unterstützt: B. Durch die Koordination von Systemaufrufen, Interrupts und Scheduling
  • Die hierarchische Eigenschaft des Kernels: C. Eine virtualisierte, gemappte, isolierte und kontrollierte Struktur

1 Kommentare

 
GN⁺ 2025-11-28
Hacker-News-Kommentare
  • Wirklich ein tolles Projekt. Es erinnert mich an das Layout einer Talmud-Seite — diese Struktur, in der sich über Jahrhunderte hinweg Schicht um Schicht Kommentare auf einer einzigen Seite ansammeln, fand ich faszinierend.
    Code ist natürlich nicht in ganz derselben Weise linear, aber auch in diesem Linux Kernel Explorer spürt man eine ähnliche „Schichtung von Kommentaren“.
    Besonders gefällt mir das seitlich angeordnete Notizformat.
    Verwandte Links: Talmud-Seitenlayout, Notizen zum Talmud-Layout

    • Der Talmud ist gewissermaßen der Ur-Hypertext (ich bin nicht ganz sicher, aber so fühlt es sich an)
  • Ich habe wohl irgendetwas übersehen. Den Kernel-Sourcecode konnte man doch schon seit Langem im Web durchsuchen — zum Beispiel über Seiten wie Elixir Bootlin.
    Mir ist daher nicht klar, welche zusätzlichen Funktionen das hier bietet. Bootlin hat sogar eine Suche, die ich hier nicht sehe.
    Heutzutage hätte ich etwas wie LLM-basierte Code-Erklärungen oder Abhängigkeitsgraphen erwartet.

    • Ich hatte mit „dem goldenen Zeitalter des AI-Zeitalters!“ gerechnet, aber tatsächlich wirkt es eher wie ein AI-Remix, der bestehende Funktionen nur in ein neues Web-Framework verpackt, was etwas enttäuschend ist.
  • Die Rate Limits der GitHub-API greifen, daher wird die Dateiliste nicht angezeigt.
    Wer dasselbe Problem hat, kann seine IP per VPN oder Cloudflare Wrap ändern, dann klappt es.
    Als Entwickler würde ich eine GitHub-Login-Option oder eine Caching-Schicht ergänzen, damit neue Nutzer leichter darauf zugreifen können.

    • Ich habe eine Antwort bekommen, in der man sich für den Hinweis bedankt hat. Man habe erkannt, dass die Implementierung zu simpel war, und wolle sie verbessern.
  • Ich mag solche Tools wirklich sehr. Ich erinnere mich, dass ich einmal mit einem ähnlichen Tool von Red Hat den Sourcecode brasilianischer elektronischer Wahlmaschinen analysiert habe.
    Damals war ich damit beauftragt, doppelte Dateien und Funktionen zu bereinigen, und es war eine Desktop-Anwendung auf Basis einer Motif-UI.

  • Mir gefällt diese Idee wirklich sehr. Wenn man Code in komplexen Projekten erkundet, ist es oft schwierig zu wissen, wo man anfangen soll, aber dieses Tool hilft dabei, die Kernstruktur schnell zu erfassen.
    Allerdings habe ich einen Bug gefunden — wenn man in Kapitel 2 Verzeichnisse wie „mm/“ öffnet, erscheint der Fehler „Invalid file response“. Vermutlich wird versucht, ein Verzeichnis als Datei zu öffnen.

    • Ich habe aus demselben Grund auch ein paar Projekte gebaut, die die Einstiegshürde in den Linux-Kernel senken sollen.
  • Dieser Explorer scheint genau das Tool zu sein, das viele Entwickler gebraucht haben.
    Der Kernel-Sourcecode ist riesig und komplex, sodass man oft nicht weiß, wo man anfangen soll, aber das hier zeigt die Struktur wie eine Art Landkarte.
    Man kann VFS oder die Verbindung von Modulen auf einen Blick erfassen, und auch wenn es Probleme wie API-Beschränkungen oder Verzeichnisfehler gibt, ist es ein hervorragender erster Schritt.

    • Das erinnert mich an das frühere LXR.
      Es hat mir beim Einstieg in die Linux-Arbeit sehr geholfen, und später gab es mit Elixir eine Python-Neuimplementierung sowie den Sourcecode.
    • Andererseits bleibt auch die Frage: „Wozu ist das gut, wenn man weder master pullen noch grep oder gmake verwenden kann?“
  • Elixir Bootlin gibt es schon lange, aber es funktioniert auf Mobilgeräten besser.

    • Ich habe eine Antwort bekommen, in der man sich für das Feedback zur Mobilfähigkeit bedankt und Verbesserungen angekündigt hat.
    • Elixir unterstützt Tag-Navigation und eignet sich daher besser zur Erkundung des gesamten Codes statt nur einzelner Dateien.
  • Sieht wirklich großartig aus. Der Autor war fabiomaia.eu.
    Ich überlege, ihn zu bitten, ein ähnliches Tool für Python zu bauen.
    Das könnte nützlich sein, um neuen Ingenieuren die Struktur des CPython-Repositorys beizubringen.

    • Es gab auch die Reaktion: „Warum baust du es nicht einfach selbst?“ Im Open-Source-Bereich ist es üblich, schnelle Implementierungen und Reaktionen auf Issues zu erwarten.
  • Ich frage mich gerade — welcher Teil des Kernel-Codes ist wohl am beeindruckendsten?

    • Wahrscheinlich fs/select.c oder der Teil mit dem Polling-Mechanismus.
  • In Kapitel 1 lässt sich die Datei arch/x86/kernel/entry_64.S nicht öffnen.
    Sie erscheint auch nicht im Verzeichnisbaum.
    (Es gab einen anderen Kommentar, der dieses Problem erwähnt hat, aber der scheint gelöscht worden zu sein.)

    • Wahrscheinlich ein Tippfehler im Pfad. Tatsächlich müsste es arch/x86/entry/entry_64.S heißen.