systemd

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
systemd
Maintainer Lennart Poettering, Kay Sievers (Red Hat Inc.)
Aktuelle Version 220
(21. Mai 2015[1])
Betriebssystem Linux
Programmier­sprache C[2]
Kategorie init-Dienst
Lizenz GNU LGPL 2.1+[3]
(Freie Software)
freedesktop.org/wiki/Software/systemd
systemd-Komponenten

systemd ist ein Hintergrundprogramm (Daemon) für Linux-Systeme, das als init-Prozess als erster Prozess (Prozess-ID 1) zum Starten, Überwachen und Beenden weiterer Prozesse dient. Es wurde von Lennart Poettering, Kay Sievers (Red Hat Inc.) und Anderen in C[2] geschrieben und wird als freie Software unter der GNU Lesser General Public License (LGPL) veröffentlicht.[3]

Der Name entspricht mit dem abschließenden „d“ dem für Daemons üblichen Namensschema: systemd ist der Daemon, der das System startet und betreut.

Geschichte[Bearbeiten]

Die Ideen und Konzepte zu systemd entstanden aus der Betrachtung von bereits bestehenden modernisierten init-Systemen[4] wie launchd von Mac OS X und SMF (Service Management Facility) von Solaris. Es wurde am 10. April 2010 veröffentlicht. Distributionen, die systemd als vorgegebenen init-Dienst verwenden, sind Fedora seit Version 15, openSUSE seit Version 12.1, Mandriva 2011, Mageia seit Version 2, Arch Linux seit Oktober 2012, Red Hat Enterprise Linux seit Version 7,[5] Tizen[6] sowie siduction seit Version 2013.2,[7] SUSE Linux Enterprise Server seit Version 12,[8] Ubuntu seit Version 15.04[9] und Debian ab Version 8.[10]

Gentoo Linux bietet systemd optional an.

Technik[Bearbeiten]

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, durch mehr Parallelisierung zu einer besseren Auslastung beim Systemstart führen und somit weniger Verzögerungen verursachen als das ältere, klassische SysVinit oder das inzwischen auch von Ubuntu aufgegebene Upstart.

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. Ä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.

Kritik[Bearbeiten]

Der Hauptkritikpunkt am systemd liegt in seinem Anspruch, deutlich mehr verschiedene Aufgaben als das alte SysV-Init erledigen zu wollen, was ihn recht kompliziert und fehleranfällig mache und überdies die Unix-Philosophie verletze, dass ein Programm ein Problem gut lösen sollte, anstatt viele Aufgaben schlecht zu lösen.

Literatur[Bearbeiten]

  • Thorsten Leemhuis: Sammelstelle – Log-Informationen beim Journal von Systemd abrufen. c’t 13/2014, Seite 168

Weblinks[Bearbeiten]

Kritik:

Einzelnachweise[Bearbeiten]

  1. Lennart Poettering: [systemd-devel] [ANNOUNCE] systemd v220. 21. Mai 2015, abgerufen am 22. Mai 2015 (englisch).
  2. a b systemd. In: Analysis Summary. Ohloh, abgerufen am 15. August 2011.
  3. a b Lennart Poettering: License. In: systemd git. freedesktop.org, abgerufen am 3. Februar 2013.
  4. Interview mit Lennart Poettering, Entwickler Systemd. golem.de, 27. Mai 2011, abgerufen am 18. März 2013 (deutsch).
  5. Lennart Poettering: The Biggest Myths. Abgerufen am 3. Februar 2013 (englisch).
  6. Mikko Ylinen: Tizen IVI Architecture. Abgerufen am 3. Februar 2013 (PDF; 3,8 MB, englisch).
  7. Release Notes: Release Notes for siduction 2013.2. Abgerufen am 22. Oktober 2014.
  8. Release Notes: SUSE Linux Enterprise Server 12 Release Notes. Abgerufen am 2. März 2015.
  9. Release Notes: Ubuntu 15.04 Release Notes. Abgerufen am 23. April 2015.
  10. Debian 8 "Jessie" veröffentlicht. 25. April 2015, abgerufen am 26. April 2015 (deutsch).