Boot 10 másodperc alatt

A Mogorva Mormota idén januárban már foglalkozott az Ubuntu boot teljesítményének javítását célzó munkával, akkor még az Ubuntu idén áprilisban megjelent Jaunty Jackalope fejlesztése kapcsán. A munka nem maradt eredmény nélkül, hiszen az aktuális kiadás érezhetően gyorsabban indul, mint az előző, sok esetben felére csökkent a bootolás ideje. A munka azonban itt nem állt meg, és az Ubuntu fejlesztők továbbra is folyamatosan dolgoznak a folyamat felgyorsításán: a cél pedig az, hogy a Karmic Koalát követő kiadásra, az Ubuntu 10.04-re ezt az időt 10 másodpercre faragják le.

A 10 másodperces célt Scott James Remnant jelentette be a Barcelonában megrendezett Ubuntu Fejlesztői Találkozón (UDS). Bár az eseményen csak kevesek vehettek részt személyesen, azonban a prezentáció diáit bárki letöltheti. Kicsivel később, június 8-án pedig Scott az Ubuntu fejlesztők levelezőlistájára küldött levelében részletesebben is kifejtette, hogyan lehet ezt a célt a gyakorlatban is megvalósítani.

A referencia számítógép, amin ezt az elindulási időt el szeretnék érni, a Dell Mini 9 vagy a Dell Mini 10v netbook. Mivel a két típus teljesítményét tekintve szinte teljesen megegyezik, ezért ez igazából nem befolyásolja az elvégzendő feladat nehézségét. A választás nyilvánvalóan nem véletlenül esett erre a gépre: a Dell netbookját Ubuntuval is megvásárolhatjuk, és a gép viszonylag gyenge processzora, viszont jó teljesítményt nyújtó SSD meghajtója ideálissá teszi az ilyen tesztre. A 10 másodperces bootidőt nem egy kifejezetten a gépre szabott, lecsupaszított rendszerrel akarják elérni, hanem egy általános, teljes értékű disztribúcióval. Ez pedig azt jelentheti, hogy egy kifejezetten egy adott eszközre szabott, Moblin-alapú változat akár 5 másodperc alatt is végezhet.

Ezt a 10 másodpercet bekapcsolt automatikus bejelentkezéssel kell érteni (hiszen a felhasználó azonosításának időigénye elsősorban attól függ, milyen gyorsan adjuk meg felhasználónevünket és jelszavunkat), azonban kompromisszumok nélkül: a rendszernek ennyi idő alatt teljesen készen kell állnia a munkára, a meghajtónak és a processzornak is végeznie kell a bootoláshoz kapcsolódó feladataival. Ahhoz, hogy mindez elérhető legyen, nagyon komoly optimalizációt kell végrehajtani, és sok helyen változtatni kell azon, ahogy eddig zajlott ez a folyamat.

Az első, és legfontosabb feladat, hogy a grafikus kiszolgáló indítását minél előbbre kell hozni. Egy desktop rendszer esetében rengeteg dolog függ ettől, így ennek kritikus a jelentősége. Azokat a folyamatokat, amik nem igényelnek grafikus felületet, akkor lehet indítani, amikor az X kiszolgáló inicializálása már megtörtént, és ezt a rendelkezésre álló CPU és I/O erőforrások megengedik. Ahhoz, hogy a grafikus kiszolgáló elindulhasson, négy dolognak kell rendelkezésre állnia: írható fájlrendszernek (ezt akkor kell mountolni, amikor az udev ellenőrzi az eszközöket), a kernel framebuffer meghajtónak (ezt az udev tölti be), magának az udevnek, és beállított hostnévnek. Vagyis, mint az a felsorolásból is kiderül, a legfontosabb az udev. Az udev elindításának igazából az egyetlen feltétele az, hogy az initramfs végezzen. Vagyis a grafikus kiszolgáló indítását két dolog hátráltatja: az udev és az initramfs.

Az initramfs-nek egyetlen feladata van: a root fájlrendszer mountolása. Azonban a dolog mégis úgy alakult, hogy az elmúlt időszakban sok felesleges kacat került bele. Márpedig bármi is kerül bele az initramfs-be, az hatványozottan lassítja a folyamatot: nem csak egyszerűen be kell tölteni innen az adatokat, hanem előtte ki is kell tömöríteni, utána pedig eltakarítani. Vagyis az initramfs-t le kell csupaszítani, amennyire az csak lehetséges. Ennek a dolognak az egyetlen hátulütője, hogy így le kell mondani az indítóképernyőről is, ahol a kis haladó sávot nézhetjük a rendszer elindulása alatt. Azonban ha a grafikus kiszolgáló elég gyorsan el tud indulni, akkor ez senkinek sem fog igazán hiányozni.

Scott James Remnant szerint a fentiekből következően a 10 másodpercet a következők szerint lehet felosztani: 2 másodperc a kernelre és az initramfs-re, 2 másodperc a meghajtók betöltésére, a fájlrendszerek mountolására, 2 másodperc az X kiszolgáló indítására, és 4 másodperc az asztali környezet betöltésére. Ez pedig az eddigi tesztek alapján egyáltalán nem tűnik elérhetetlennek a számára. Az pedig, hogy ezt mi felhasználók a saját gépünkön is élvezhessük, már nincs is annyira messze: az idén októberben megjelenő Karmic Koala egy fontos mérföldkő lehet a jövő áprilisban érkező Ubuntu 10.04 felé vezető úton. Ez pedig különösen lenyűgöző teljesítmény, ha azt is figyelembe vesszük, hogy az Ubuntu 2008 októberében kiadott 8.10-es kiadásának, az Intrepid Ibexnek ugyanezen a gépen még 65 másodpercre volt szüksége az elinduláshoz.

Címkék: , , ,

A cikkhez nem lehet hozzászólni.