Provided by: manpages-de_4.27.0-1_all bug

BEZEICHNUNG

       boot - Systemhochfahrprozess, basierend auf UNIX System V Release 4

BESCHREIBUNG

       Der  Systemstartprozess  (oder die »Hochfahrsequenz«) unterscheidet sich im Detail zwischen den Systemen,
       kann aber grob in Phasen eingeteilt werden, die von folgenden Komponenten gesteuert werden:

       (1)  Hardware

       (2)  Betriebssystem- (OS-)Ladeprogramm

       (3)  Kernel

       (4)  Wurzel-Anwendungsraum-Prozess (init und inittab)

       (5)  Systemstartskripte

       Jeder dieser wird nachfolgend in größerem Detail beschrieben.

   Hardware
       Nach dem Einschalten oder einem harten Zurücksetzen wird die Steuerung an ein Programm übergeben, das  in
       schreibgeschütztem  Speicher  (normalerweise PROM) liegt; aus historischen Gründen, die den PC betreffen,
       heißt dieses Programm oft »das BIOS«.

       Dieses Programm führt normalerweise eine  Reihe  von  Selbsttests  der  Maschine  durch  und  greift  auf
       nichtflüchtigen  Speicher  zu,  um weitere Parameter zu lesen. Dieser Speicher im PC wird durch Batterien
       gesichert, daher verweisen  die  meisten  Leute  in  der  PC-Welt  auf  »das  CMOS«,  ansonsten  wird  es
       normalerweise »das NVRAM« (nichtflüchtiger RAM) genannt.

       Die  im  NVRAM  gespeicherten  Parameter  unterscheiden  sich zwischen Systemen, aber minimal sollten sie
       festlegen, welches Gerät das Betriebssystemladeprogramm bereitstellen kann oder  mindestens  auf  welchen
       Geräten  danach  gesucht  werden  kann;  ein  solches  Gerät  ist als »das Systemstartgerät« bekannt. Die
       Hardware-Systemstartstufe  lädt  das  Betriebssystemladeprogramm  von  einer  festen  Position  auf   dem
       Systemladegerät und übergibt ihm dann die Steuerung.

       Hinweis:
              Das  Gerät,  von dem das Betriebssystemladeprogramm gelesen wird, kann über ein Netzwerk angehängt
              sein. In diesem Fall werden die Systemladedetails weiter  in  Protokollen  wie  DHCP,  TFTP,  PXE,
              Etherboot usw. festgelegt.

   Betriebssystemladeprogramm
       Die  Hauptaufgabe  des  Betriebssystemladeprogramms  ist es, den Kernel auf einem Gerät zu finden, ihn zu
       laden und auszuführen. Die meisten Betriebssystemladeprogramme erlauben eine interaktive  Verwendung,  um
       die Festlegung eines alternativen Kernels zu ermöglichen (vielleicht ein Rückfallkernel, falls der letzte
       kompilierte nicht funktioniert) und optionale Parameter an den Kernel zu übergeben.

       Auf einem traditionellen PC befindet sich das Betriebssystemladeprogramm in dem ersten 512-byte-Block des
       Systemstartgeräts; dieser Block ist als »der MBR« (Master Boot Record) bekannt.

       Auf  den  meisten  Systemen ist das Betriebssystemladeprogramm aufgrund verschiedener Beschränkungen sehr
       eingeschränkt. Selbst auf Nicht-PC-Systemen gibt es einige Beschränkungen der Größe und  der  Komplexität
       dieses   Ladeprogramms,   aber  die  Größenbeschränkung  des  PC  MBRs  (512  bytes,  einschließlich  der
       Partitionstabelle) macht es fast unmöglich, viel Funktionalität dort hinein zu quetschen.

       Daher   teilen   die   meisten   Systeme   die   Rolle   des   Betriebssystemladens   in   ein   primäres
       Betriebssystemladeprogramm    und    ein    sekundäres   Betriebssystemladeprogramm;   dieses   sekundäre
       Betriebssystemladeprogramm kann sich auf einer  größeren  Portion  des  dauerhaften  Speichers  befinden,
       beispielsweise einer Plattenpartition.

       Unter Linux ist das Betriebssystemladeprogramm oft grub(8) (lilo(8) ist eine Alternative).

   Kernel
       Wenn   der   Kernel   geladen   wird,   initialisiert  er  verschiedene  Komponenten  des  Computers  und
       Betriebssystems; jeder für eine solche  Aufgabe  zuständige  Softwareteil  wird  normalerweise  als  »ein
       Treiber«  für  die  zugehörige  Komponente  betrachtet.  Der  Kernel  startet den Auslagerungsprozess für
       virtuellen Speicher (das ist ein Kernelprozess, der bei  einem  modernen  Linux-Kernel  »kswapd«  genannt
       wird) und hängt einige Dateisysteme am Wurzelpfad / ein.

       Einige  an  den Kernel übergebbare Parameter beziehen sich auf diese Aktivitäten (beispielsweise kann das
       Wurzeldateisystem außer Kraft gesetzt werden); für weitere Informationen über Linux-Kernelparameter lesen
       Sie bootparam(7).

       Erst dann erstellt der Kernel den anfänglichen Prozess im Anwendungsraum, dem die Nummer 1 als seine  PID
       (Prozesskennung)  gegeben wird. Traditionell führt dieser Prozess das Programm /sbin/init aus, an den die
       Parameter übergeben werden, die noch nicht vom Kernel berücksichtigt wurden.

   Wurzelprozess des Anwendungsraums
       Hinweis:
              Die folgende Beschreibung gilt für ein auf UNIX System V  Release  4  basierendes  Betriebssystem.
              Eine  Reihe  von  breit  genutzten  Systemen  hat einen verwandten, aber fundamental verschiedenen
              Ansatz eingeführt, der als systemd(1) bekannt ist  und  dessen  Systemstartprozess  im  Detail  in
              seiner zugehörigen bootup(7) beschrieben ist.

       Wenn  /sbin/init  startet,  liest  es  /etc/inittab  für  weitere Anweisungen. Diese Datei definiert, was
       ausgeführt werden soll, wenn das Programm  /sbin/init  angewiesen  wird,  in  einen  bestimmten  Runlevel
       einzutreten.  Damit  hat  der Administrator eine einfache Möglichkeit, eine Umgebung für einen bestimmten
       Anwendungsfall  einzurichten;  jedem  Runlevel  wird  ein  Satz  an   bestimmten   Diensten   zugeordnet.
       (Beispielsweise  ist  Runlevel  S  der  Einzelbenutzer-Modus  und  Runlevel 2 bedeutet die Ausführung der
       meisten Netzwerkdienste.)

       Der Administrator kann den aktuellen Runlevel mit init(1)  ändern  und  den  aktuellen  Runlevel  mittels
       runlevel(8) abfragen.

       Da  es  allerdings nicht praktisch ist, individuelle Dienste durch Bearbeitung dieser Datei zu verwalten,
       startet /etc/inittab eine Reihe von Skripten, die dann tatsächlich die  einzelnen  Dienste  starten  bzw.
       stoppen.

   Systemstartskripte
       Hinweis:
              Die  folgende  Beschreibung  gilt  für ein auf UNIX System V Release 4 basierendes Betriebssystem.
              Eine Reihe viel genutzter Systeme (Slackware Linux, FreeBSD, OpenBSD) haben allerdings ein  leicht
              anderes Schema für Systemstartskripte.

       Für  jeden verwalteten Dienst (E-Mail, NFS-Server, Cron usw.) gibt es ein einzelnes Startskript, das sich
       in einem bestimmten Verzeichnis (/etc/init.d in  den  meisten  Linux-Versionen)  befindet.  Jedes  dieser
       Skripte akzeptiert als einziges Argument »start« (wodurch der Dienst gestartet wird) oder »stop« (wodurch
       der  Dienst gestoppt wird). Das Skript kann optional weitere »Bequemlichkeitsparameter« akzeptieren (z.B.
       »restart«, um den Dienst zu stoppen und dann zu starten, »status«, um den Dienstestatus anzuzeigen usw.).
       Wird das Skript ohne Parameter ausgeführt, dann werden die möglichen Argumente angezeigt.

   Ablaufverzeichnisse
       Damit bestimmte Skripte in bestimmten Runleveln in einer bestimmten Reihenfolge starten/stoppen, gibt  es
       Ablaufverzeichnisse,  normalerweise der Form /etc/rc[0-6S].d. In jedem dieser Verzeichnisse gibt es Links
       (normalerweise symbolische) auf die Skripte im Verzeichnis /etc/init.d.

       Ein primäres Skript (normalerweise /etc/rc) wird von inittab(5) aufgerufen; dieses  primäre  Skript  ruft
       jedes  Dienste-Skript über einen Symlink im relevanten Ablaufverzeichnis auf. Jeder Link, dessen Name mit
       »S« beginnt, wird mit dem Argument »start« aufgerufen (und startet daher den Dienst). Jeder Link,  dessen
       Name mit »K« beginnt, wird mit dem Argument »stop« aufgerufen (und stoppt damit den Dienst).

       Um innerhalb des gleichen Runlevels die Start- oder Stoppreihenfolge zu definieren, enthält der Link eine
       Ordnungsnummer.  Zur  Klarheit  endet  der  Linkname  normalerweise mit dem Dienstenamen, auf den er sich
       bezieht. Beispielsweise startet der Link /etc/rc2.d/S80sendmail den Dienst  sendmail(8)  im  Runlevel  2.
       Dies passiert nach der Ausführung von /etc/rc2.d/S12syslog aber vor der Ausführung von /etc/rc2.d/S90xfs.

       Durch  Verwaltung  dieser  Links  werden  die Systemstartreihenfolge und Runlevel gesteuert; unter vielen
       Systemen gibt es Werkzeuge, um bei dieser Aufgabe zu helfen (z.B. chkconfig(8)).

   Systemstartkonfiguration
       Ein Programm, das einen Dienst bereitstellt, wird oft »Daemon« genannt.  Normalerweise  kann  ein  Daemon
       viele  Befehlszeilenoptionen und -parameter empfangen. Damit ein Systemadministrator die Möglichkeit hat,
       diese Eingaben zu ändern, ohne gleich ein komplettes Startskript anpassen zu müssen, wird eine  getrennte
       Konfigurationsdatei  verwandt.  Diese  befindet  sich in einem bestimmten Verzeichnis, wo die zugehörigen
       Systemstartskripte sie finden können (/etc/sysconfig auf älteren Red-Hat-Systemen).

       Auf älteren UNIX-Systemen enthielt eine solche Datei die tatsächlichen  Befehlszeilenoptionen  für  einen
       Daemon.  Auf  modernen  Linux-Systemen  (und  auch  bei  HP-UX) enthält sie aber nur Shell-Variablen. Ein
       Systemstartskript in /etc/init.d liest diese Konfigurationsdatei und bindet sie ein (englisch  »sources«)
       und verwendet dann die Variablenwerte.

DATEIEN

       /etc/init.d/, /etc/rc[S0-6].d/, /etc/sysconfig/

SIEHE AUCH

       init(1), systemd(1), inittab(5), bootparam(7), bootup(7), runlevel(8), shutdown(8)

ÜBERSETZUNG

       Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.

       Diese  Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer
       bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

       Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte  eine  E-Mail  an  die
       Mailingliste der Übersetzer: debian-l10n-german@lists.debian.org.

Linux man-pages 6.9.1                              2. Mai 2024                                           boot(7)