Cosa succede esattamente quando si accende il computer?

Quando si avvia un computer, si mette in moto una sequenza di operazioni denominata “boot”, termine derivante dall’inglese “bootstrap”. Indipendentemente dal sistema operativo utilizzato (Windows, macOS o Linux), ecco cosa avviene in dettaglio.

L’accensione dell’hardware

Premendo il pulsante di accensione, si fornisce energia a tutti i componenti del computer: scheda madre, CPU, hard disk, unità a stato solido, schede grafiche e tutto il resto.

L’alimentatore è il componente hardware incaricato di distribuire l’energia. In un tipico PC desktop, si presenta come una scatola, solitamente collocata in un angolo del case, a cui si collega il cavo di alimentazione.

La CPU avvia l’UEFI o il BIOS

Una volta alimentata, la CPU si attiva e cerca un piccolo programma, generalmente memorizzato in un chip sulla scheda madre.

In passato, i PC caricavano il BIOS (Basic Input/Output System). Oggi, i sistemi moderni utilizzano l’UEFI (Unified Extensible Firmware Interface), un’evoluzione del BIOS. Nonostante ciò, alcuni produttori continuano a riferirsi all’UEFI come “BIOS”, creando confusione.

L’UEFI o il BIOS: verifica e inizializzazione dell’hardware

Il firmware UEFI o BIOS carica le impostazioni di configurazione memorizzate in un’area dedicata sulla scheda madre, precedentemente supportata da una batteria CMOS. Le modifiche apportate alle impostazioni di basso livello nel menu del BIOS/UEFI vengono salvate in questa area.

La CPU esegue l’UEFI o il BIOS, che controlla e inizializza tutti i componenti hardware, inclusa la CPU stessa. Se, ad esempio, manca la RAM, il computer emetterà un segnale acustico e mostrerà un messaggio di errore, interrompendo la procedura di avvio. Questa fase è nota come POST (Power On Self Test).

Durante questa fase, è possibile che venga visualizzato il logo del produttore del PC. In alcuni casi, premendo un tasto specifico, si può accedere al menu delle impostazioni del BIOS/UEFI. Tuttavia, molti computer moderni eseguono il POST così velocemente da non mostrare alcun logo e richiedere l’accesso al menu UEFI tramite le opzioni di avvio di Windows.

L’UEFI è in realtà un piccolo sistema operativo con funzionalità avanzate. Ad esempio, le CPU Intel hanno l’Intel Management Engine, che consente la gestione remota dei PC aziendali, sfruttando la tecnologia Active Management di Intel.

L’UEFI o il BIOS cede il controllo a un dispositivo di avvio

Una volta completata la verifica e l’inizializzazione dell’hardware, l’UEFI o il BIOS trasferiscono la responsabilità dell’avvio del PC al boot loader del sistema operativo.

L’UEFI o il BIOS cercano un “dispositivo di avvio”, solitamente l’hard disk o l’unità a stato solido, ma potrebbe anche essere un CD, DVD, un’unità USB o una risorsa di rete. L’ordine di priorità dei dispositivi di avvio è configurabile nel menu del BIOS/UEFI. Se sono presenti più dispositivi di avvio, l’UEFI o il BIOS cercano di avviarli nell’ordine specificato, ad esempio, un DVD avviabile potrebbe essere tentato prima del disco rigido.

Tradizionalmente, il BIOS esaminava l’MBR (Master Boot Record), uno speciale settore di avvio all’inizio del disco. L’MBR conteneva il codice per caricare il resto del sistema operativo, il “bootloader”. Il BIOS eseguiva il bootloader, che a sua volta avviava il sistema operativo vero e proprio, come Windows o Linux.

I computer con UEFI possono ancora utilizzare l’MBR, ma in genere usano file eseguibili EFI, memorizzati in una partizione di sistema EFI anziché all’inizio del disco.

Il principio rimane lo stesso: il BIOS o l’UEFI cerca un piccolo programma di avvio su un dispositivo di archiviazione, nell’MBR o nella partizione di sistema EFI, e lo esegue. In caso di mancato avvio, viene visualizzato un messaggio di errore.

Sui PC moderni, l’UEFI è configurato per l’ “Avvio protetto”, che verifica la presenza di manomissioni nel sistema operativo e impedisce l’avvio di malware di basso livello. L’UEFI verifica la firma del bootloader prima di avviarlo.

Il bootloader carica il sistema operativo

Il bootloader è un piccolo programma con l’importante compito di caricare il resto del sistema operativo. Windows usa Windows Boot Manager (Bootmgr.exe), la maggior parte dei sistemi Linux usa GRUB e macOS usa boot.efi.

Un problema nel bootloader, come file danneggiati, provoca un errore e blocca il processo di avvio.

Il bootloader non gestisce l’avvio da solo. Su Windows, Windows Boot Manager avvia il caricatore del sistema operativo, che a sua volta carica i driver hardware necessari per il kernel, il nucleo di Windows. Il kernel carica il registro di sistema, i driver con la direttiva “BOOT_START”, e avvia il processo di gestione della sessione (Smss.exe). Questo processo continua, caricando servizi e la schermata di benvenuto.

Su Linux, GRUB carica il kernel, che avvia il sistema init, di solito systemd. Systemd gestisce i servizi di avvio e i processi utente fino al prompt di login.

Questo processo complesso permette di caricare tutto correttamente, nel giusto ordine.

I “programmi di avvio” vengono caricati all’accesso all’account utente, non all’avvio. Tuttavia, servizi e daemon vengono avviati in background all’avvio del sistema.

Anche la fase di spegnimento del computer è complessa. Ecco cosa succede esattamente quando si chiude o si esce da Windows.

Crediti immagini: Suwan Waenlor/Shutterstock.com, Immagini DR/Shutterstock.com