Das Verzeichnis kernel

Einige Kernel-Funktionalitäten — alles was zu Dateisystemen, Speicherverwaltung und Netzwerken gehört — haben eigene Verzeichnisbäume. Das Verzeichnis kernel enthält alle anderen grundlegenden Funktionalitäten.

Die wichtigste dieser Funktionalitäten ist das Scheduling. sched.c und <linux/sched.h> können daher als wichtigste Quelldateien im Linux-Kernel angesehen werden. Neben dem Scheduler selbst, der von schedule implementiert wird, definiert diese Datei die Systemaufrufe, mit denen die Prioritäten der Prozesse gesteuert werden, sowie außerdem die Mechanismen zum Schlafen und Aufwachen.

Die Systemaufrufe fork und exit werden von zwei gleichnamigen Dateien implementiert. Es handelt sich um umfassende und wohlstrukturierte Dateien, die sich um alles kümmern, was mit dem Erzeugen und Zerstören von Prozessen zu tun hat.

Die Ausgabe von Kernel-Meldungen ist in printk.c implementiert, wo Sie auch die Konsolenverwaltung finden. Der Konsolen-Code ist nicht trivial, denn das Konzept einer “Konsole” ist heutzutage alles andere als trivial und umfaßt den Textbildschirm (entweder nativ oder Framebuffer-basiert), die serielle Schnittstelle und sogar die Drucker-Schnittstelle.

Weitere in diesem Verzeichnis implementierte Funktionalitäten sind das Zeit-Management (time.c), der Kernel-Timer (timer.c), die Auslieferung von und der Umgang mit Signalen (signal.c), das Modul-System (module.c), der kmod-Thread (kmod.c), das systemweite Power Management (pm.c), Tasklets (softirq.c) und die Funktion panic (panic.c).