Parlare di BIOS è solitamente un argomento molto complesso, ma le complessità salgono esponenzialmente quando parliamo di UEFI.
Il BIOS ha permesso l'avvio dei computers sin dagli anni 80, e, nonostante gli aggiornamenti, mantiente ancora la struttura dei software scritti in quel periodo. Usa istruzioni a 16bit e la memoria in cui viene eseguito è limitata ad 1 Mb. Ciò comporta una serie di conseguenze a carico del sistema operativo, come, per esempio, l'impossibilità di gestire dischi rigidi con capacità superiori a 2,1 Tb.
Per questo motivo, già agli inizi del 2000, fu studiata la soluzione che ha portato alla nascita di EFI/UEFI. Questa è infatti un'estenzione del BIOS che può eseguire applicazioni complesse necessarie all’esecuzione dei moderni sistemi operativi. Può essere considerato un mini sistema operativo che al termine della sua esecuzione avvierà il sistema operativo vero e proprio.
Oltre ad un aspetto grafico migliorato, a volte unito anche all’uso del mouse, l’aspetto più rilevante dei nuovi BIOS riguarda le modalità di esecuzione del sistema operativo. Dal 2011 in UEFI è stato inserito, per volere di Microsoft, il SECURE BOOT. Questo è un sistema che permette di avviare solo software certificato, il tutto protetto da un sistema di chiavi crittografiche che impediscono l’esecuzione di qualsiasi programma o driver che non abbia ricevuto la certificazione (il consenso) di Microsoft o dei produttori autorizzati. Se da un lato questa poteva sembrare una valida soluzione per impedire a virus e malware di proliferare sui sistemi Windows, dall'altra impediva o comunque complicava notevolmente l'installazione di sistemi operativi iberi. Fortunatamente questa iniziativa ha da subito incontrato una forte opposizione del mondo open source ottenendo la possibilità di poter attivare o meno il secure-boot dal bios.
Con il secure-boot attivo il sistema operativo da avviare, come abbiamo già detto, deve essere certificato, ma la certificazione dei sistemi operativi GNU/Linux presenta alcune difficoltà. La principale è dovuta al fatto che la certificazione richiede la chiusura del codice con una chiave, ma la GNU Public Licence ver.3 impone che anche la chiave sia resa pubblica, cosa che vanificherebbe tutta l’operazione. Una soluzione per poter avviare sistemi operativi GNU/Linux con il secure-boot attivo è stata trovata da uno sviluppatore di RedHat, Matthew Garrett, che ha realizzato un piccolo bootloader chiamato shim (che ha in seguito certificato) e che, a sua volta, avvia GRUB, il tradizionale bootloader.
Mentre in passato, per avviare il sistema operativo, il BIOS cercava le informazioni sulla prima traccia dell’harddisk (il sistema era chiamato MBR: Master Boot Record), adesso, con UEFI, le informazioni sono raccolte in una partizione dedicata, chiamata EFI e situata su un disco partizionato con il nuovo sistema GPT. Su questa partizione sono presenti tante cartelle quanti sono i sistemi operativi da eseguire e dentro la relativa cartella si trovano i files eseguibili deputati ad avviare il relativo sistema operativo.