Linux-Kernel-Explorer
(reverser.dev)- 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.hundarch/x86/kernel/entry_64.Svorgestellt - 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.ckernel/fork.cinclude/linux/sched.harch/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
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
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.
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 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.
Florent Revest verdient ebenfalls großes Lob.
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.
Es hat mir beim Einstieg in die Linux-Arbeit sehr geholfen, und später gab es mit Elixir eine Python-Neuimplementierung sowie den Sourcecode.
masterpullen nochgrepodergmakeverwenden kann?“Elixir Bootlin gibt es schon lange, aber es funktioniert auf Mobilgeräten besser.
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.
Ich frage mich gerade — welcher Teil des Kernel-Codes ist wohl am beeindruckendsten?
In Kapitel 1 lässt sich die Datei
arch/x86/kernel/entry_64.Snicht ö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.)
arch/x86/entry/entry_64.Sheißen.