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