Auf der Linux-Plumbers-Konferenz anfang September in Lissabon wurde unter anderem die Zukunft von Fastboot verhandelt. Dank verschiedenen Optimierungen könnte Linux künftig superschnell booten.
Intels Feng Tang stellte auf der Konferenz bereits erreichte und künftig geplante Optimierungen vor. Nötig sind die, um Linux in Umgebungen einzusetzen, die superschnelles Booten benötigen. So soll etwa die Linux-gesteuerte Rückseiten-Kamera in einem Auto nach zwei Sekunden einsatzbereit sein. Tatsächlich besteht die Bootphase auch aus dem Initialisieren von Hardware, Firmware, Bootloader und Hypervisor. Der Kernel ist dabei also nur eine von mehreren Etappen, ihm stehen 400 Millisekunden zur Verfügung.
Intels Technikern gelang es laut Tangs Folien [PDF] immerhin, die Kernel-Bootzeit von 3 Sekunden auf 300 Millisekunden zu reduzieren. In dem zur Verfügung stehenden Setup, das unter anderem Clear Linux und Android verwendet, gelang es Intel zunächst, über “systemd-analyze” und “systemd-bootchart” die Kernel-Bootzeit zu messen. Darauf basierend wurde ein Profil erzeugt, dass die einzelnen Etappen im Detail ausmisst. Sind die Ursachen analysiert, gelingt es mit einiger Programmierarbeit, einige der Barrieren aus dem Weg zu räumen.
Flaschenhälse entfernen
Laut Tang habe Intel bereits einige Flaschenhälse behoben. So funktioniert asynchrones Probing der Geräte, lassen sich nur Teile des Arbeitsspeichers initialisieren und das Root-FS-Mounten optimieren. Die Entwickler haben Kernelmodule entfernt und den Fußabdruck des eingesetzten Hypervisor (Acrn) reduziert. Einige Baustellen scheinen aber noch offen zu sein.
So habe die CPU-Frequenz einen großen Einfluss auf die Bootzeit. Diese werde aber vom BIOS oder der Firmware gesetzt. Eine Kernel-Konfigurationsoption nur für die Bootphase wäre offenbar ein Wunsch von Tang. Weiterhin könnte die verzögerte Arbeitsspeicherinitialisierung auch über den Kernel stattfinden. Dass manche Treiber lange brauchen, sei Schuld einiger Hacks. Diese wiederum beziehen sich laut Tangs Folien häufig auf kaputte Hardware. Anstatt nun alle Nutzer des Treibers für die wenigen kaputten Geräte in Geiselhaft zu nehmen, schlägt Tang eine Kernelparameter für Tuning vor. Auch ein schlankes Init-System und eine fixe Gerätenummerierung könnten laut Tang beim schnellen Booten helfen. Weitere Optimierungsmöglichkeiten nennt er in seiner Präsentation [PDF].





Gehe ich recht in der Annahme, dass zumindest Teile dieser Optimierungen auch dem normalen Linux-User zugute kommen könnten?