Coreboot

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 7. července 2022; ověření vyžaduje 1 úpravu .

coreboot
Typ vestavěný software , zavaděč operačního systému a bezplatný a otevřený software
Autor Ronald G. Minnich, Eric Biederman, Li-Ta (Ollie) Lo, Stefan Reinauer a komunita corebootů
Zapsáno v C a jazyk symbolických instrukcí
První vydání září 1999 [2]
Hardwarová platforma ARM , IA-32 a x86_64
Nejnovější verze
Stát aktuální, ve vývoji
Licence GNU GPL 2
webová stránka coreboot.org
 Mediální soubory na Wikimedia Commons

coreboot (dříve LinuxBIOS [3] ) je projekt bezplatného firmwaru pro řadu počítačů schválený Free Software Foundation . Cílem projektu je nahradit proprietární a uzavřené systémy BIOS a UEFI používané většinou osobních počítačů odlehčenými systémy určenými výhradně pro spouštění a provoz moderních 32bitových a 64bitových operačních systémů .

Protože coreboot inicializuje hardware, musí být návrh přizpůsoben pro každou čipovou sadu a každou základní desku . Výsledkem je, že coreboot je dostupný pouze pro omezený počet hardwarových platforem a modelů základních desek.

Jednou z variant corebootu je Libreboot , varianta corebootu, která si klade za cíl zcela eliminovat proprietární firmware (Bloby) .

Obecné informace

Typickým úkolem corebootu je načíst linuxové jádro , ale kromě toho může coreboot načítat a spouštět spustitelné soubory ELF , běžně označované jako payloads .  Užitnou zátěží může být například Etherboot , který je schopen nabootovat Linux přes síť, nebo SeaBIOS  , bezplatná implementace BIOSu, která umožňuje nabootovat systémy Windows 2000/XP/Vista/7 a *BSD (dříve se používala zátěž ADLO pro toto ). Coreboot může zavést operační systém z jakéhokoli podporovaného zařízení, jako je Myrinet , QsNet nebo SCSI .

Coreboot provede hardwarovou inicializaci, kterou operační systém nemůže plně provést, po které předá řízení modulu Payload, který může provádět další načítání OS, případně provádět některé další užitečné akce.

Coreboot podporuje architektury x86 , x86-64 , ARM , ARM64, MIPS a RISC-V .

Rozdíl mezi corebootem a Legacy BIOSem je ten, že x86 verze se spustí v chráněném režimu po provedení pouhých šestnácti instrukcí procesoru, zatímco typické x86 BIOSy běží většinou v reálném režimu procesoru. Díky kombinaci těchto faktorů a jednoduchosti vnitřního designu je bootování z Corebootu velmi rychlé (v současné době je záznam studeného startu s CoreBootem asi 3 sekundy).

Přestože měl LinuxBIOS ve svém názvu slovo Linux, LinuxBIOS mohl načítat i jiná jádra operačního systému. LinuxBIOS by například mohl přímo načíst jádro Plan 9 . Proto byl přejmenován na coreboot .

Užitečné zatížení

Samotný Coreboot je jen malý program, který inicializuje hardware na základní desce a poté se řízení přenese do jednoho z programů užitečného zatížení:

Vývoj a ladění corebootu

Protože coreboot musí inicializovat hardware, musí být přizpůsoben tak, aby podporoval každý systémový řadič ( čipset ) a každou desku založenou na takovém řadiči. Přidání podpory pro jakoukoli novou desku je komplikované potížemi s laděním: informace o ladění jsou vydávány pomocí toho či onoho hardwaru, ale jak uspořádat výstup, když výstupní prostředky ještě nebyly inicializovány?

Coreboot používá několik zařízení a triků, které usnadňují ladění:

Inicializace RAM

Nejsložitější částí corebootu je kód, který inicializuje RAM a řadič RAM. Faktem je, že dokud není RAM inicializována, nelze ji používat. Zřejmým způsobem, jak inicializovat řadič RAM a samotnou RAM bez přístupu k nim, je použití obecných registrů procesoru. Pro zjednodušení tohoto složitého úkolu byl vyvinut speciální kompilátor jazyka C  - romcc ( angl.  romcc ) , který generuje kód, který během své práce nezpřístupňuje RAM. romcc zkompiluje kód, který inicializuje RAM přístupem k SPD ROM na DIMM přes SMBus . Po provedení tohoto kódu lze použít RAM.

Viz také

Poznámky

  1. Roth M. Oznamuje coreboot 4.1 – 2022.
  2. https://www.linuxjournal.com/article/7170
  3. [LinuxBIOS] Vítejte v corebootu (12. ledna 2008). Získáno 2. července 2019. Archivováno z originálu 1. června 2013.
  4. Archivovaná kopie . Získáno 18. března 2012. Archivováno z originálu dne 23. dubna 2012.

Odkazy