Easyboot, a Simpleboot nagytestvére
Az FSF.hu Szabad Szoftver Pályázat 2023 keretein belül beígért támogatásnak hála, leforkoltam a Simpleboot-ot, és belevágtam a bootmenedzser fejlesztésébe (azért írom, hogy beígért, mert bár mindjárt november, szerződést még nem sikerült aláírnunk. De megelőlegezem nekik a bizalmat, és teljesítem a rám eső rész első mérföldkövét.)
Fícsörök listája:
Lemezképkészítő
Pontosan ugyanolyan egyszerű használni, mint a Simpleboot esetén, a kapcsolói is azonosak. Tud lemezképet létrehozni, de lehet vele már meglévő eszközre is telepíteni a betöltőt.
Moduláris
A Simpleboot-al ellentétben itt lehet beépülőket is használni, amivel fordítás nélkül lehet a képességeit bővíteni. A Multiboot2 protokollt továbbra is egyetlen fájlból támogatja, mind ELF, mind PE/COFF esetén, és alapból van benne gzip kicsomagoló is. Egyelőre Linux boot protokollhoz van külön beépülő (igaz, az most már támogatja a Raspberry Pi-t), hamarosan érkeznek a többiek.
Háromféle beépülőt képes kezelni: fájlrendszer (a root partíció értelmezéséhez), kernel (a fájlformátum és a boot protokoll kezelésére) valamint kitömörítő (tömörített modulok transzparens kicsomagolásához).
Eredetileg struct exec-et akartam használni (a klasszikus UNIX a.out fájlformátuma), de sajnos manapság a GNU ld-be nem fordítják bele a támogatást, az LLVM lld-be meg soha nem is implementálták. Ezért végül saját formátum és saját linkelő írása mellett döntöttem, ami miatt tovább tartott a fejlesztés, mint eredetileg terveztem. A plgld tök jól működik, de szélsőséges esetekben lehetnek ezzel még pitty-puttyok.
Interaktív menü
Több boot opciót is kezel, ezeket színes-szagos ikonokkal és cimkékkel jeleníti meg, amik közül a felhasználó választhat, de megadható időkeret is, ami után automatikusan kiválasztja a megadottat. A cimkék alapból ASCII-k lehetnek csak, az UTF-8 támogatáshoz csak fel kell másolni egy "easyboot/font.sfn" nevű fájlt, ami a UNICODE glifeket tartalmazza (ez elég nagy, 900k körüli, mit mondjak, jó sok UNICODE karaktert definiáltak már).
A menü egyaránt megjelenik a képernyőn és soros porton is. Választani billentyűzettel vagy soros konzollal is lehet. Itt abba futottam bele, hogy eredetileg PS/2 meghajtóval kezeltem mindent, az időkeret várakozást is. Ez igazi vason gyönyörűen működik, azonban a qemu bugos, és a specifikáció szerinti 15 msec helyett host gép függően oszcillál (magyarán használható várakozásra, csak tökre nem tudni, mennyit fog várni). Emiatt végül a BIOS változatban le kellett cserélnem PIT pollozásra, aminek az a hátulütője, hogyha valamelyik BIOS nem mode 2-be inicializálja, mint ahogy a BSS előírja, hanem mode 3-ba, akkor előfordulhat, hogy kétszer olyan gyorsan telik majd az idő, mint kéne (ez nem túl valószínű, de ha esetleg mégis valaki belefutna ebbe, az légyszi mindenképp jelezze). UEFI és RPi alatt nincs gond, ott precíz a timer.
Magyar nyelvű dokumentáció
A program támogatja a magyar locale-t, továbbá a README és a részletes dokumentáció is elérhető magyar nyelven! (De még a példa konfigurációs fájlból is van magyar nyelvű kommentes verzió)
GPL licensz
A Simpleboot-al ellentétben (ami MIT volt), ez GPLv3+ licenszű lett a beépülők miatt. Így sokkal többféle forrásból jöhetnek ugyanis (egy GPL licenszű beépülőt nem lehetne MIT licenszű repóban felhasználni, ugyanakkor egy MIT vagy CC-BY licenszű beépülő simán szerepelhet egy GPL-es repóban).
FONTOS!!! Ez még csak az első mérföldkő. Ez azt jelenti, hogy az alaprendszer megvan, de korántsincs annyira kitesztelve, mint a Simpleboot, számítsatok itt-ott bugokra, és a legtöbb beépülő is hiányzik még. Ezek a második mérföldőbe vannak beütemezve, aminek a határideje dec 30 (még két hónap).
Elkészült a második mérföldkő is, elérhető a repóból! Kellemes karácsonyt mindenkinek!
- Tovább (Easyboot, a Simpleboot nagytestvére)
- 5647 megtekintés