Home / LinuxUser / 2002 / 12 / Von init an

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Wie Linux sich die Stiefel anzieht

Von init an

01.12.2002 Nach dem Einschalten zeigt ein Computer viele kryptische Nachrichten an, bevor er sich mit dem Login-Bildschirm bereit meldet. Wir zeigen, was im Hintergrund des Boot-Vorgangs abläuft.

Der Boot-Vorgang hat schon etwas Faszinierendes. Am Anfang steht ein Haufen Silizium mit einem winzigen Progrämmchen im BIOS, das gerade einmal ein ebenso winziges Programm von der Festplatte nachladen kann. Dann passiert irgend etwas, und am Ende bietet eine vollwertige Workstation ihre Dienste an – mit der Herrschaft über komplexe Hardware-Merkmale und Peripheriegeräte, mit einer Netzwerk-Anbindung und zahlreichen laufenden Servern, kurz – ein richtiges Linux-System.

Die wesentliche Aufgabe des Boot-Vorgangs ist, ganz einfach zusammengefasst, die Initialisierung der Hard- und Software. Zuerst werden die Datenstrukturen des Betriebssystemkerns vorbereitet, anschließend die vorhandene Hardware rudimentär geprüft und alle passenden Treiber gestartet. Damit schafft das System vor allem die Voraussetzung für das Nachladen des eigentlichen Betriebssystems. Wenn BIOS und Boot-Sektor ihre Aufgabe getan haben, geht das Wissen über die Festplatte nämlich zunächst wieder verloren.

Anschließend führt Linux bereits normale Programme aus. Diese beschäftigen sich am Anfang ebenfalls noch mit der Hardware: Jetzt werden exotischere Peripheriegeräte initialisiert. Daneben finden Wartungsaufgaben statt, z. B. prüft das System die Festplatte ganz kurz auf Fehler oder räumt Bereiche mit temporären Daten auf. Schließlich werden die diversen Daemons und Server-Dienste gestartet, die ein Unix-System erst richtig zum Leben erwecken. Dieses geschieht in einer genau abgestimmten und sorgfältig durchdachten Reihenfolge.

Kernelspace und Userspace

Bevor wir uns die einzelnen Schritte im Detail ansehen, sollten wir noch eine wichtige Unterscheidung treffen: Wo und wie werden die einzelnen Funktionen ausgeführt? Davon hängt schließlich ab, ob und wie leicht wir die Vorgänge manipulieren können.

Die allerersten Schritte nach dem Einschalten gehören noch gar nicht in den Aufgabenbereich von Linux. Das BIOS ist für Normalsterbliche ohnehin unantastbar; allenfalls installiert man einmal ein Update. Auch das erste vom BIOS geladene Programm aus dem Boot-Sektor ist noch kein Teil des eigentlichen Betriebssystems. Dieser so genannte Bootloader hat lediglich die Aufgabe, das Betriebssystem zu starten. Bekannte Exemplare dieser Gattung sind neben dem Bootloader von Windows NT die in der Linux-Welt verbreiteten Programme LILO und GRUB. Allen gemeinsam: Sie laden einen Betriebssystemkern und starten ihn.

Bei allen folgenden Aktionen gibt es bei Unix-Betriebssystemen zwei grundlegend verschiedene Möglichkeiten: Funktionen können im Kernel- oder im Userspace ablaufen. Zu den Kernel-Funktionen gehört beim Booten die Initialisierung der wichtigsten Hardware-Treiber. Was im Kernel passiert, lässt sich nur durch eine Änderung des Linux-Quelltextes und eine Neuübersetzung modifizieren. Stoff für echte Hacker!

Mit Userspace meint man alles, was durch "normale" Programme oder Skripte gesteuert wird. Natürlich interagieren die beiden: Wenn ein Programm aus dem Userspace zum Beispiel auf die Festplatte zugreifen will, ruft es eine entsprechende Funktion aus dem Kernel auf. Und bei Linux wird die Sache durch die Kernel-Module besonders kompliziert. Module sind zwar eindeutig Kernel-Funktionen, doch sie werden durch Programme aus dem Userspace geladen und kontrolliert.

Hardware

Die ersten Meldungen, die an uns vorbeiflimmern, werden also vom Kernel generiert – wir werden uns in diesem Artikel nicht weiter um diese kümmern; schließlich können wir sie ohne tiefes Hintergrundwissen nicht beeinflussen.

Nach zehn oder zwanzig Sekunden ist der Kernel jedoch mit seinen Vorbereitungen fertig und ruft das erste Programm aus dem Userspace auf. Hierbei handelt es sich bei den heute üblichen Distributionen oft um ein ganz kurzes Skript namens linuxrc, das auf einer RAM-Disk gemeinsam mit ein paar Modulen abgelegt ist und noch vom Boot-Sektor geladen wurde. linuxrc soll Treiber und Funktionen laden, die zwar für den weiteren Boot-Vorgang unerlässlich sind, aber nicht in den Kernel einkompiliert wurden. Dazu können Treiber für eine SCSI-Festplatte, verschlüsselte Dateisysteme oder essentielle Netzwerktreiber gehören.

Die Funktionalität rund um linuxrc ist optional – wenn bei der Übersetzung des Kernels bereits alle notwendigen Treiber fest einkompiliert wurden, also keine Module nachgeladen werden müssen, verzichtet man auf linuxrc einschließlich der RAM-Disk. Sie selbst werden sich kaum jemals um dieses Skript kümmern, da das Installationsprogramm Ihrer Distribution ein solches Skript mit allen für Ihren Computer notwendigen Befehlen geschrieben und eine passende RAM-Disk erstellt hat. Wenn Sie Ihren Kernel später einmal verändern sollten, erleichtern Sie sich die Arbeit, indem Sie alle lebensnotwendigen Funktionen fest einkompilieren und nicht in Module auslagern.

Am Ende dieses Abschnittes muss ein wichtiges Ziel erreicht sein: Die weiteren Bestandteile können von der Festplatte nachgeladen werden, d. h. zumindest die so genannte Root-Partition mit den Verzeichnissen /bin, /sbin, /lib, /etc, /dev und /tmp muss zugänglich sein. Sie ist in der Regel noch nicht voll vorbereitet; beispielsweise sind Schreibzugriffe meist noch verboten. Aber zumindest kann der Kernel gezielt auf vordefinierte Abschnitte dieser Partition zugreifen.

Abbildung 1: Zusammenfassung des Boot-Vorgangs

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

1061 Hits
Wertung: 55 Punkte (2 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...