System Manager Bootup: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 77: Zeile 77:
 
*Immer wenn sich der Benutzer bei einer grafischen Sitzung anmeldet, startet der Login-Manager das Ziel „graphical-session.target“, das zum Abrufen der für die grafische Sitzung erforderlichen Einheiten verwendet wird.  
 
*Immer wenn sich der Benutzer bei einer grafischen Sitzung anmeldet, startet der Login-Manager das Ziel „graphical-session.target“, das zum Abrufen der für die grafische Sitzung erforderlichen Einheiten verwendet wird.  
 
*Eine Reihe von Zielen (auf der rechten Seite dargestellt) wird gestartet, wenn dem Benutzer bestimmte Hardware zur Verfügung steht.
 
*Eine Reihe von Zielen (auf der rechten Seite dargestellt) wird gestartet, wenn dem Benutzer bestimmte Hardware zur Verfügung steht.
 +
<pre>
 +
  (various          (various        (various
 +
    timers...)        paths...)        sockets...)    (sound devices)
 +
        |                  |                |              |
 +
        v                  v                v              v
 +
  timers.target      paths.target    sockets.target    sound.target
 +
        |                  |                |
 +
        \______________  _|_________________/        (bluetooth devices)
 +
                      \ /                                  |
 +
                        V                                    v
 +
                  basic.target                          bluetooth.target
 +
                        |
 +
            __________/ \_______                      (smartcard devices)
 +
            /                    \                          |
 +
            |                    |                          v
 +
            |                    v                      smartcard.target
 +
            v            graphical-session-pre.target
 +
(various user services)          |                      (printers)
 +
            |                    v                          |
 +
            |      (services for the graphical session)    v
 +
            |                    |                      printer.target
 +
            v                    v
 +
    default.target      graphical-session.target
 +
</pre>
 +
=Quelle=
 +
*https://www.freedesktop.org/software/systemd/man/bootup.html

Aktuelle Version vom 9. Januar 2023, 10:51 Uhr

Booten des Systemmanagers

  • Beim Booten ist der Systemmanager auf dem Betriebssystemabbild für die Initialisierung der erforderlichen Dateisysteme, Dienste und Treiber verantwortlich, die für den Betrieb des Systems erforderlich sind.
  • Auf systemd-Systemen ist dieser Prozess in verschiedene diskrete Schritte aufgeteilt, die als Zieleinheiten verfügbar gemacht werden.
  • Der Boot-Prozess ist stark parallelisiert, so dass die Reihenfolge, in der bestimmte Ziel-Units erreicht werden, nicht deterministisch ist,
  • Er unterliegt einer begrenzten Ordnungsstruktur folgt.
  • Wenn systemd das System startet, aktiviert es alle Units, die Abhängigkeiten von default.target sind.
  • Normalerweise ist default.target einfach ein Alias von graphic.target oder multi-user.target.
  • Je nachdem, ob das System für eine grafische Benutzeroberfläche oder nur für eine Textkonsole konfiguriert ist.
  • Um eine minimale Ordnung zwischen den hereingezogenen Units zu erzwingen, ist eine Reihe bekannter Ziel-Units verfügbar, wie sie in systemd.special aufgeführt sind.
  • Die folgende Tabelle gibt einen strukturellen Überblick über diese bekannten Einheiten und ihre Position in der Boot-Logik.
  • Die Pfeile beschreiben, welche Einheiten eingezogen und vor welchen anderen Einheiten angeordnet werden.
  • Einheiten am oberen Rand werden vor Einheiten am unteren Rand des Diagramms gestartet.
                             cryptsetup-pre.target veritysetup-pre.target
                                                  |
(various low-level                                v
 API VFS mounts:             (various cryptsetup/veritysetup devices...)
 mqueue, configfs,                                |    |
 debugfs, ...)                                    v    |
 |                                  cryptsetup.target  |
 |  (various swap                                 |    |    remote-fs-pre.target
 |   devices...)                                  |    |     |        |
 |    |                                           |    |     |        v
 |    v                       local-fs-pre.target |    |     |  (network file systems)
 |  swap.target                       |           |    v     v                 |
 |    |                               v           |  remote-cryptsetup.target  |
 |    |  (various low-level  (various mounts and  |  remote-veritysetup.target |
 |    |   services: udevd,    fsck services...)   |             |              |
 |    |   tmpfiles, random            |           |             |    remote-fs.target
 |    |   seed, sysctl, ...)          v           |             |              |
 |    |      |                 local-fs.target    |             | _____________/
 |    |      |                        |           |             |/
 \____|______|_______________   ______|___________/             |
                             \ /                                |
                              v                                 |
                       sysinit.target                           |
                              |                                 |
       ______________________/|\_____________________           |
      /              |        |      |               \          |
      |              |        |      |               |          |
      v              v        |      v               |          |
 (various       (various      |  (various            |          |
  timers...)      paths...)   |   sockets...)        |          |
      |              |        |      |               |          |
      v              v        |      v               |          |
timers.target  paths.target   |  sockets.target      |          |
      |              |        |      |               v          |
      v              \_______ | _____/         rescue.service   |
                             \|/                     |          |
                              v                      v          |
                          basic.target         rescue.target    |
                              |                                 |
                      ________v____________________             |
                     /              |              \            |
                     |              |              |            |
                     v              v              v            |
                 display-    (various system   (various system  |
             manager.service     services        services)      |
                     |         required for        |            |
                     |        graphical UIs)       v            v
                     |              |            multi-user.target
emergency.service    |              |              |
        |            \_____________ | _____________/
        v                          \|/
emergency.target                    v
                              graphical.target
  • Zieleinheiten, die üblicherweise als Startziele verwendet werden, werden hervorgehoben.
  • Diese Units sind eine gute Wahl als Zielziele, indem Sie sie beispielsweise an die Kernel-Befehlszeilenoption systemd.unit= übergeben oder indem Sie default.target symbolisch mit ihnen verknüpfen.
  • timers.target wird von basic.target asynchron hereingezogen.
  • Dadurch können Timer-Einheiten von Diensten abhängen, die erst später beim Booten verfügbar werden.

Start des Benutzermanagers

  • Der Systemmanager startet für jeden Benutzer die Unit user@uid.service, die für jeden Benutzer eine separate, nicht privilegierte Instanz von systemd startet – den Benutzermanager.
  • Ähnlich wie der Systemmanager startet der Benutzermanager Units, die per default.target eingezogen werden.
  • Die folgende Tabelle gibt einen strukturellen Überblick über die bekannten Benutzereinheiten.
  • Für nicht grafische Sitzungen wird default.target verwendet.
  • Immer wenn sich der Benutzer bei einer grafischen Sitzung anmeldet, startet der Login-Manager das Ziel „graphical-session.target“, das zum Abrufen der für die grafische Sitzung erforderlichen Einheiten verwendet wird.
  • Eine Reihe von Zielen (auf der rechten Seite dargestellt) wird gestartet, wenn dem Benutzer bestimmte Hardware zur Verfügung steht.
   (various           (various         (various
    timers...)         paths...)        sockets...)    (sound devices)
        |                  |                 |               |
        v                  v                 v               v
  timers.target      paths.target     sockets.target    sound.target
        |                  |                 |
        \______________   _|_________________/         (bluetooth devices)
                       \ /                                   |
                        V                                    v
                  basic.target                          bluetooth.target
                        |
             __________/ \_______                      (smartcard devices)
            /                    \                           |
            |                    |                           v
            |                    v                      smartcard.target
            v            graphical-session-pre.target
(various user services)          |                       (printers)
            |                    v                           |
            |       (services for the graphical session)     v
            |                    |                       printer.target
            v                    v
     default.target      graphical-session.target

Quelle