systemd

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

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. systemd ist von Lennart Poettering, Kay Sievers (Red Hat Inc.) und anderen Beitragenden 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.

Inhaltsverzeichnis

Technik[Bearbeiten]

systemd ist abwärtskompatibel zu SysVinit-Skripten. Hingegen werden bewusst Features benutzt, die nur auf Linux zur Verfügung stehen, nicht aber auf anderen unixartigen 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ögerung verursachen als das ältere, klassische SysVinit oder auch das ältere Upstart.

Grundlegendes Konzept dafür ist, 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 bei Systemstart weniger Dienste starten. Damit nimmt es Aufgaben wahr, die bei klassischen Unix-Systemen von inetd übernommen wurden.

Weiterhin sollen alle Shell-Boot-Skripte langfristig durch potenziell meist erheblich schnelleren, kompilierten C-Code ersetzt werden. Statt eines Init-Skripts erhält dann jeder Dienst eine Konfigurationsdatei, in der unter anderem definiert wird, wie dieser Dienst gestartet wird.

Geschichte[Bearbeiten]

Die Ideen und Konzepte zu systemd entstanden aus der Betrachtung von bereits bestehenden modernisierten init-Systemen [4] wie launchd von OSX und SMF (Service Management Facility) von Solaris. Es wurde erstmals 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 und Arch Linux seit Oktober 2012, sowie Tizen[5]. Red Hat Enterprise Linux wird systemd ab Version 7 verwenden[6], Debian und Gentoo Linux bieten systemd optional an.

Sofern es das mittlerweile recht verbreitete Upstart nicht weitgehend ablöst, ist zumindest ein wesentlicher Einfluss der Ideen auf die Entwicklung von Upstart zu erwarten.[7]

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. Lennart Poettering: systemd-devel ANNOUNCE systemd 204. 9. Mai 2013, abgerufen am 15. Mai 2013.
  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. golem.de: Interview mit Lennart Poettering, Entwickler Systemd. Abgerufen am 18. März 2013 (deutsch).
  5. Mikko Ylinen: Tizen IVI Architecture. Abgerufen am 3. Februar 2013 (PDF; 3,8 MB, englisch).
  6. Lennart Poettering: The Biggest Myths. Abgerufen am 3. Februar 2013 (englisch).
  7. Scott James Remnant: On systemd. 30. April 2010, abgerufen am 7. Februar 2012 (englisch).