Open Source im professionellen Einsatz

Linuxtag 2010: Booten in unter 5 Sekunden mit Systemd

11.06.2010

Lennart Poettering von Red Hats Desktop-Team hat auf dem Linuxtag seinen runderneuerten Linux-Systemstart mit Systemd vorgestellt. Zum Abschluss führte er auf seinem Laptop vor, wie schnell die Software tatsächlich ist.

441

Unter dem Namen Systemd entwickelt er einen Init-Ersatz, der auch als Session-Manager dient. Er soll mit Sys-V- und LSB-Init-Skripten funktionieren und stark auf Parallelisierung setzen, um den Systemstart zu beschleunigen.

Poettering legt in Systemd besonderen Wert auf Parallelisierung. In seinem Vortrag zeigte er anhand von Diagrammen, wie Sys-V-Init die Dienste Syslog, D-Bus, Avahi und Bluetooth hintereinander startet. Suse und Ubuntu können mit Upstart bereits Avahi und Bluetooth parallel starten. Systemd dagegen soll alle diese Dienste so gut wie gleichzeitig starten, obwohl beispielsweise D-Bus von Syslog abhängig ist.

Lennart Poettering von Red Hat stellte Systemd auf dem Linuxtag 2010 vor.

Damit das gelingt kommt Socket-based Activation zum Einsatz, die von Apples Launchd inspiriert ist: D-Bus wartet eigentlich nur, bis Syslog einen Socket zur Verfügung stellt. Solche Sockets lässt sich aber auch schon frühzeitig mit Systemd anlegen, womit sich bereits sämtliche Daemons starten lassen. Die Dateideskriptoren aller benötigten Sockets bleiben geöffnet, und Schreibvorgänge auf diese werden vorerst gepuffert. So können die Dienste beispielsweise schon Logging-Meldungen absetzen, bevor Syslog läuft. Auf diese Weise lässt sich laut Poettering der Systemstart wesentlich beschleunigen, ein Patch von 10 Zeilen am Syslog-Quellcode reichte zur Umsetzung. Selbst bei einem Syslog-Neustart blieben außerdem dank der Socket-Puffer die Logging-Informationen erhalten.

Auch bei den Dateisystemen soll Parallelisierung Einzug halten, wozu Autofs dient. Noch während beispielsweise Fsck eine Partition prüft, soll es bereits möglich sein, auf einen Autofs-Mountpoint zu schreiben. Dank Pufferung geht nichts verloren, analog zu den Sockets.

Bei seinen Bemühungen macht der Red-Hat-Entwickler zudem "Shell ist böse" zu seinem Motto. Er möchte sich von Systemskripten verabschieden, die ständig "aus trivialen Gründen Sed- und Awk-Prozesse aufrufen". Wie viele solcher Prozesse ein System starte lasse sich an den verbrauchten Prozess-IDs ablesen: Nach dem Start habe Linux rund 2000 verbraucht, Mac OS X dagegen nur wenige Hundert. Poettering und seine Mitarbeiter haben daher den Großteil solcher Shellskripte abgeschafft und deren Funktion teilweise in die Daemons und Systemd selbst verlegt. Für Debugging-Zwecke bietet Systemd zudem einen interaktiven Startup-Modus an und bietet eingebautes Tracing.

Systemd lässt sich aus dem Git-Repository des Projekts bauen, daneben ist es vor kurzem in den Fedora-Zweig Rawhide eingegangen. Es lässt sich einfach als Init-Ersatz anwenden, indem man dem Kernel "init=/bin/systemd" zum Starten mitgibt. Um von den interessanten Features von Systemd zu profitieren, ist allerdings die Installation weiterer Pakete notwendig. Lennart Poettering zeigte zum Abschluss des Vortrags mit seinem Notebook, wie sich Linux mit dem neuen Init-System in unter 5 Sekunden booten lässt. Dafür erntete er den freudigen Applaus der Linuxtag-Besucher.

Ähnliche Artikel

comments powered by Disqus

Ausgabe 08/2014

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook