Cos'è e come funziona il bootloader

Bootloader: il suo ruolo nei dispositivi Android e lato PC. Cos'è, come funziona e in che cosa differisce rispetto al boot manager.
Cos'è e come funziona il bootloader

Con l’ampia diffusione dei dispositivi Android si parla molto spesso di bootloader.
Google si è infatti da tempo attivata per “richiamare all’ordine” i produttori di dispositivi Android cercando di obbligarli ad assicurare a tutti gli utenti, anche a coloro che acquistano dispositivi economici, alcuni anni di aggiornamenti.
Per gli utenti riveste un’importanza cruciale ricevere almeno gli aggiornamenti di sicurezza per Android: continuare a utilizzare dispositivi vecchi, ormai abbandonati dal produttore, che presentano potenziali rischi andrebbe sempre evitato. Ecco perché Google ha promosso l’iniziativa Project Mainline (Ricevere gli aggiornamenti Android per la sicurezza con Project Mainline) che permette di scavalcare le procedure di aggiornamento dei singoli produttori.

Cosa c’entra il bootloader?
Il bootloader è un componente software che durante la fase di avvio di un dispositivo carica il kernel del sistema operativo dalla memoria.
Si tratta di un programma che viene utilizzato non solo sui dispositivi Android ma anche su quelli basati su qualunque altro sistema operativo.
Il suo caricamento viene disposto dal firmware che si occupa di andare alla ricerca del bootloader in tutte le unità collegate internamente o esternamente al dispositivo.
Il bootloader viene di solito inserito nel primo blocco oppure in una partizione specifica del supporto di avvio.

Sui dispositivi Android il bootloader evita il caricamento di codice che non riporta la firma digitale del produttore.
Riallacciandoci a quanto descritto in apertura, quando un dispositivo Android non è più supportato dal produttore (che non rilascia più alcun aggiornamento, neppure quelli di sicurezza), in molti si cimentano nella sostituzione del sistema operativo con una più recente. È una buona idea perché da un lato si evita di dismettere un dispositivo che ancora funziona perfettamente (contribuendo alla riduzione dei rifiuti RAEE), dall’altro ci si ripara dalle vulnerabilità di sicurezza nel frattempo emerse a livello di sistema operativo Android.

La memoria interna di un dispositivo Android è solitamente suddivisa in 6 partizioni secondo lo “schema base” riprodotto in figura (le scelte dei singoli produttori potrebbero comunque variare).
Le partizioni boot, system e recovery contengono i file necessari per l’avvio di Android, il sistema operativo in sé e le routine per richiedere il ripristino del dispositivo (sono diverse sulla base delle scelte e delle personalizzazioni applicate da ogni produttore).

Per installare una versione di Android alternativa (si chiamano “ROM Android personalizzate“) si deve quindi sbloccare il bootloader facendo in modo che accetti e carichi codice in cui la firma digitale del produttore risulta assente.

Si tratta del “trampolino di lancio” per installare una ROM Android personalizzata in sostituzione della versione di Android installata nel dispositivo.
La procedura da seguire per sbloccare il bootloader e installare altre versioni di Android è illustrata negli articoli Root Android: a cosa serve e come si fa e Aggiornamento Android, come effettuarlo quando sembra impossibile.

L’importante è scaricare sempre e solo ROM Android personalizzate sviluppate nell’ambito di progetti riconosciuti e affidabili. Va invece sempre evitata l’installazione di ROM provenienti da fonti incerte o potenzialmente non sicure: in questi casi la toppa potrebbe essere peggiore del buco nel senso che si installerebbe una ROM Android contenente software inaffidabile o addirittura malevolo.

Il bootloader in Windows e negli altri sistemi operativi

Abbiamo detto che il bootloader ha il compito essenziale di caricare il kernel del sistema operativo. Ogni sistema operativo, quindi, ha il suo bootloader.

Nei sistemi Linux vengono utilizzati GRUB e LILO che rivestono il duplice ruolo di boot manager e bootloader.
Lo stesso doppio compito era in capo al vecchio NTLDR (NT Loader) che fino all’epoca di Windows XP (e Windows Server 2003) fungeva anch’esso sia da boot manager che da bootloader.
Con l’avvento di Windows Vista e nei successivi sistemi operativi Microsoft (Windows 7, Windows 8.x, Windows 10, oltre che in Windows Server 2008 e successivi) il boot manager è diventato Windows Boot Manager mentre il bootloader winload.exe.

Il boot manager è un componente software che viene eventualmente avviato prima del bootloader per consentire la scelta del sistema operativo installato da eseguire (si pensi alle configurazioni dual boot o multi boot delle quali abbiamo parlato in passato).
Una volta caricato il boot manager “la palla” passa al bootloader che prosegue con il caricamento del sistema operativo selezionato dall’utente dal menu di boot.

Sui sistemi Windows errori relativi ai file bootmgr o winload.exe in fase di avvio faranno immediatamente capire dove risiede il problema, se a livello di boot manager o di bootloader.
Nel caso dei sistemi Windows più recenti (da Vista in avanti) il boot manager fa affidamento alle informazioni contenute nel file BCD (boot configuration data, che sostituisce il vecchio boot.ini usato in Windows XP e predecessori) per rilevare la posizione dei bootloader disponibili e le corrispondenti opzioni di avvio.

Per accedere alle informazioni contenute nel file BCD da Windows è sufficiente aprire il prompt dei comandi con i diritti di amministratore e digitare quanto segue:

bcdedit /enum

Per maggiori informazioni suggeriamo la lettura degli articoli Windows non si avvia più su PC UEFI, come risolvere e EasyBCD, gestire il menu di boot di Windows e avviare file ISO.

Ti consigliamo anche

Link copiato negli appunti