Zum Hauptinhalt Zur Navigation

Init-Dienst: Systemd macht Kernel-VT überflüssig

Der Init-Dienst Systemd könnte künftig Agetty und Login an einem VT ersetzen und auch die Sitzung läuft dann in einer Systemd-eigenen Konsole und nicht mehr in der Kernel-Konsole. Dazu gibt es einen Boot-Splash für Initrds.
/ Sebastian Grüner
23 Kommentare News folgen (öffnet im neuen Fenster)
Systemd könnte die Kernel-VT-Infrastruktur ersetzen. (Bild: Josh Landis/National Science Foundation, Public Domain)
Systemd könnte die Kernel-VT-Infrastruktur ersetzen. Bild: Josh Landis/National Science Foundation, Public Domain

Mit einer Serie von Patches(öffnet im neuen Fenster) für den Init-Dienst Systemd könnte der Entwickler David Herrmann langfristig gewohnte und bekannte Technik überflüssig machen. Dabei werden teils 20-jährige Paradigmen durch Software in Systemd ersetzt. Kernel-Entwickler Greg Kroah-Hartman und Systemd-Initiator Lennart Poettering zeigen sich erfreut über den Vorstoß.

Systemd-Konsole statt Kernel-VT

Aus Sicht von Herrmann hat die im Linux-Kernel integrierte Schicht für virtuelle Terminals (VT) einige gravierende Nachteile und kaum Vorteile. Neben dem unnötigen Überfrachten des Kernels mit duplizierten Funktionen aus dem User-Space ließen sich die VTs außerdem nicht konfigurieren. Darüber hinaus werde die Stabilität des Kernels gefährdet, ebenso wie die Sicherheit – durch einen Fehler in der UI-Schicht könnten Angreifer Rechte auf Kernel-Ebene erlangen.

Auch zum Boot-Debugging und dem Darstellen von Kernel-Panics und Kernel-Oops würden die Kernel-VTs mittlerweile nicht mehr benötigt, dafür gibt es andere Tools. Deshalb soll die gesamte Funktionalität in Systemd, also den Userspace, übertragen werden. Nutzer könnten so mit der Kernel-Konfigurationsvariablen CONFIG_VT=n ihr System starten. Das ist auch das langfristige Ziel von Herrmann, denn derzeit sei solch ein Boot " eine grauenhafte Erfahrung ".

Konsole, Boot-Splash, Ersatz für Agetty

Ein Boot ohne Kernel-VT könnte Herrmann zufolge sogar bereits bis zur Darstellung einer X.org-Oberfläche stattfinden, dazu sei nur eine Zeile Code in X.org notwendig. Komplett auf VTs zu verzichten, würde aber die Nutzung bisheriger Anwendungen und auch den Wechsel von Sitzungen beeinträchtigen.

Deshalb stellt Herrmann die Systemd-Konsole und einen Login-Screen bereit, der Agetty ersetzen kann. Damit Nutzer Passwörter für verschlüsselte Root-Partition eingeben können, hat Herrmann auch einen Boot-Splash für Init-Ram-Disks (Initrd) geschrieben.

Im Userspace als Fallback

Das Hauptanliegen von Herrmann ist es, mit dem Code die VT-Funktionen aus dem Kernel herauszulösen und in den Userspace zu verschieben. Die Technologie in Systemd zu integrieren, erschien da naheliegend.

Herrmann weist aber auch darauf hin, dass die Konsole "keine komplette Konsole mit vollem Funktionsumfang werde" , es werde "kein Eye-Candy, keine nutzlosen Funktionen" und vor allem auch "keine Hintergrundbilder geben" , schreibt der Entwickler in seiner Mail. Dafür gebe es das ebenfalls von Herrmann entwickelte Kmscon(öffnet im neuen Fenster) und Plymouth statt des Initrd-Bootsplachs.

Die Patches stehen als Request-for-Comments-E-Mails (RFC) in der Systemd-Mailingliste bereit. Der gesamte Code ist im Git-Repository von Herrmann(öffnet im neuen Fenster) verfügbar. Derzeit müssen die Binärdateien noch aus einer laufenden Logind-Sitzung heraus gestartet werden, Tastatureingaben werden zudem noch von den VTs und Anwendungen angenommen. Das soll sich laut Hermann in kommenden Versionen des Codes noch ändern.


Relevante Themen