Systemd Basics: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (3 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
| Zeile 10: | Zeile 10: | ||
*Allerdings werden bewusst Features benutzt, die nur unter Linux zur Verfügung stehen, nicht aber auf anderen unixoiden Betriebssystemen. | *Allerdings werden bewusst Features benutzt, die nur unter Linux zur Verfügung stehen, nicht aber auf anderen unixoiden Betriebssystemen. | ||
*Es kann daher nur auf Systemen mit Linux-Kernel laufen. | *Es kann daher nur auf Systemen mit Linux-Kernel laufen. | ||
| − | *Es soll den gegenseitigen Abhängigkeiten von Prozessen besser gerecht werden | + | *Es soll den gegenseitigen Abhängigkeiten von Prozessen besser gerecht werden. |
| + | *Dies wurde durch mehr Parallelisierung erreicht und soll zu einer besseren Auslastung beim Systemstart führen | ||
*Somit weniger Verzögerungen verursachen als das ältere, klassische SysVinit. | *Somit weniger Verzögerungen verursachen als das ältere, klassische SysVinit. | ||
*Grundlegendes Konzept dafür ist es, weitgehend alle Prozesse gleichzeitig zu starten. | *Grundlegendes Konzept dafür ist es, weitgehend alle Prozesse gleichzeitig zu starten. | ||
| − | *Um nicht, wie bei anderen zwar grundsätzlich auf Parallelisierung setzenden Systemen, anhand der in einem Modell erfassten wechselseitigen Abhängigkeiten der Prozesse teilweise noch mit Serialisierung zu arbeiten, werden die D-Bus-Verbindungen und Sockets zur Interprozesskommunikation schon vor dem Start des zugehörigen Dienstes bereitgestellt und vom Kernel eventuell auflaufende Nachrichten bis zur Bereitschaft des Dienstes gepuffert. | + | <!--*Um nicht, wie bei anderen zwar grundsätzlich auf Parallelisierung setzenden Systemen, anhand der in einem Modell erfassten wechselseitigen Abhängigkeiten der Prozesse teilweise noch mit Serialisierung zu arbeiten, werden die D-Bus-Verbindungen und Sockets zur Interprozesskommunikation schon vor dem Start des zugehörigen Dienstes bereitgestellt und vom Kernel eventuell auflaufende Nachrichten bis zur Bereitschaft des Dienstes gepuffert. --> |
| + | *D-Bus-Verbindungen und Sockets zur Interprozesskommunikation schon vor dem Start des zugehörigen Dienstes bereitgestellt und vom Kernel eventuell auflaufende Nachrichten bis zur Bereitschaft des Dienstes gepuffert. | ||
| + | *Dies unterscheidet sich zu anderen auf Parallelisierung setzenden Systemen | ||
*Ähnliches wird für Anfragen an Dateisysteme mittels autofs bewerkstelligt. | *Ähnliches wird für Anfragen an Dateisysteme mittels autofs bewerkstelligt. | ||
| − | |||
*Daneben kann es nur gelegentlich benötigte Dienste ereignisbasiert erst bei Bedarf starten und so beim Systemstart weniger Dienste starten. | *Daneben kann es nur gelegentlich benötigte Dienste ereignisbasiert erst bei Bedarf starten und so beim Systemstart weniger Dienste starten. | ||
*Damit nimmt es Aufgaben wahr, die bei klassischen Unix-Systemen von inetd übernommen werden. | *Damit nimmt es Aufgaben wahr, die bei klassischen Unix-Systemen von inetd übernommen werden. | ||
| − | + | *Weiterhin sollen alle Shell-Boot-Skripte durch deklarative Konfigurationsdateien ersetzt werden, in denen definiert wird, wie die jeweiligen Dienste gestartet werden. | |
| − | *Weiterhin sollen alle Shell-Boot-Skripte durch deklarative Konfigurationsdateien ersetzt werden, in denen definiert wird, wie die jeweiligen Dienste gestartet werden. Diese Dateien sind in der Regel deutlich einfacher zu schreiben als init-Skripte und vermeiden den erheblichen Overhead von Shell-Skripten. | + | *Diese Dateien sind in der Regel deutlich einfacher zu schreiben als init-Skripte und vermeiden den erheblichen Overhead von Shell-Skripten. |
Aktuelle Version vom 18. Januar 2023, 07:23 Uhr
Allgemein
- systemd ist eine Sammlung von Programmen, Hintergrundprogrammen (Daemons) und Bibliotheken für Linux-Systeme.
- Ihr zentraler Bestandteil ist der systemd init-Prozess, der als erster Prozess (Prozess-ID 1) zum Starten, Überwachen und Beenden weiterer Prozesse dient.
- Es bietet aber auch andere Systemkomponenten an, deren Bandbreite vom Booten ("systemd-boot") bis zum Logging ("journald") reichen.
- Systemd wurde von Lennart Poettering, Kay Sievers (Red Hat Inc.) und anderen in C programmiert
- Es wird als freie Software unter der GNU Lesser General Public License (LGPL) veröffentlicht.
- Der Name entspricht mit dem abschließenden „d“ dem für Daemons üblichen Namensschema: systemd ist der Daemon, der das System startet und betreut.
Technik
- Systemd ist abwärtskompatibel zu SysVinit-Skripten.
- Allerdings werden bewusst Features benutzt, die nur unter Linux zur Verfügung stehen, nicht aber auf anderen unixoiden Betriebssystemen.
- Es kann daher nur auf Systemen mit Linux-Kernel laufen.
- Es soll den gegenseitigen Abhängigkeiten von Prozessen besser gerecht werden.
- Dies wurde durch mehr Parallelisierung erreicht und soll zu einer besseren Auslastung beim Systemstart führen
- Somit weniger Verzögerungen verursachen als das ältere, klassische SysVinit.
- Grundlegendes Konzept dafür ist es, weitgehend alle Prozesse gleichzeitig zu starten.
- D-Bus-Verbindungen und Sockets zur Interprozesskommunikation schon vor dem Start des zugehörigen Dienstes bereitgestellt und vom Kernel eventuell auflaufende Nachrichten bis zur Bereitschaft des Dienstes gepuffert.
- Dies unterscheidet sich zu anderen auf Parallelisierung setzenden Systemen
- Ähnliches wird für Anfragen an Dateisysteme mittels autofs bewerkstelligt.
- Daneben kann es nur gelegentlich benötigte Dienste ereignisbasiert erst bei Bedarf starten und so beim Systemstart weniger Dienste starten.
- Damit nimmt es Aufgaben wahr, die bei klassischen Unix-Systemen von inetd übernommen werden.
- Weiterhin sollen alle Shell-Boot-Skripte durch deklarative Konfigurationsdateien ersetzt werden, in denen definiert wird, wie die jeweiligen Dienste gestartet werden.
- Diese Dateien sind in der Regel deutlich einfacher zu schreiben als init-Skripte und vermeiden den erheblichen Overhead von Shell-Skripten.