# Coreboot

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.
È un progetto supportato dalla Free Software Foundation. Esiste una variante completamente libera da blob binari chiamata Libreboot.

## Storia

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.
* Heads - Una variante attenta alla sicurezza fisica e all'utilizzo di software libero, consigliata per l'uso con QubesOS.

## European Coreboot Conference

La prima European Coreboot Conference è stata una conferenza organizzata nell'ottobre 2017 e durata tre giorni.

### Storico conferenze

| Evento e anno | Date | Città ospite | Luogo | Risorse | Temi trattati |
| ECC2017 | 26.10. – 29.10 | Bochum, Germania | Centro convegni RUB | https://ecc2017.com | |