Hallo Tobias,
Am 5. August 2011 10:21 schrieb Tobias Bengfort tobias.bengfort@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