Archivio

Posts Tagged ‘uefi’

Linux e UEFI – Introduzione

Prima di iniziare a leggere Vi informo che questo primo articolo è puramente teorico ; quindi se no Vi interessa la teoria non sprecate il Vostro tempo ed aspettate l’uscita dell’articolo successivo .

Un po’ di Storia

EFI è l’acronimo di Extensible Firmware Interface , lo scopo di questa tecnologia è di sostituire Il vecchio e limitato BIOS delle schede madri .Inizialmente l’esigenza venne durante lo sviluppo della prima piattaforma Intel-HP Itanium a metà degli anni 90 . Il BIOS ha diverse limitazioni ( 16-bit processor mode , 1 MB si spazio indirizzabile, etc.) e queste non erano accettabili per la piattaforma Itanium.
Nel 2005 Intel cesso lo sviluppo della EFI ed entro a far parte del Unified EFI Forum , che ha evoluto e standardizzato le specifiche diventando così UEFI.
La versione 2.1 della UEFI fu rilasciata nel 2007 e aggiunse la crittografia , l’autenticazione tramite rete e l’architettura per l’interfaccia utente .

Inizialmente nel 2006 Apple lo inserì nei primi iMac Intel Dual Core , ma la sua vera introduzione ebbe inizio con l’introduzione da parte di Intel dei processori con architettura Sandy Bridge.
Dal 2011 ASRock, ASUSTeK, Gigabyte e MSI hanno lanciato diverse schede madri con UEFI

Introduzione

Per capire i vantaggi che introduce l’UEFI rispetto al vecchio BIOS , occorre prima capire cosa sia in generale un firmware ed in cosa l’UEFI differisce dal BIOS.
In generale il firmware è un software residente nella memoria non volatile di un dispositivo ; un esempio potrebbero essere le schede che inseriamo nella motherboard; queste hanno al loro interno un firmware.
Sia il BIOS che l’UEFI risiedono nella scheda madre , ed eseguono diverse operazioni molto importanti; all’interno di essi vi è il codice che viene eseguito dal computer all’avvio, il codice per il controllo del hardware e le funzioni per leggere ed eseguire programmi dal hard disk.

Il BIOS fu introdotto con i pc IBM nel 1981 , ed è molto limitato per gli attuali standard . Il BIOS carica i primi settori del disco di avvio e gli esegue; negli hard disk i primi settori è chiamato Master Boot Record (MBR) e le sue limitazioni hanno portato diversi problemi :

  • Il bootloader residente nel MBR è piccolo , per tale motivo tipicamente questo pezzo di software serve caricare altro codice presente nella partizione di boot .
  • Il processo di boot è vulnerabile a cambiamenti apportati al MBR . L’installazione si nuovi OS può portare la riscrittura dei dati nel MBR e rendere impossibile l’avvio di OS esistenti . Alcuni Virus potevano anche insediarsi nel MBR .
  •  Il “design” del BIOS risale a circa 30 anni fa , per tale motivo opera in modalità 16-bit 8086 . Nei computer a 32-bit o a 64-bit non vi è la necessità di operare in questa modalità , se non per il processo di boot ; i produttori di CPU sono perciò costretti a continuare ad inserire il codice per questa modalità unicamente per il BIOS .

Il fimware EFI mira a risolvere queste limitazioni del BIOS , anche se risulta essere più complesso nel suo utilizzo ; questo pechè implementa funzionalità
che prima non era possibile inserire . Alcune funzionalità chiave della UEFI sono :

  • L’UEFI può analizzare la tabbela delle partizioni e dei filesystem , pertanto i bootloader posso risiedere su un file in una partizione e questo permette di avere più bootloader nel proprio sistema e sceglire quale far partire .
  • L’UEFI solitamente include un modo per selezionare quale bootloader utilizzare e di conseguenza quale OS far partire.
  • Se i sistemi operativi che utilizziamo sono ben fatti non andranno a sovrascrivere il bootloader degli altri ; sfortunatamente alcuni bug possono causare a volte questo problema.
  • l’UEFI supporta i driver per i filesystem e per l’hardware , questo permette di fare il boot anche da hardware non dotato di firmware .
  • l’UEFI supporta GPT (GUID Partittion Table) come schema di partizione per l’hard disk , che risolve diverse limitazioni del DOS MBR , come il limite nel numero delle partizioni e delle dimensioni (fino a 4 partizioni , con un massimo di 2.2TB) .GPT supporta partizioni con dimensioni massime di 9.4 ZB.

Linux supporta il boot da UEFI a partire dal 2000 , utilizzando elilo EFI boot loader o il più moderno GRUB.

Nel prossimo articolo analizzeremo il processo di boot da UEFI andando a vedere nello specifico i file di configurazione coinvolti e come questo processo influisca sui sistemi Linux .