coreboot | |
---|---|
Típusú | beágyazott szoftverek , operációs rendszer betöltő , valamint ingyenes és nyílt forráskódú szoftverek |
Szerző | Ronald G. Minnich, Eric Biederman, Li-Ta (Ollie) Lo, Stefan Reinauer és a coreboot közösség |
Beírva | C és assembly nyelv |
Első kiadás | 1999. szeptember [2] |
Hardver platform | ARM , IA-32 és x86_64 |
legújabb verzió |
|
Állapot | naprakész, fejlesztés alatt |
Engedély | GNU GPL 2 |
Weboldal | coreboot.org _ |
Médiafájlok a Wikimedia Commons oldalon |
A coreboot (korábban LinuxBIOS [3] ) egy ingyenes firmware projekt számos PC-hez, amelyet a Free Software Foundation hagyott jóvá . A projekt célja a legtöbb személyi számítógép által használt szabadalmaztatott és zárt BIOS- és UEFI -rendszerek lecserélése egy könnyű rendszerre, amelyet kizárólag a modern 32 bites és 64 bites operációs rendszerek indítására és futtatására terveztek .
Mivel a coreboot inicializálja a hardvert, a tervezést minden chipkészlethez és alaplaphoz igazítani kell . Ennek eredményeként a coreboot csak korlátozott számú hardverplatformon és alaplapmodellhez érhető el.
A coreboot egyik változata a Libreboot , a coreboot egyik változata, amelynek célja a saját firmware (Blobs) teljes megszüntetése .
A coreboot tipikus feladata a Linux kernel betöltése, de ezen felül a coreboot képes betölteni és futtatni ELF végrehajtható fájlokat , amelyeket általában payload-oknak neveznek . A hasznos terhelés lehet például az Etherboot , amely képes a Linux hálózaton keresztül történő indítására, vagy a SeaBIOS , egy ingyenes BIOS-megvalósítás, amely lehetővé teszi a Windows 2000/XP/Vista/7 és *BSD rendszerek indítását (korábban az ADLO terhelést használták ehhez ). A Coreboot bármely támogatott eszközről indíthatja az operációs rendszert, például a Myrinetről , a QsNetről vagy az SCSI -ről .
A Coreboot elvégzi a hardver inicializálását, amit az operációs rendszer nem tud teljes mértékben végrehajtani, majd átadja az irányítást a Payload modulnak, amely további operációs rendszer betöltést hajthat végre, vagy egyéb hasznos műveleteket hajthat végre.
A Coreboot támogatja az x86 , x86-64 , ARM , ARM64, MIPS és RISC-V architektúrákat .
A coreboot és a Legacy BIOS között az a különbség, hogy az x86-os verzió mindössze tizenhat processzorutasítás végrehajtása után védett módban indul, míg a tipikus x86-os BIOS-ok többnyire a processzor valós üzemmódjában futnak. Ezen tényezők kombinációja és a belső kialakítás egyszerűsége nagyon gyorssá teszi a Corebootról való rendszerindítást (jelenleg a hidegindítási rekord CoreBoottal körülbelül 3 másodperc).
Bár a LinuxBIOS nevében benne volt a Linux szó, a LinuxBIOS más operációs rendszermagokat is betölthetett. Például a LinuxBIOS közvetlenül betöltheti a Plan 9 kernelt . Ezért átnevezték coreboot -ra .
Maga a Coreboot csak egy kis program, amely inicializálja a hardvert az alaplapon, majd a vezérlés átkerül az egyik hasznos programra:
Mivel a coreboot-nak inicializálnia kell a hardvert, hozzá kell igazítani minden rendszervezérlőt ( chipkészletet ) és minden egyes ilyen vezérlőn alapuló kártyát. Bármely új kártya támogatásának hozzáadását megnehezítik a hibakeresési nehézségek: a hibakeresési információ egy vagy másik hardver segítségével kerül kiadásra, de hogyan lehet megszervezni a kimenetet, ha a kimeneti eszközök még nincsenek inicializálva?
A Coreboot számos eszközt és trükköt használ a hibakeresés megkönnyítésére:
A coreboot legösszetettebb része a RAM-ot és a RAM-vezérlőt inicializáló kód. A helyzet az, hogy amíg a RAM nincs inicializálva, nem használható. A RAM-vezérlő és magának a RAM-nak a hozzáférés nélküli inicializálásának kézenfekvő módja a processzor általános célú regisztereinek használata. Ennek az összetett feladatnak az egyszerűsítésére egy speciális C nyelvű fordítót fejlesztettek ki - romcc ( eng. romcc ) , amely olyan kódot generál, amely nem tesz RAM-hozzáférést a munkája során. A romcc olyan kódot fordít, amely inicializálja a RAM-ot úgy, hogy SMBus -on keresztül eléri az SPD ROM-ot a DIMM-eken . A kód végrehajtása után a RAM használható.