Was passiert zwischen boot und login?

Michael Schnupp michas at fsfe.org
Di Aug 16 20:32:59 UTC 2011


Hallo Tobias,

Am 5. August 2011 10:21 schrieb Tobias Bengfort <tobias.bengfort at gmx.net>:
>
> ich moechte gerne lernen, was alles zwischen boot und login passiert.

Was beim Booten genau der Reihe nach passiert, hängt stark von der
Plattform und dem Betriebssystem ab.
Bei einem "normalen" x86-Rechner mit Linux drauf passiert im
Wesentlichen folgendes:
- Der Rechner selbst läd beim Einschalten aus dem Rom das BIOS und startet es.
- Das BIOS läd dann normalerweise den ersten Block der Festplatte, in
dem (der erste Teil) des Bootloaders (z.B. Grub) steht.
- Der Bootloader läd dann den Kernel und gibt ihm ggf. noch Argumente mit.
- Der Kernel initialisiert die wichtigsten Geräte und startet dann den
init-Prozess.
- Init wiederum kümmert sich dann ums Starten aller gewünschten
Dienste, und gibt dir dein Login. (man init)
- Einer der Dienste kann dann ein Desktop-Manager wie kdm oder gdm
sein, der vermutlich x.org startet.
- Wenn du dich über letzteren einloggst, startet dieser dann
vermutlich irgendeine Desktopumgebung wie kde/gnome/etc.
- Eine solche Desktopumgebung startet dann potentiell wiederum einen
ganzen Zoo an Hilfsprogrammen im Hintergrund.

Für so ziemlich jeden Schritt hast du dabei mehrere Alternativen, die
du wiederum nahezu beliebig konfigurieren kannst.
Was also genau passiert hängt also ganz davon ab, was du einsetzt und
wie es konfiguriert ist.

Zum Lernen ist es sinnvoll erstmal mit einem Mini-System ohne
graphische Oberfläche und ähnlichen Schnickschnack anzufangen.

> Der konkrete Anlass dafuer ist, dass ich arch linux installiert habe und
> dann nicht wusste, wie und wo ich was starten muss (z.B. dbus)
> Andere Sachen musste ich gar nicht starten, die waren einfach schon da,
> ohne dass ich wuesste wo (z.B. alsa).

Dienste wie dbus und alsa werden gewöhnlich von init gestartet.
Arch ist sehr gut dokumentiert. Eine Beschreibung des Boot-Prozesses
gibt es z.B. hier:
https://wiki.archlinux.org/index.php/Arch_Boot_Process

> Bei meiner Suche im Internet habe ich leider so gut wie keine
> Dokumentation gefunden.

Dann hast du entweder seltsam gesucht oder eine sehr spezielle Fragestellung. ;)
Zum Booten könnte z.B. Wikipedia ein guter Einstieg sein:
http://en.wikipedia.org/wiki/Booting
Zu Arch hilft dann eher das arch-wiki von oben.
Einfach ein bisschen den interessanten Links folgen, dann sollte sich
der Nebel recht schnell lichten.

> Der Bereich zwischen boot und login ist fuer mich wie eine Blackbox.
> Ich sehe was drin ist und was sich veraendert,  wenn ich irgendwelche
> scheinbar relevanten Dateien vereandere, aber ich habe keine Ahnung, was
> da wirklich passiert.

Das ist ja das schöne an freier Software. Du hast im Prinzip das
komplette System im Quellcode vorliegen und kannst ganz genau
nachvollziehen was da der Reihe nach passiert. - Ok, ins BIOS kannst
du meist nicht reinschaun, aber das wird normalerweise nur benötigt um
GRUB zu starten.
Den anderen Fragen nach zu urteilen interessieren dich aber mehr die
Skripte unter /etc/rc.d/, die init startet um "das System" zu starten.
(Andere Versionen von init legen ihre Startskripte in /etc/init.d/
oder /etc/init/ ab.)

> Einige interessanten Punkte koennten sein:
> * Wann und wie werden diese ganzen startup-scripte ausgefuehrt (~/.xinit, ~/.bashrc, /etc/profile, ...)?

Da hilft meist die man-page des zugehörigen Programms, z.B. man bash,
oder Google.

> * Wie erteile ich den Benutzern Rechte (zu mounten, den PC herunterzufahren, ...) ohne sudo?
Sowas ist normalerweise nur mit root-Rechten möglich. In graphischen
Systemen wird oft DBUS benutzt um einen entsprechend privilegierten
Prozess den Auftrag dazu zu erteilen. Google: DBUS

> * Wie schaffe ich es, dass dbus, alsa, gnome-keyring und sowas allen Prozessen zur Verfuegung stehen?
Die Frage macht so keinen Sinn.

> * Was ist eigentlich dbus, pam, ConsoleKid, ...
Google.

Vermutlich sind solche Fragen aber auf einer spezielleren Linux-Liste
besser aufgehoben.

HTH
michas



Mehr Informationen über die Mailingliste FSFE-de