Home / LinuxUser / 2002 / 12 / Von init an

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

War doch klar...
(229 Punkte bei 11 Stimmen)
Pardus Linux am Ende?
(201 Punkte bei 6 Stimmen)
Meinst Du: Patch CD Updates?
(179 Punkte bei 5 Stimmen)
One goes, one comes
(161 Punkte bei 4 Stimmen)
Speichern in der Cloud
(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

904 Hits
Wertung: 69 Punkte (1 Stimme)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

title_2012_02

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

Duden Korrektor unter 64-Bit
Duden Korrektor unter 64-Bit
Tim Schürmann, 06.02.2012 10:36, 0 Kommentare

Der Duden Korrektor bietet eine äußerst nützliche Rechtschreib- und Grammatikkorrektur für LibreOffice und bringt in der aktuellen Version 8 e...

Aktuelle Fragen

rndc reload zone - failed bad zone
Ludwig jun. B., 06.02.2012 16:08, 2 Antworten
Schönen guten Tag, ich habe folgendes Problem. Immer wenn ich folgendes Kommando ausführen bek...
Skype für 64-Bit-Prozessor u. Suse 12.1
Klaus Sigerist, 05.02.2012 11:39, 3 Antworten
Hallo Gemeinde! Ich bin nur ein einfacher Nutzer und habe Probleme mit der Installation von Skyp...
8! Anfängerfrage :) Wie finde ich in Ubuntu die Datenträger (Bild, Text)
samuel leusam, 04.02.2012 15:53, 1 Antworten
Ich habe neu Ubuntu. Wenn ich die SD Karte im Laptop einstecke, erkennt er sie und gibt ihr den N...
OpenSuse 12.1-Service Kit 01/12
Christoph-J. Walter, 28.01.2012 08:52, 2 Antworten
Hallo Gemeinde, ich habe 12.1 neu installiert. Alles in Ordnung! Nun möchte ich das Service Kit (...
Ubuntu 11.10 konfigurieren
Michael Hinz, 27.01.2012 17:52, 1 Antworten
Ubuntu läuft bei mir. Allerdings nur, wenn die Daten-CD eingelegt ist. Unabhängig von Bios-Einste...