Entwickler des Linux-Kernels feuern gegen Systemd

Linus Torvalds und andere Linux-Entwickler schmeckt es ganz und gar nicht, dass Systemd einen Kernel-Parameter aufgreift; in einzelnen Fällen kann das nämlich dazu führen, dass sich der Rechner nicht mehr benutzen lässt.

In Pocket speichern vorlesen Druckansicht 160 Kommentare lesen
Lesezeit: 3 Min.
Von
  • Thorsten Leemhuis

Mehrere bekannte Kernel-Entwickler haben die Macher von Systemd heftig dafür kritisiert, dass das Init-System den Bootparameter "debug" interpretiert, auf den auch der Kernel selbst hört. Diesen Parameter zu setzen kann daher zu Situationen führen, wo Kernel und Systemd so viele Debug-Informationen in den Protokollspeicher des Kernels schreiben, dass ein PC praktisch unbenutzbar wird; offenbar geht das Gros der Meldungen dabei auf das Konto von Systemd.

Ein Kernel-Entwickler hat daher einen Patch vorgeschlagen, der den vom Bootloader an den Kernel übergebenen Parameter aus der Datei /proc/cmdline entfernt, über die Systemd vom Debug-Flag erfährt. Das war aber offenbar nur begrenzt ernst gemeint und vornehmlich als Diskussionsstarter gedacht. Letzteres hat geklappt, denn Linus Torvalds und viele bekannte Linux-Größen haben sich zu Wort gemeldet und das Verhalten von Systemd kritisiert; die Diskussion hat sich aber zum Teil von der Liste der Kernel-Entwickler in den Kommentar-Bereich eines Google+-Posts verlagert, in dem Theodore 'tytso' Tso das Problem anspricht.

Neu ist das Verhalten von Systemd nicht, denn genau wie der Kernel selbst liefert auch Systemd schon eine Weile ausführliche Fehlerinformationen, wenn man beim Boot ein "debug" mit auf dem Weg gibt. Dass Userspace-Programme solche zuerst vom Kernel unterstützten Parameter aufgreifen, passiert nicht oft, ist aber auch nicht vollkommen ungewöhnlich. Ein bekanntes Beispiele ist der Parameter "quiet", durch den der Kernel beim Start lediglich Informationen zu Problemen ausgibt, normale Statusinformationen jedoch unterdrückt, um Anwender nicht zu verwirren. Diesen Parameter greift auch Systemd auf, um sich dann genauso zu verhalten. Das machen aber auch viele Distributionen schon seit Jahren, die Sysvinit oder Upstart einsetzen; selbst einige darüber gestartete Software honoriert das Quiet-Flag.

Etwas Ruhe in die sehr hitzig geführte Debatte versucht der Kernel-Entwickler Greg Kroah-Hartman zu bringen, der durch Entwicklungen wie Kdbus und dem mittlerweile in Systemd integrierten Udev gelegentlich mit den Hauptentwicklern von Systemd zusammenarbeitet. Er hat eine Änderung vorgeschlagen: Systemd solle das Debug-Flag nicht mehr interpretieren; stattdessen soll Systemd nur noch Debug-Informationen ausgeben, wenn man dem Kernel ein "systemd.debug" mitgibt; solch ein vorangestelltes "systemd." nutzt Systemd auch bei vielen anderen Parametern. Die Hauptentwickler von Systemd haben den vor wenigen Stunden eingereichten Vorschlag bislang nicht kommentiert.

Die Kernel-Entwickler überlegen derweil, eine Mengenbegrenzung für Log-Meldungen einzuführen, die Systemd oder andere Programme über /dev/kmsg an den Protokollspeicher des Kernels senden. Das würde nicht gegen Angreifer helfen, die so die Ausführung des Kernels stören wollen, würde aber eine exzessive Nutzung des Interfaces durch einzelne Programme unterbinden.

[Update 03.04.2014-12:50] Text an zwei Stellen leicht angepasst, da das Systemd-Verhalten offenbar nicht zu Abstürzen führt; darauf hatte eine Fehlerbericht hingedeutet, der nicht reproduziert werden konnte. (thl)