UEFI, cos’è e come funziona la “nuova” tecnologia per il boot dei sistemi operativi più moderni

UEFI è una tecnologia relativamente nuova, che ha iniziato a diffondersi da circa 10 anni, per semplificare e velocizzare la procedura di avvio di un sistema operativo.

Il sistema operativo di pc, o qualunque dispositivo elettronico (PC, Tablet, smartphone ecc) contiene le istruzioni che permettono alla macchina di eseguire programmi, il sistema operativo è quindi un elemento fondamentale affinché la macchina possa funzionare ed essere utilizzata e solitamente queste istruzioni sono contenute in una partizione apposita delle unità di memoria, tuttavia, è necessario che la macchina, una volta alimentata, riconosca queste istruzioni e, per fare ciò, viene utilizzato un boot system.

In passato, indipendentemente dal sistema operativo, il boot system veniva eseguito dal BIOS, ma, da qualche anno, è sempre più diffuso l’utilizzo della tecnologia UEFI che ha reso obsoleto il più vecchio e ormai datato BIOS.

BIOS e UEFI, cenni storici.

Il termine BIOS è l’acronimo di Basic Input-Output System, ed è stato per molto tempo, il primo programma eseguito da un pc nel momento in cui questi veniva alimentato, risultando pertanto fondamentale al corretto avvio della macchina e del suo sistema operativo.

L’introduzione del BIOS nei calcolatori risale ai primi anni ottanta, ad opera di Intel, che dopo l’accordo tra Microsoft ed IBM che consentiva alla Microsoft di commercializzare il proprio sistema operativo a diversi produttori di calcolatori basati su processore Intel 8088, sviluppò un proprio sistema operativo.

Il sistema operativo di Intel, analogamente al sistema Microsoft, era strutturato in due parti, la prima parte venne chiamata BIOS e la seconda parte DOS, da non confondere con MS-DOS di Microsoft.

La componente BIOS conteneva tutte le istruzione da eseguire all’avvio del pc permettendo il caricamento da disco del sistema operativo vero e proprio, che, una volta in esecuzione, permetteva all’utente di interagire con la macchina, fornendo istruzioni ed avviando programmi.

La maggior parte dei sistemi operativi successivi al DOS hanno utilizzato la componente BIOS per il proprio avvio, almeno fino ai primi anni duemila.

All’alba del terzo millennio i sistemi operativi UNIX prima e GNU/Linux subito dopo, iniziarono ad abbandonare l’uso del BIOS in favore della più moderna e veloce tecnologia UEFI di Intel, dal 2010, con l’avvento di Windows 8, anche i sistemi Microsoft hanno iniziato ad adottare la tecnologia UEFI, rendendo sempre più obsoleto l’avvio del pc tramite BIOS.

schermata della bios setup utility

schermata della bios setup utility

Il brevetto di UEFI è di proprietà di Intel, già creatrice del BIOS negli anni 80 e proprio nella metà degli anni 80 venne teorizzato il funzionamento della futura tecnologia UEFI, acronimo di Unified Extensible Firmware Interface. Purtroppo alla metà degli anni 80 le limitazioni imposte da hardware ancora molto primitivi, resero impossibile l’attuazione di quelle teorie, portando così alla nascita del BIOS. Nei primi anni 2000 però, la tecnologia era profondamente mutata permettendo l’implementazione di UEFI.

Diversamente dal BIOS, che era scritto nella memoria ROM e veniva eseguito trasferendo le istruzioni nella memoria RAM del PC, permettendo il boot del pc, con l’utilizzo di UEFI le istruzioni di avvio vengono lette direttamente da una partizione dedicata del dispositivo di memoria, rendendo l’avvio molto più veloce. Vedremo in un paragrafo dedicato cosa succede esattamente durante la fase di boot di un pc, indipendentemente dal sistema operativo utilizzato. 

Nel  2006, Intel si fece promotore di un consorzio chiamato United EFI Forum, con l’intento di definire le specifiche tecniche di UEFI e successivamente di UEFI 2.0 e, con l’adesione al consorzio dei principali produttori di computer e sistemi operativi, il consorzio si è impegnato a sostituire completamente BIOS con UEFI entro il 2020.

Cos’è e come funziona UEFI

I computer per funzionare correttamente hanno bisogno di programmi in grado di tradurre gli input in un linguaggio comprensibile alla macchina, questi programmi sono contenuti nel sistema operativo, che è un insieme di programmi, ma, prima che il sistema operativo venga eseguito, la macchina ha bisogno di un programma che traduca le istruzioni del sistema operativo in un linguaggio comprensibile alla macchina. Nei pc più moderni questo compito è affidato all’interfaccia UEFI che permette al pc e al sistema operativo di comunicare.

Perché il pc possa decodificare, interpretare ed eseguire le istruzioni del firmware UEFI, è necessario che sulla macchina sia presente un firmware, generalmente installato sulla scheda madre.
Potremmo dire che UEFI è una sorta di mini sistema operativo semplificato, che ha il compito di avviare la sequenza di bootloader e la cui esecuzione termina nel momento in cui il sistema operativo vero e proprio è caricato e pronto all’uso.

grafico semplificato della sequenza di boot

Grafico della sequenza di boot nei sistemi UEFI

In modo analogo a quello che succedeva in passato con il BIOS, il software che consente l’esecuzione di UEFI è installato, in modo permanente, su un chip di memoria integrato presente sulla scheda madre e alimentato permanentemente dalla batteria di sistema.

Quando il pc viene alimentato ciò che succede è che il firmware UEFI carica i programmi archiviati nella partizione di sistema EFI o ESP, tra questi programmi ci sono il bootloader che a sua volta contiene le istruzioni per avviare i sistemi operativi contenuti in altre partizioni, il kernel, che contiene le istruzioni per gestire e assegnare risorse alle varie componenti del pc ed i file driver che contengono le istruzioni per l’utilizzo degli hardware installati.

Cos’è la partizione di sistema EFI ?

La partizione di sistema EFI è una partizione speciale del disco di memoria, formattata con un file system derivato dal system FAT32, che, come anticipato, contiene le istruzioni ed i programmi che il firmware UEFI dovrà eseguire ad ogni avvio del pc.

architettura del file system fat 32

La tecnologia UEFI sfrutta un architettura derivata dal file system Fat 32

Cosa succede durante il Boot di un pc?

Il boot di un pc non è altro che il suo avvio, questa fase molto delicata si compone di diverse routine, controlli e verifiche, e, indipendentemente dal sistema operativo utilizzato, segue lo stesso processo di avvio.

La sequenza di Boot inizia nel momento in cui viene premuto il tasto di alimentazione del pc e termina nel momento in cui il sistema operativo è stato completamente caricato ed è pronto all’uso. Nei pc con interfaccia UEFI la fase di Boot si compone di quattro fasi principali, in ognuna delle quali vengono avviate numerose routine.

Volendo schematizzare queste quattro fasi, il pc appena avviato esegue l’interfaccia firmware UEFI, questo programma è in grado di leggere le istruzioni contenute nella partizione EFI del disco di memoria o eventuali dischi di memoria esterni ed esegue il Boot Loader.

Il Boot Loader a sua volta avvia il kernel e l’interfaccia utente, che insieme costituiscono il sistema operativo. A questo punto, quando il pc è pronto per essere utilizzato dall’utente, il bootloader termina la propria esecuzione e con esso termina l’esecuzione del firmware.

COMMENTI

Share