Coreboot: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
|||
Riga 29:
== 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 [[GNU GRUB|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 <ref>{{Cite web|url=http://lxr.linux.no/coreboot-v3+r777/arch/x86/geodelx/stage0.S|title=coreboot v3 early startup code|access-date=17 August 2008|archive-url=https://archive.today/20120710041412/http://lxr.linux.no/coreboot-v3+r777/arch/x86/geodelx/stage0.S|archive-date=10 July 2012|url-status=dead}}</ref> ''(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 (linguaggio di programmazione)|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 <ref>{{cite web|url=https://phoenixts.com/blog/uefi-vs-legacy-bios/|title=Comparison of UEFI and legacy BIOS}} pronouncing that same advantage for UEFI</ref> 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<ref>{{cite web|url=https://review.coreboot.org/cgit/coreboot.git/commit/src/lib/gnat?id=e0ed9025cf7453212e5e5a845e34e0b7ecfa3eb9|title=commit}} adding that support</ref> ma, allo stato attuale, questa opzione è utilizzata solo sporadicamente.
== Varianti ==
|