Coreboot (noto in precedenza come LinuxBIOS) ,è un progetto che mira a sostituire il firmware proprietario (BIOS o UEFI), presente nella maggior parte dei computer, con un firmware leggero e progettato per eseguire solo lo stretto necessario per caricare ed eseguire un moderno sistema operativo a 32 o 64 bit.
Il progetto LinuxBIOS è nato nel 1999 nell'Advanced Computing Laboratory del Los Alamos National Laboratory (LANL). L'obiettivo principale era quello di creare un BIOS che si avviasse rapidamente e gestisse gli errori in modo intelligente. Attualmente, coreboot, è distribuito sotto licenza GNU General Public License versione 2 (GPLv2).
Al progetto contribuiscono realtà quali LANL, SiS, AMD, Coresystems e Linux Networx, Inc. Al loro fianco si trovano produttori di schede madri come MSI, Gigabyte e Tyan, che offrono coreboot insieme al loro BIOS standard o forniscono specifiche delle interfacce hardware per alcune delle loro schede madri.
Dal 2006 Google è diventato sponsor coreboot e dal 2009 si è aggiunto CME Group (un gruppo di scambi di futures).
Coreboot è molto diffuso in ambito Chromebook: eccetto i primi tre modelli, tutti lo adottano ed eseguono. Il codice di Das U-Boot è stato integrato in coreboot per offrire supporto ai processori ARM.
Caratteristiche
All'avvio del computer, Coreboot, ne prende il controllo e inizializza l'hardware di base, come la CPU, la memoria e le periferiche. Una volta completata questa fase carica un "payload", ovvero un programma che può essere un boot loader tradizionale (come GRUB) o direttamente un sistema operativo.
Coreboot esegue l'inizializzazione dell'hardware e quindi passa il controllo al sistema operativo. Di conseguenza, una volta che il sistema operativo ha preso il controllo della macchina, non viene eseguito alcun codice coreboot. Una peculiarità di coreboot è che la sua versione x86 funziona in modalità a 32 bit dopo aver eseguito solo dieci istruzioni (la maggior parte degli altri BIOS x86 funzionano esclusivamente in modalità a 16 bit). Questo lo rende molto simile a UEFI utilizzato sull'hardware dei PC più recenti.
Coreboot è scritto prevalentemente in C e, in piccola parte, in linguaggio assembly. La scelta di un linguaggio di programmazione come C consente un controllo del codice più semplice rispetto a quanto avviene nei BIOS generalmente scritti in assembly che si traduce in una maggiore sicurezza.
Per aumentare ulteriormente il livello di sicurezza, viene offerto il supporto di build e runtime per scrivere parti di coreboot in Ada ma, allo stato attuale, questa opzione è utilizzata solo sporadicamente.
Varianti
Esistono numerose varianti di Coreboot, ciascuna con obiettivi leggermente diversi:.
Libreboot - Una variante con l'obiettivo principale di rimuovere alcuni blob binari.
osboot - Una variante simile a Libreboot con politiche differenti rispetto all'eliminazione di alcuni blob binari e nata per aumentare il supporto e la stabilità dell'hardware. Il progetto, nel novembre 2022 è confluito in Libreboot.
MrChromebox - Una versione modificata di coreboot per dispositivi basati su ChromeOS.
GNU Boot - Una variante nata con l'obiettivo principale di rimuovere tutti i blob binari.
Canoeboot - Progetto più sperimentale e meno conservativo rispetto a Coreboot che potrebbe includere funzionalità più recenti o sperimentali.
Dasharo - Una distribuzione basata su coreboot sviluppata da 3mdeb. Mirano a rendere più semplice per i produttori la spedizione di prodotti con coreboot.
Skulls- Una variante che punta alla facilità di installazione.
↑[LinuxBIOS] Welcome to coreboot, su coreboot.org, 12 gennaio 2008. URL consultato il 22 ottobre 2024 (archiviato dall'url originale il 1º giugno 2013).
↑Google Sponsors the LinuxBIOS project, su google-code-updates.blogspot.com. URL consultato il 29 settembre 2023 (archiviato dall'url originale il 6 febbraio 2012).
↑commit, su review.coreboot.org. adding that support
↑Binary Blob Reduction Policy, su libreboot.org, 1º novembre 2023. URL consultato il 1º novembre 2023 (archiviato dall'url originale il 1º novembre 2023).
↑osboot project, su osboot.org, 15 marzo 2021. URL consultato il 26 maggio 2023 (archiviato dall'url originale il 15 marzo 2021).
↑Dasharo • GitHub, su github.com, 22 ottobre 2023. URL consultato il 16 febbraio 2024 (archiviato dall'url originale il 16 febbraio 2024).
↑About Dasharo - Dasharo Universe, su docs.dasharo.com, 9 febbraio 2024. URL consultato il 16 febbraio 2024 (archiviato dall'url originale il 16 febbraio 2024).
↑Martin Kepplinger-Novakovic, merge/skulls, 28 maggio 2024. URL consultato il 29 maggio 2024.
↑(EN) About Heads, su Heads. URL consultato il 29 maggio 2024.
↑linuxboot/heads, LinuxBoot, 28 maggio 2024. URL consultato il 29 maggio 2024.