Quando un computer viene acceso, prima ancora che Windows, Linux o un altro sistema operativo possano avviarsi, entra in funzione un componente fondamentale del sistema: il firmware della scheda madre.
Per molti anni questo ruolo è stato svolto dal BIOS, acronimo di Basic Input/Output System. Nei sistemi moderni, invece, il BIOS tradizionale è stato progressivamente sostituito da UEFI, acronimo di Unified Extensible Firmware Interface.
Entrambi hanno lo stesso obiettivo generale: inizializzare l'hardware e preparare il computer all'avvio del sistema operativo. Tuttavia, il modo in cui svolgono questo compito è profondamente differente.
Che cos'è il BIOS
Il BIOS è il firmware tradizionalmente utilizzato nei personal computer compatibili IBM PC.
Si trova memorizzato in una memoria non volatile presente sulla scheda madre e viene eseguito immediatamente dopo l'accensione del computer.
Il BIOS svolge alcune funzioni fondamentali:
- inizializza la CPU;
- inizializza la memoria RAM;
- rileva le periferiche principali;
- controlla tastiera, storage e dispositivi di base;
- esegue il POST;
- individua il dispositivo dal quale effettuare il boot;
- carica il codice necessario per avviare il sistema operativo.
Il POST: cosa succede appena accendiamo il computer
Una delle prime operazioni eseguite dal firmware è il POST – Power-On Self-Test.
Il sistema verifica che i principali componenti hardware siano disponibili e funzionanti.
Tra gli elementi verificati possono esserci:
- CPU;
- RAM;
- controller;
- scheda video;
- tastiera;
- dispositivi di storage.
Se viene rilevato un problema grave, il sistema può interrompere l'avvio e segnalare l'errore tramite messaggi sullo schermo, LED diagnostici o sequenze acustiche.
Come il BIOS avvia il sistema operativo
Nel modello tradizionale BIOS, il firmware cerca un dispositivo avviabile secondo l'ordine configurato nel Boot Order.
Una volta trovato il disco, il BIOS legge normalmente il primo settore del dispositivo.
Nei sistemi tradizionali questo settore contiene il cosiddetto:
MBR – Master Boot Record
L'MBR contiene una piccola quantità di codice eseguibile e le informazioni necessarie per individuare le partizioni del disco.
I limiti storici del BIOS
Il BIOS nasce in un'epoca nella quale l'hardware era molto diverso da quello attuale.
Nel corso degli anni sono quindi emersi diversi limiti strutturali.
Tra i più importanti troviamo:
- modalità operativa legata all'architettura storica x86;
- interfaccia molto semplice;
- boot basato tradizionalmente su MBR;
- limitazioni nella gestione dei dischi di grandi dimensioni;
- limitazioni nel numero e nella struttura delle partizioni;
- scarsa estensibilità rispetto ai firmware moderni;
- assenza nativa di funzionalità moderne come Secure Boot.
Che cos'è UEFI
UEFI – Unified Extensible Firmware Interface rappresenta l'evoluzione moderna del firmware di avvio.
UEFI non è semplicemente un BIOS con un'interfaccia grafica più moderna.
Si tratta di un'architettura differente, progettata per superare numerosi limiti del BIOS tradizionale.
UEFI offre un ambiente firmware molto più ricco, capace di:
- gestire driver firmware;
- leggere filesystem;
- eseguire applicazioni EFI;
- gestire variabili persistenti;
- supportare sistemi di sicurezza avanzati;
- gestire direttamente il bootloader del sistema operativo.
UEFI utilizza file eseguibili
Una delle differenze più interessanti rispetto al BIOS riguarda il processo di avvio.
Nel modello UEFI il firmware non deve necessariamente eseguire il codice presente nel primo settore del disco.
UEFI può invece leggere una particolare partizione denominata:
EFI System Partition – ESP
All'interno della EFI System Partition sono memorizzati i programmi di avvio con estensione:
.efi
Questi file sono veri e propri eseguibili che il firmware UEFI è in grado di caricare direttamente.
GPT: la tabella delle partizioni moderna
UEFI viene normalmente associato a un altro standard moderno:
GPT – GUID Partition Table
GPT rappresenta l'evoluzione del vecchio schema MBR.
Tra i suoi vantaggi troviamo:
- supporto a dischi molto più grandi;
- numero molto maggiore di partizioni;
- identificatori univoci GUID;
- copie ridondanti delle informazioni di partizionamento;
- meccanismi di verifica dell'integrità delle strutture GPT.
BIOS e MBR non sono sinonimi
È però importante non confondere i concetti.
BIOS e MBR sono due tecnologie differenti:
- BIOS è il firmware;
- MBR è uno schema di partizionamento e un meccanismo storico di boot.
Analogamente:
- UEFI è il firmware;
- GPT è lo schema moderno di partizionamento.
Nella pratica le combinazioni più comuni sono:
BIOS + MBR
UEFI + GPT
ma dal punto di vista tecnico esistono configurazioni e modalità di compatibilità più articolate.
Il Compatibility Support Module
Per facilitare la transizione dai vecchi sistemi BIOS ai moderni sistemi UEFI, molti firmware hanno implementato il cosiddetto:
CSM – Compatibility Support Module
Il CSM permette a un firmware UEFI di comportarsi, entro certi limiti, come un BIOS tradizionale e di avviare sistemi progettati per il vecchio modello.
Nei sistemi più recenti questa modalità viene progressivamente abbandonata.
Secure Boot
Una delle funzionalità più importanti introdotte nell'ecosistema UEFI è Secure Boot.
Secure Boot ha l'obiettivo di controllare che il software eseguito nelle prime fasi dell'avvio sia considerato attendibile.
Il firmware verifica le firme crittografiche dei componenti di boot.
Una sequenza semplificata può essere rappresentata così:
UEFI
?
verifica firma
?
bootloader
?
sistema operativo
L'obiettivo è rendere più difficile l'esecuzione di codice non autorizzato prima del caricamento del sistema operativo.
Le variabili UEFI
UEFI dispone inoltre di una memoria persistente nella quale possono essere conservate variabili utilizzate dal firmware.
Tra queste troviamo informazioni relative al boot.
Ad esempio:
BootOrder
Boot0000
Boot0001
Boot0002
...
Queste variabili permettono al firmware di conoscere quali bootloader siano configurati e in quale ordine debbano essere provati.
BIOS e UEFI a confronto
| Caratteristica | BIOS | UEFI |
|---|---|---|
| Generazione | Architettura storica PC | Firmware moderno |
| Boot tipico | Codice nel MBR | Applicazioni .efi nella ESP |
| Partizionamento tipico | MBR | GPT |
| Secure Boot | No | Sì |
| Filesystem firmware | Molto limitato | Può accedere alla EFI System Partition |
| Boot manager | Generalmente demandato al codice su disco | Gestito direttamente dal firmware |
| Interfaccia | Storicamente testuale | Può essere grafica e supportare mouse |
Perché oggi si continua a chiamarlo BIOS?
Nel linguaggio comune si sente ancora frequentemente dire:
“Entra nel BIOS.”
In moltissimi computer moderni, tuttavia, quello che viene chiamato BIOS è tecnicamente un firmware UEFI.
Il termine BIOS è rimasto nell'uso comune perché per decenni ha identificato l'interfaccia di configurazione della scheda madre.
Il Boot Manager di Windows
In un sistema Windows moderno installato in modalità UEFI, una parte fondamentale del processo di avvio è rappresentata da:
Windows Boot Manager
Il relativo file EFI è normalmente presente all'interno della EFI System Partition.
Un percorso tipico è:
\EFI\Microsoft\Boot\bootmgfw.efi
Il firmware UEFI può quindi caricare direttamente questo eseguibile.
UEFI e Linux
Anche Linux supporta pienamente UEFI.
Bootloader come GRUB possono essere installati come applicazioni EFI all'interno della ESP.
Un sistema dual boot può quindi contenere più bootloader contemporaneamente:
\EFI\Microsoft\...
\EFI\ubuntu\...
\EFI\debian\...
Il firmware mantiene nelle proprie variabili l'ordine con cui questi componenti devono essere avviati.
UEFI e informatica forense
La differenza tra BIOS e UEFI è importante anche nell'informatica forense.
Quando si analizza un computer moderno possono risultare rilevanti:
- schema di partizionamento GPT;
- EFI System Partition;
- bootloader presenti;
- configurazione Secure Boot;
- variabili UEFI;
- ordine di boot;
- eventuali bootloader non standard;
- modifiche effettuate alla catena di avvio.
Questi elementi possono aiutare a comprendere come il sistema fosse configurato e quali componenti venissero caricati prima dell'avvio del sistema operativo.
La EFI System Partition non deve essere ignorata
Durante l'acquisizione forense di un disco è importante preservare l'intero dispositivo e non soltanto la partizione contenente Windows.
La EFI System Partition è normalmente di dimensioni ridotte, ma può contenere elementi importanti relativi al processo di boot.
Una copia limitata alla sola partizione principale potrebbe quindi perdere informazioni potenzialmente rilevanti.
Quando possibile, l'acquisizione di un disco dovrebbe comprendere l'intero supporto fisico e non soltanto la partizione visibile all'utente.
Partizioni EFI, Recovery e altre aree possono contenere informazioni importanti per la ricostruzione tecnica del sistema.
UEFI non significa automaticamente GPT
Anche se nella pratica moderna UEFI e GPT sono quasi sempre utilizzati insieme, è utile ricordare che rappresentano concetti distinti.
UEFI riguarda il firmware e il processo di boot.
GPT riguarda invece la struttura con cui vengono descritte le partizioni sul disco.
Come capire se Windows è avviato in modalità UEFI
Su un sistema Windows è possibile verificarlo con diversi strumenti.
Uno dei sistemi più semplici consiste nell'eseguire:
msinfo32
All'interno delle informazioni di sistema è possibile verificare il valore:
Modalità BIOS
che può indicare, ad esempio:
UEFI
oppure una modalità legacy.
Una rappresentazione semplice
Il modello BIOS tradizionale può essere sintetizzato così:
ACCENSIONE
?
BIOS
?
MBR
?
BOOTLOADER
?
SISTEMA OPERATIVO
Il modello UEFI moderno può invece essere rappresentato come:
ACCENSIONE
?
UEFI
?
EFI SYSTEM PARTITION
?
FILE .EFI
?
BOOTLOADER
?
SISTEMA OPERATIVO
Conclusioni
BIOS e UEFI svolgono entrambi il compito fondamentale di inizializzare il computer e permettere l'avvio del sistema operativo, ma appartengono a generazioni tecnologiche profondamente differenti.
Il BIOS è legato all'architettura storica dei PC e al tradizionale meccanismo di avvio basato sul Master Boot Record.
UEFI introduce invece un vero ambiente firmware, capace di leggere la EFI System Partition, eseguire applicazioni .efi, gestire direttamente le configurazioni di boot e implementare funzionalità di sicurezza come Secure Boot.
Nel BIOS tradizionale il firmware cerca del codice da eseguire sul disco.
Con UEFI il firmware conosce invece direttamente i bootloader e può caricare veri programmi
.efi presenti nella EFI System Partition.
In forma estremamente sintetica: BIOS ? MBR ? codice di boot
UEFI ? EFI System Partition ? applicazione .efi
