Login
Newsletter
Werbung

Mi, 24. September 2008, 12:48

Bootzeit von fünf Sekunden demonstriert

Ein komplettes Linux-System kann in fünf Sekunden oder weniger bis zum Desktop gelangen, wenn der Kernel optimiert und das Init-System vernünftiger strukturiert wird.

Arjan van de Ven, Linux-Entwickler bei Intel und Autor von PowerTOP, hat die Linux-Distributoren in einer Demonstration auf der Linux Plumbers Conference alt aussehen lassen. Zwar steht die Beschleunigung des Startvorgangs bei allen Distributoren auf der Tagesordnung, besonders bei eingebetteten Systemen und den modischen Netbooks, doch wurden die Fortschritte der letzten Jahre von den immer komplexeren Vorgängen beim Hochfahren zum Teil wieder zunichte gemacht, und niemand scheint so recht zu wissen, wie es weitergehen soll.

Laut van de Ven stammt das Problem daher, dass alle einen völlig falschen Ansatz verfolgten. Statt »das Hochfahren soll schneller werden« setzte sich sein Team das Ziel, das Hochfahren in fünf Sekunden zu bewerkstelligen. In diesen fünf Sekunden muss die komplette Hardware initialisiert und jeder Daemon gestartet sein. Lediglich für die Netzwerk-Konfiguration erlaubt van de Ven etwas mehr Zeit, doch nach fünf Sekunden sollte dem Benutzer, der automatisch einzuloggt wird, bereits der vollständig initialisierte Desktop präsentiert werden.

Van de Ven demonstrierte seine Arbeit auf einem Eee PC, der mit Flash-Speicher ausgerüstet war. Flash-Speicher arbeitet, was die Suchzeiten betrifft, schneller als eine Festplatte, übeträgt aber die Daten wesentlich langsamer. Da die Datenmengen nicht so groß sind und die Suchzeiten dominieren, ist der Start mit einer Festplatte langsamer. So erreichte der Entwickler auf einem Thinkpad mit einer Festplatte zehn Sekunden.

Um das Ziel zu erreichen, musste der Startvorgang in allen Teilen radikal geändert werden. Die Zeit von fünf Sekunden wurde aufgeteilt in eine Sekunde für die Kernel-Initialisierung, eine Sekunde für die Boot-Skripte und Start der Daemonen, eine Sekunde für den Start des X-Servers und zwei Sekunden für die Desktop-Umgebung.

Um den Kernel so schnell zu starten, muss auf eine Initial Ramdisk verzichtet werden, daher müssen alle fürs Booten benötigten Treiber im Kernel sein. Dies sollte 95% der vorhandenen Laptops abdecken, für die wenigen verbleibenden kann man einen herkömmlichen Kernel mit Initrd bereitstellen, der automatisch beim Versagen der ersten Methode gewählt wird. Ein Standard-Kernel startet trotzdem derzeit nicht schnell genug, daher änderte van de Ven einige Subsysteme, so dass diese asynchron initialisiert werden. Der offizielle Linux-Kernel 2.6.28 soll diese und weitere Verbesserungen enthalten und damit in einer halben Sekunde booten.

Eine weitere Kernel-Änderung wurde beim Readahead vorgenommen. Dabei werden nicht ganze Dateien, sondern nur die benötigten Blöcke gelesen, um die Geschwindigkeit zu maximieren. Damit verzahnt ist der Init-Prozess, wobei die Entwickler ein ganz normales, historisches Init-System verwendeten. Die zu startenden Prozesse wurden in der optimalen Reihenfolge angeordnet. udev wird nicht für die anfängliche Erkennung der Hardware eingesetzt, sondern nur für solche, die später hinzukommt, und kann daher ganz am Ende gestartet werden. Die einzelnen Aufgaben wurden auch so angeordnet, dass CPU und Festplatten-Geschwindigkeit optimal genutzt werden, also während der gesamten fünf Sekunden maximal ausgelastet sind.

Nicht alle Daemonen, die eine Linux-Distribution startet, werden von allen Benutzern benötigt. So startet Fedora den Sendmail-Daemon, was zwei Sekunden verschlingt, während es den meisten Benutzern genügen würde, ssmtp zum Senden von Mail zu verwenden. Der Daemon setroubleshootd benötigt gar fünf Sekunden, dabei würde es genügen, ihn bei Bedarf zu starten. Auch am X-Server wurde einiges optimiert. So entdeckte das Team, dass bei jedem Start von X mit dem C-Präprozessor die Tastaturtabellen neu generiert wurden. Es gibt noch weiteres Potential zur Optimierung, wenn man die Hardware-Erkennung von X11 in den Kernel verlagert.

Viele Erkenntnisse über den zeitlichen Ablauf des Bootvorgangs verdankt das Team dem Programm Bootchart, das allerdings schon länger existiert. Entwickler von Fedora und Ubuntu haben nach eigenen Angaben bereits die Ideen aufgegriffen und einige unnötige Verzögerungen im Startvorgang beseitigt.

Mehr über die Linux Plumbers-Konferenz findet man in einem Artikel auf LWN. Dieser wird, wie auch der Artikel über van de Vens Arbeit, in zwei Wochen der Allgemeinheit zugänglich sein.

Werbung
Kommentare (Insgesamt: 103 || Alle anzeigen )
ubuntu 8.04 (nor, Mo, 29. September 2008)
Re[3]: BSD-Style: Booten in drei Sekunden (asasas, Fr, 26. September 2008)
Re[6]: Wie darf ich das verstehen? (Laudian, Fr, 26. September 2008)
Re[3]: leicht OT: (allo, Do, 25. September 2008)
Re[3]: sendmail (malibu, Do, 25. September 2008)
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung