Inhaltsverzeichnis
Zusammenfassung
Das Booten und die Initialisierung eines Unix-Systems sind selbst für einem erfahrenen System-Administrator keineswegs trivial. Dieses Kapitel gibt eine kurze Einführung in das Bootkonzept von . Die vorliegende Implementierung der Systeminitialisierung setzt den Standard LSB in Version 1.3.x um (vgl. Abschnitt 12.1.1. “Linux Standard Base (LSB)”).
▪ ipseries;x86;amd64;ia64;ppc
Mit den lapidaren Worten „Uncompressing Linux...“ übernimmt der
Kernel die Kontrolle über die gesamte Hardware des Systems. Er prüft und
setzt die Konsole — oder genauer: die BIOS-Register der Graphikkarte
und das Ausgabeformat auf den Bildschirm —, um danach die Einstellungen
im BIOS zu lesen und die elementaren Schnittstellen des Mainboards zu
initialisieren. In den nächsten Schritten „proben“ die einzelnen
Treiber — die ja Bestandteil des Kernels sind — die vorhandene
Hardware, um sie gegebenenfalls zu initialisieren. Nach dem Überprüfen der
Partitionen und dem Mounten des Root-Dateisystems startet der Kernel das
Programm init. Durch
init wird das eigentliche System
„hochgefahren“ (Unix-Jargon) und die vielen Dienstprogramme und
deren Konfiguration werden so gestartet. Der Kernel verwaltet dann das
gesamte System; er überwacht Rechenzeit für die einzelnen Programme, er
stellt Speicher zur Verfügung und steuert Hardware-Zugriffe.
▪
▪ zseries
Nach dem IPL übernimmt der Kernel die Kontrolle über Ihr System. Er überprüft
und setzt Ihre Konsole und initialisiert die grundlegendsten
Hardware-Interfaces. Anschließend „proben“ Ihre Treiber die
existierende Hardware und initialisieren sie entsprechend. Nach der
Überprüfung der Partitionen und dem Mounten des Root-Filesystems, startet der
Kernel /sbin/init. Durch
init wird das eigentliche System
„hochgefahren“ (Unix-Jargon) und die vielen Dienstprogramme und
deren Konfiguration werden so gestartet. Der Kernel verwaltet dann das
gesamte System; er überwacht Rechenzeit für die einzelnen Programme, er
stellt Speicher zur Verfügung und steuert Hardware-Zugriffe.
▪
Das Programm init ist der für die korrekte Initialisierung des Systems zuständige Prozess; alle Prozesse im System sind also „Kinder“ von init.
Unter allen Programmen nimmt init eine Sonderrolle ein: init wird direkt vom Kernel gestartet und ist immun gegen das Signal 9, mit dem normalerweise jeder Prozess „gekillt“ werden kann. Alle weiteren Prozesse werden entweder von init selbst oder von einem seiner „Kindprozesse“ gestartet.
Konfiguriert wird init zentral über die Datei /etc/inittab; hier werden die so genannten „Runlevels“ definiert (mehr dazu im Abschnitt 13.2. “Die Runlevels”) und es wird festgelegt, welche Dienste und Daemonen in den einzelnen Levels zur Verfügung stehen sollen. Abhängig von den Einträgen in /etc/inittab ruft init verschiedene Skripten auf, die aus Gründen der Übersichtlichkeit im Verzeichnis /etc/init.d zusammengefasst sind.
Der gesamte Hochlauf des Systems — und natürlich auch das Herunterfahren — wird somit einzig und allein vom init-Prozess gesteuert; insofern lässt sich der Kernel quasi als „Hintergrundprozess“ betrachten, dessen Aufgabe darin besteht, die gestarteten Prozesse zu verwalten, ihnen Rechenzeit zuzuteilen und den Zugriff auf die Hardware zu ermöglichen und zu kontrollieren.