Bootolás öt másodperc alatt

A folyamat részletes leírása

A folyamat részletes leírása

A kernel indulása modulokkal együtt 1 másodperc volt. Az init szkriptek és egyéb háttérfolyamatok indítása egy újabbat vett igénybe, az X indítása egy harmadikat. További két másodpercbe tellett az asztalkörnyezet indítása. A kernelből eltávolították az initrd-t, ami fél másodpercig nem csinál semmit, így viszont minden, az induláshoz használt modulnak a kernelben kell lennie; Arjan szerint „az ott lévő dolgok 95%-a felesleges” – javaslata szerint inkább készítsünk egy olyan initrd-s kernelt, amiben a maradék 5% van.

Néhány módosítás a kernelen lehetővé tette néhány alrendszer aszinkron indítását. Például a módosított kernel egy időben indította az Advanced Host Controller Interface (AHCI) inicializálását a tárolóeszközök kezeléséhez, valamint az Universal Host Controller Interface-t (UHCI) az USB támogatásához. „Talán még le tudtuk volna nyomni fél másodperccel az indulást, de csökkentettük egy másodperccel, és itt megálltunk” – mondta Arjan. A 2.6.28-as kernel használatával még nyertek időt, köszönhetően az AHCI-támogatás javulásának.

Mindezt még megfejelték az előreolvasási támogatás kernelszintű támogatásával. A kernel innentől fogva figyeli, mely blokkokat kell olvasni bootoláskor, aztán ezt elérhetővé teszi a userspace-ben.

A Fedora az init helyett az Upstart nevű programot használja, és ez az első program, ami a userspace-ben fut. Az Intel csapata azonban ezt visszacserélte a jó öreg initre. Az init több különböző dolgot csinál egyszerre: egyfajta sReadahead-ként működik, a lemezről olvasott blokkokat gyorsítótárazza a memóriában; elvégzi a fájlrendszer ellenőrzését, elindítja a D-Bus nevű processzek közötti kommunikációs rendszert, majd az X-et, végül az asztalt. Ezek után indul a Hardware Abstraction Layer (HAL), az udev, a cserélhető eszközöket támogató rendszer, aztán a hálózati alrendszer. Az udev csak a később hozzáadandó eszközöket kezeli – mivel a rendszer a régi /dev könyvtárat használja, indításkor nincs szükség az udevre.

Az sReadahead-nek köszönhetően mind a lemez, mind a CPU szinte teljes terhelésen dolgozik indításkor. Amikor az X elindul, már nem kell a lemezről olvasnia, mert minden gyorsítótárazva van. Az sReadahead a Fedora Readaheaden alapszik, s a jövő héten teszik közzé a moblin.org-on, és ha Arjan meg tud állapodni az ext3-as fájlrendszer karbantartójával, Ted Ts’o-val, valószínűleg általánosan is elérhető lesz (Ted javasolta a blokkok átrendezését a lemezen, hogy még jobban felgyorsuljon az indítás).

Rendszerindításkor csak 75 MB adat olvasható (3 másodperc, 25 MB/s olvasási sebesség), így nem olvassák be a teljes fájlt, csak azokat a részeket, amik feltétlenül szükségesek. Előreolvasás nélkül az indulás 7 másodpercet igényelt, előreolvasással sikerült a célban megfogalmazott 5.

Természetesen az X-et is jó alaposan meg kellett vagdosni. Az egyik megoldandó probléma a C fordító indításának megakadályozása volt a billentyűzetkiosztás újraépítéséhez. A jelenlegi X-fejlesztések több inicializálást és konfigurálást bíznak a kernelre, melyek jelentősen csökkenthetik az indítás idejét, mivel a kernel egyszerre több hardvert is inicializálhat. A segítség egy másik Intel-alkalmazottól, Keith Packardtól jött. Az ötlet az volt, hogy amikor a hardver többi része használatba kerül, állítsák be a megfelelő videó módot. Ez a gyorsindítású rendszer nem használ GDM-et, de közvetlenül a legutolsó felhasználó XFCE asztalára bootol be. Itt lehetőség van a képernyővédő azonnali indítására, így ha másik felhasználó ül a gép előtt, használnia kell a képernyővédő felhasználóváltó gombját.

„Ne elégedj meg az indítás felgyorsításával, ez rossz hozzáállás. Gyors legyen az indítás” – mondta Arjan. Nem kell olyan eszközök miatt várakozásra kényszeríteni a felhasználókat, amiket csak néhányuk használ – lásd sendmail. Később elmondta még, hogy nem kell minden disztribúcióból initrd-s és initrd-mentes verziót fenntartani. A kernel próbáljon initrd-mentesen indulni, és ha valami gáz van, váltson vissza az initrd-s megoldásra.

  • Kapcsolódó cégek:
  • Intel

Azóta történt

Előzmények