Differenza tra BIOS e UEFI

Cominciamo a descrivere cosa sia ormai l'obsoleto B.I.O.S. (Basic Input Output Stream):




Il Basic Input-Output System o BIOS, è un insieme di routine software, generalmente scritte su memoria ROM, FLASH o altra memoria non volatile, che fornisce una serie di funzioni di base per l'accesso all'hardware del computer e alle periferiche integrate nella scheda madre da parte del sistema operativo e dei programmi. Nei computer IBM-compatibili la ROM del BIOS contiene anche il POST, il primo programma che viene eseguito dopo l'accensione, coinvolto dunque nella fase di avvio (boot) del sistema di elaborazione.



Avvio del PC
A partire dall'introduzione dei primi IBM PC XT e compatibili nell'agosto del 1981, è il BIOS che ha il compito di dare i primi comandi al sistema durante la fase di avvio, detta boot process. In questa fase, dopo i controlli preliminari sulla funzionalità dei componenti fondamentali (interrupt, RAM, tastiera, dischi, porte), per sapere come inizializzare correttamente le periferiche presenti il BIOS legge alcuni parametri (come l'ora e la data correnti) da una piccola memoria RAM CMOS tamponata, cioè mantenuta alimentata anche a PC spento da una batteria, del tutto separata dalla RAM principale del computer.

Nelle moderne implementazioni del BIOS possono essere selezionati i più diversi tipi di supporto per l'avvio e sono presenti numerose funzioni per la diagnostica e la personalizzazione di importanti funzioni relative all'utilizzo della RAM, alle opzioni per l'overclocking e sono presenti segnali di allarme in caso di malfunzionamenti delle ventole o eccessivi aumenti della temperatura.

Sequenza tipica dei test eseguiti durante il POST

Test dei registri del processore con identificazione della CPU (viene mostrato il modello della CPU sul monitor)

Controllo della ROM del BIOS

Controllo della tastiera

Controllo della memoria CMOS (memoria che contiene le impostazioni del BIOS salvate)

Test del Clock di sistema

Test della quantita di RAM di sistema (viene mostrato sul monitor la quantità di RAM e il tipo di memoria)

Verifica della memoria base di 64 Kb per la copia (shadowing) del BIOS

Test e attivazione della memoria cache L2 del processore

Test della batteria della memoria CMOS

Verifica delle differenti modalità video con test della scheda video

Test della modalità protetta

Test del controller DMA, degli IRQ ed RTC

Inizializzazione e programmazione del Plug&Play e degli I/O (viene mostrata la configurazione degli IRQ sul monitor)

Inizializzazione del Chipset

Verifica del floppy e delle unità IDE (viene mostrato il modello delle unità IDE installate)

Inizializzazione del PCI, shadow RAM e Power Manager

Viene mostrata nel monitor la configurazione del sistema

...

dopo tutta la routine dei controlli vediamo le impostazioni più comuni del bios:
Le normali impostazioni del BIOS includono cose di base, come l’orologio e il calendario del computer stesso.

Le impostazioni più avanzate possono includere la quantità di memoria allocata per l’uso del video o se richiedere o meno una password all’avvio del sistema.

I BIOS che sono tra i più moderni vi permetteranno anche di definire la sequenza di avvio. 
Ad esempio, il sistema potrebbe essere impostato per l’avvio da una chiave USB in primo luogo, e se non se ne trova nessuna, può passare all’ unità CD-ROM.
Se il sistema non trova Nè una chiave USB avviabile né un’unità CD-ROM nel vostro sistema, allora sià avvierà da disco rigido come impostazione predefinita.

Bene continuiamo con le curiosità
Come vengono memorizzate le impostaizoni nel BIOS?
Il BIOS è stato originariamente memorizzato su un chip chiamato Programmable Read Only Memory (PROM).

Poiché si trattava di chip che potevano essere programmati solo una volta, l’aggiornamento del BIOS di un computer si doveva necessariamente fare sostituendo fisicamente il chip.

Dai primi anni novanta, il BIOS è stato realizzato sull’ Erasable Programmable Read Only Memory (EPROM). La memoria Eprom può essere cancellata utilizzando la luce ultravioletta e poi riprogrammata, se è necessario aggiornare il sistema del BIOS.

La riprogrammazione di una EPROM richiede di rimuovere il chip e metterlo in un lettore di EPROM.

Ormai però i più moderni computer utilizzano una Electric Erasable Programmable Read Only Memory (EEPROM). Le EEPROM possono essere cancellate e riprogrammate direttamente nel vostro computer.

Aggiornamenti del BIOS: si o no forse?
è una pratica comune l'aggiornamento dei Bios ma sappiamo realmente cosa facciamo?
Nella maggior parte dei casi, il computer non avrà bisogno di un aggiornamento del BIOS.

Tuttavia, se un grave difetto di sicurezza o relativo alle prestazioni viene scoperto nel BIOS tutt’ora in uso, il produttore del computer può raccomandarvi di aggiornare il vostro BIOS.
Dato che stiamo parlando di una componente che controlla così tante funzioni del computer a basso livello, bisogna essere molto cauti con l’installazione degli aggiornamenti del BIOS, specialmente se questi non vengono proposti e confezionati dalla casa produttrice dal computer: in sostanza, evitate di scaricare aggiornamenti di terze parti. Con il flash di un bios errato BUTTIAMO letteralmente la scheda madre rendendola così solo un inutile fermacarte... Personalmente se vedo che un pc non ha problemi di stabilità o altro lo lascio stare dato che un flash andato a male rischia di far spendere altri $$oldi inutilmente come dico sempre se funziona Bene non toccarlo.

Bene dopo queste considerazioni e brevi spiegazioni passiamo a U.E.F.I. (Unified Extensible Firmware Interface):



Cominciamo con un po' di storia

UEFI, conosciuto precedentemente come EFI (Extensible Firmware Interface), è una tecnologia annunciata inizialmente solo da Intel al momento della presentazione della propria architettura IA-64 del processore Itanium e poi ripresentata in maniera decisamente più consistente insieme a Microsoft a fine 2003. Lo scopo di UEFI è quello di sostituire gradualmente i vecchi BIOS delle schede madri e dopo un timido debutto sul mercato agli inizi del 2006 grazie ai primi iMac Intel Core Duo di Apple, è stata introdotta in volumi solo con i processori Intel Core con architettura Sandy Bridge, dopo esser stata affiancata a un'altra tecnologia Intel arrivata a fine 2005, iAMT per la gestione remota dei sistemi.

All'incirca dal 2010 i nuovi computer (non solo i comuni PC ma anche le workstation e i server) hanno cominciato progressivamente a essere corredati dall'UEFI o comunque con firmware della scheda madre upgradabile a BIOS con almeno la funzione di efi-boot del sistema operativo come opzione.

UEFI consente ai produttori di integrare nel firmware della scheda madre applicazioni e nuove funzionalità, fra cui strumenti per la diagnostica e il ripristino dei dati, servizi di crittografia e funzionalità per la gestione dei consumi. Uno dei grandi vantaggi di UEFI, rispetto al vecchio BIOS, è l'interfaccia grafica che lo fa assomigliare ad un'applicazione software comune. Questo è dovuto al fatto che la limitazione di comandi a 16 bit e con 1 MB appena di memoria caricata è stata superata. Inoltre, mediante l'interfaccia UEFI del firmware è possibile eseguire molte operazioni di gestione e amministrazione prima impossibili con BIOS.

Inoltre, tramite le applicazioni UEFI e i driver UEFI indipendenti dal sistema operativo, facilita la procedura di avvio e offre molta flessibilità amministrativa. Con sistemi Windows (si pensi alle versioni server) l'unico sistema per partizionare dischi con capacità maggiore di 2 TB (per le note limitazioni di MBR) è quello di avere una piastra madre dotata di firmware UEFI (utilizzando sistemi operativi a 64 bit per i volumi avviabili).

UEFI rende più semplice la gestione di PC e server da remoto, aiutando così le aziende a ridurre i costi di manutenzione e supporto, e può gestire direttamente le connessioni di rete per connettersi ad una LAN o a Internet. A tal proposito i BIOS basati sullo standard UEFI sono dotati di alcune funzionalità specifiche per la gestione delle reti ed, eventualmente, anche di un browser Web. Inoltre, superando il MBR e sostituendolo con lo standard GPT, si può partizionare il disco con sole partizioni primarie senza più la necessità di partizioni estese e logiche.

L'altra caratteristica di UEFI è la capacità di ridurre, anche drasticamente, i tempi di caricamento del sistema operativo e quello di supportare, similmente a quanto succede con i computer palmari, forme di avvio istantaneo. L'UEFI ha anche il compito di dotare il firmware del PC di un'interfaccia grafica efficace, facile da usare e in grado di supportare le risoluzioni video permesse dalle moderne schede grafiche. In aggiunta a questo, l'UEFI fornisce un ambiente per il boot multipiattaforma capace di fornire i servizi base richiesti dai sistemi operativi. Infatti, i programmi UEFI sono scritti in linguaggi molto più moderni di quelli utilizzati per sviluppare i BIOS.

In un certo senso, UEFI si può considerare un piccolo sistema operativo dedicato a presiedere tutte quelle operazioni che intercorrono fra l'accensione fisica della macchina e il lancio del sistema operativo vero e proprio, superando però tutte le problematiche emerse negli anni con gli attuali BIOS. Come tale infatti, è in grado di far girare applicazioni di alto livello scritte attraverso strumenti di programmazione standard. Tutto questo verrà reso possibile dal fatto che le interfacce di UEFI sono appoggiate da codice in linguaggio C++, mettendo così definitivamente al bando l'ostico codice assembly dei BIOS tradizionali.

Per Microsoft (che fa parte del consorzio UEFI composto da oltre 140 aziende), il firmware UEFI, oltre a "migliorare l'interoperabilità del software e risolvere le limitazioni del BIOS", presenta i seguenti vantaggi:

miglioramento della sicurezza grazie alla protezione del processo prima dell'avvio da attacchi di tipo bootkit.
maggiore velocità dei tempi di avvio e di ripresa dallo stato di ibernazione.
supporto di unità maggiori di 2,2 terabyte (TB).
supporto di driver di dispositivi firmware a 64 bit che il sistema può utilizzare per indirizzare più di 17,2 miliardi di gigabyte (GB) di memoria durante l'avvio.
possibilità di utilizzare il BIOS con hardware UEFI.
Sebbene UEFI sia già arrivato da tempo sul mercato nei recenti iMac, questi si appoggiano a un chipset proprietario sviluppato da Apple. Il primo chipset di Intel a supportare i BIOS UEFI è arrivato all'inizio del 2007 grazie alla piattaforma mobile Santa Rosa basata sul chipset Crestine e il processore Merom, ma non ha incontrato il favore dei produttori di sistemi.

un breve accenno ai Sistemi Operativi che supportano UEFI


Linux è in grado di utilizzare UEFI all'avvio dall'inizio del 2000, usando il boot loader UEFI elilo o, più recentemente, una versione UEFI di GRUB.
HP-UX usa UEFI come sistema di boot sui sistemi IA-64 dal 2002.
HP OpenVMS usa UEFI su IA-64 dalla prima valutazione del suo rilascio nel dicembre 2003 e dai rilasci di produzione dal gennaio 2005.
Apple impiega UEFI per la sua linea di Mac basata su chipset Intel. Mac OS X 10.4 Tiger per Intel e Mac OS X 10.5 Leopard supportano UEFI v1.10 in modalità 32-bit anche su CPU a 64-bit.
La versione Itanium di Windows 2000 supporta UEFI 1.10. Windows Server 2003 per IA-64, Windows XP 64-bit Edition e Windows 2000 Advanced Server Limited Edition, tutte versioni per la famiglia di processori Intel Itanium, supportano UEFI, un requisito della piattaforma dovuto alla specifica DIG64.
Microsoft ha introdotto il supporto UEFI per il sistema operativo Windows x64 con Windows Server 2008 e Windows Vista Service Pack 1. Anche le versioni a 64-bit di Windows 7 sono compatibili con UEFI. Microsoft non offriva allora un supporto per UEFI a 32-bit mentre a partire da Windows 8 tutte le altre edizioni di Windows (32 e 64 bit) sono ovviamente compatibili con UEFI, anzi sono specificatamente sviluppate avendo il nuovo standard di firmware come base.

I principali vantaggi di UEFI. Differenze tra UEFI e BIOS

Le specifiche di UEFI sono state pensate per rendere "il nuovo BIOS" indipendente dall'hardware e per mettere a disposizione del sistema operativo servizi di boot e runtime direttamente accessibili.

UEFI supera le limitazioni del vecchio BIOS consentendo, tra l'altro:
- boot da dischi particolarmente capienti (di capacità superiore ai 2 Terabytes) utilizzando GPT (GUID Partition Table). GPT è parte integrante dello standard UEFI e porta con sé tutta una serie di novità rispetto all'utilizzo del MBR (Master Boot Record).
- architettura indipendente da CPU e driver
- ambiente preOS (accessibile cioè all'infuori del sistema operativo, prima della fase di boot di quest'ultimo) molto più completo e versatile rispetto al passato. Si pensi che di solito UEFI offre anche il supporto della connettività di rete.
- design modulare
- eliminazione della necessità di un bootloader (fatta eccezione per utilizzi più avanzati)
- esecuzione di moduli firmati (funzionalità Secure Boot)