Az Easyboot egy minden-az-egyben rendszerbetöltő menedzser és indítható lemezkép készítő, ami különböző operációs rendszer kerneleket és különféle bináris formátumú, Multiboot2 kompatíbilis kerneleket tud betölteni.
MEGJEGYZÉS: Ha csak egy sima rendszerbetöltőt keresel, ami egyetlen kernelt tölt be, akkor lásd az Easyboot kistestvérét, a Simpleboot-ot.
Ez a projekt nem jöhetett volna létre a Free Software Foundation Hungary támogatása nélkül. A projekt az FSF.hu Szabad Szoftver Pályázat 2023 keretén belül került megvalósításra.
Támogatott kernelek: Multiboot1 (ELF32, PE/COFF, a.out; BIOS, UEFI, RPi), Multiboot2 (ELF32, ELF64, PE32+/COFF, a.out; BIOS, UEFI, RPi), Linux (BIOS, UEFI, RPi), Windows (UEFI), OpenBSD (BIOS, UEFI), FreeBSD (BIOS, UEFI), FreeDOS (BIOS), ReactOS (BIOS), MenuetOS 32 / 64 (BIOS, UEFI), KolibriOS (BIOS, UEFI), SerenityOS (BIOS, UEFI), Haiku (BIOS, UEFI)
Támogatott fájlrendszerek: FAT12/16/32, exFAT, NTFS (v3, v3.1), ext2/3/4, XFS (SGI), UFS (v2, v4.4), mfs (Minix3), BeFS (Haiku), AXFS (OS/Z)
(Ha a kernel a boot partíción található, akkor bármilyen fájlrendszere lehet a gyökérnek: ZFS, btrfs, stb.)
Csináltam egy egyszerű rendszerbetöltőt, de a felhasználók egyre több funkciót kértek bele. Azt a rendszerbetöltőt meg akartam hagyni annyira egyszerűnek, amennyire csak lehetséges, de az FSF.hu támogatást ígért hozzá, ezért úgy döntöttem, hogy inkább leforkolom, és az összes kért funkciót ebbe a rendszerbetöltő menedzserbe implementálom.
Ez is egy ugyanolyan szopásmentes eszköz, mint a Simpleboot, nincs semmilyen függősége, és pofonegyszerű használni:
easyboot (forráskönyvtár) (cél lemezkép)
parancsotTelepítheted a rendszerbetöltő menedzsert egy meglévő eszközre vagy lemezképre; vagy létrehozhatsz akár új lemezképet is. A
létrejött lemezkép betölthető virtuális gépeken, vagy kiírhatod lemezre a dd
parancs vagy az
USBImager alkalmazás segítségével, és igazi gépen is elindíthatod.
Az egyszerűség a kifinomultság legvégső formája!
Csak töltsd le a rendszerednek megfelelő binárist. Ezek hordozható futtathatók, nem kell telepíteni őket és függvénykönyvtárakra / DLL-ekre sincs szükségük.
Továbbá különféle csomagformátumban is megtalálod a distrib könyvtárban (Debian, Ubuntu, RaspiOS, Gentoo, Arch).
Lemezkép előállításához - a konfigurációdtól függően - szükséged lehet néhány beépülőre a (forráskönyvtár)
-odban, ezeket az
src/plugins mappában találod plg
kiterjesztéssel. Ha csomagból telepíted, akkor ezek az /usr/share/easyboot
alá kerülnek.
Részletes dokumentáció található a lemezképkészítő használatáról és a kernel betöltési folyamat leírásáról a docs könyvtár alatt.
Ha olyan kernelt szeretnél írni, ami beépülők nélkül indítható az Easyboot egyszerűsített Multiboot2 protokolljával, ahhoz lásd a Simpleboot Példa Kernel könyvtárat. Mindkét betöltő ugyanazt a boot protokollt használja, az a kernel egy-az-egyben működik Easyboot alatt is. Látni fogod, hogy nincs szükség Assembly-re, sem beágyazott tegekre, egyébként a forráskód 99,9%-ban ugyanaz, mint a Multiboot2 specifikációban szereplő példa (a különbség annyi, hogy a soros vonalra ír és nem a VGA karakteres képernyőre, mert ez utóbbi nem létezik sem UEFI, sem RaspberryPi gépeken).
GNU/make kell a levezényléséhez (habár szószerint csak egy cc easyboot.c -o easyboot
). A fordítási környezet nem számít,
bármilyen ANSI C fordító megteszi, működik POSIX és WIN32 MINGW alatt is. Csak menj az src könyvtárba és futtasd le a
make
-t. Ennyi. A kis mérete ellenére mindent tartalmaz, a fordításhoz nincs szükség semmilyen függvénykönyvtárra. Nem véletlenül
Easyboot a neve :-)
A betöltők újrafordításához szükség lesz a flatassembler-re, valamint az LLVM Clang és lld programokra
(a gcc és az GNU ld nem fog működni, attól tartok). De nem kell aggódni, mindet beraktam az src/data.h
fájlba bájttömbként, ezért
nem kell lefordítanod ezeket, hacsak tényleg nagyon nem akarod (ehhez mindössze le kell törölni a data.h-t a make futtatása előtt).
Ellenben a beépülők fordításához mindenképp keresztfordítóra lesz szükség, ami lehet LLVM Clang vagy GNU gcc (x86_64-elf-gcc,
aarch64-elf-gcc) is. Ezeket bináris formában is tartalmazza a repó. Hogy újraforduljanak, csak ki kell törölni az
src/plugins/*.plg
fájlokat a make futtatása előtt.
Az Easyboot egy Szabad és Nyílt Forráskódú szoftver, ami a GPL 3-as vagy (saját megítélésed szerint) későbbi verziójában foglalt feltételek szerint kerül terjesztésre. A részleteket megtalálod a LICENSE fájlban.
bzt