Concetti Chiave
- La fase di avvio di un PC inizia con l'energia che fluisce al microchip CMOS sulla scheda madre, attivando il firmware BIOS o UEFI per eseguire controlli iniziali della scheda madre, come la presenza di RAM e CPU.
- Dopo il POST, il BIOS/UEFI determina l'unità di memoria da cui eseguire il boot, cercando nell'ordine di avvio configurato e restituendo un errore se nessuna unità avviabile è disponibile.
- Il BIOS supporta solo unità con tabella delle partizioni MBR, mentre UEFI può avviare anche unità GPT, supportando più spazio e aggiungendo funzionalità di sicurezza come il "secure boot".
- Il firmware carica il bootloader, un programma che avvia il kernel del sistema operativo; Windows utilizza il Windows Boot Manager, mentre Linux impiega GRUB.
- Una volta caricato il kernel, il sistema operativo procede a caricare l'ambiente grafico e presenta la schermata di login, completando così il processo di avvio.
Indice
Fase di avvio di un PC
La cosa più banale che è possibile fare con un computer è l'accensione: essa però non è realmente un processo così semplice come si potrebbe pensare.La fase di avvio di un PC si svolge in varie fasi, che vedremo in ordine di esecuzione.
Avvio del BIOS/UEFI
Una volta premuto il pulsante di accensione, l'energia fluisce da una piccola batteria secondaria a un microchip installato sulla scheda madre. Questo microchip (chiamato CMOS) ha installato un firmware (programma autonomo di basso livello) che esegue dei controlli iniziali fondamentali della scheda madre (ad esempio, controlla se è presente la RAM e la CPU), detto POST. Il firmware può essere di tipo BIOS (Basic Input/Output System), nelle macchine più vecchie, o UEFI (Unified Extensible Firmware Interface) in quelle più moderne.In questa fase, è possibile premere sulla tastiera un tasto specifico (in base al modello di PC) che permette di accedere alle impostazioni del firmware e modificare le impostazioni di avvio.
Caricamento del disco di avvio
Dopo il controllo POST, il BIOS/UEFI scandaglia l'ordine di avvio della macchina: ciò significa che cerca quale unità di memoria è impostata come unità di cui eseguire il boot, e se non è disponibile, passa alla seconda impostata e via dicendo.Infatti, oltre al sistema operativo installato sul disco principale di un computer, è possibile avviare la macchina con dei sistemi installati su qualsiasi tipo di filesystem, come chiavette USB o dei CD/DVD.
Naturalmente, nel caso in cui nessuno dei dischi configurati nell'ordine di avvio è disponibile, il firmware ritornerà l'errore "No bootable media was found" (nessuna unità avviabile è stata trovata).
In questa fase diventa cruciale la differenza tra BIOS e UEFI. Un disco, oltre ad avere un filesystem, ha anche una "tabella delle partizioni", ossia un modo di organizzare un unico, ma anche più di uno, filesystem su una unità di archiviazione. Un BIOS può eseguire il boot solo di unità con tabella delle partizioni MBR (Master Boot Record), con limiti di spazio gestibile (2 TB) e privo di funzionalità di sicurezza.
Un firmware UEFI invece può eseguire sia il boot di unità MBR (modalità legacy, ossia di "retrocompatibilità"), ma anche delle unità GPT (GUID Parition Table), che supportano fino a 9,5 TB di disco. Inoltre, i firmware UEFI hanno una funzionalità nota come "secure boot", che impedisce di caricare software dannoso all'avvio del computer, cosa di cui i BIOS sono del tutto carenti. Questa funzione però protegge solo il caricamento di codice malevolo presente nel firmware UEFI, non eventuali malware del sistema operativo, perciò resta sempre importante la cautela quando si installano dei programmi !
Caricamento del bootloader
A questo punto, il firmware carica un piccolo programma indipendente, situato in una partizione (una parte di disco) formattata nella maniera idonea al caso, che si occupa di caricare il kernel del sistema. Windows usa il Windows Boot Manager, mentre Linux utilizza principalmente GRUB, ma la scelta del bootloader è altamente personalizzabile dall'utente durante l'installazione del sistema.
Avvio completato
Il kernel caricato dal bootloader fa il resto del lavoro: carica, se presente, l'ambiente grafico, e mostra all'utente la tipica schermata di login. L'avvio è stato completato con successo !Domande da interrogazione
- Qual è il ruolo del BIOS/UEFI durante l'avvio di un PC?
- Cosa succede se nessun disco configurato nell'ordine di avvio è disponibile?
- Qual è la differenza principale tra BIOS e UEFI riguardo al supporto delle tabelle delle partizioni?
- Qual è la funzione del bootloader durante l'avvio del sistema operativo?
- Cosa accade dopo che il bootloader ha caricato il kernel?
Il BIOS/UEFI esegue controlli iniziali fondamentali della scheda madre, come la verifica della presenza di RAM e CPU, attraverso il POST. Inoltre, permette di accedere e modificare le impostazioni di avvio.
Se nessun disco configurato è disponibile, il firmware restituisce l'errore "No bootable media was found", indicando che non è stata trovata alcuna unità avviabile.
Il BIOS supporta solo unità con tabella delle partizioni MBR, mentre UEFI supporta sia MBR che GPT, con quest'ultimo che consente di gestire dischi fino a 9,5 TB e offre funzionalità di sicurezza come il "secure boot".
Il bootloader è un programma che carica il kernel del sistema operativo. Windows utilizza il Windows Boot Manager, mentre Linux utilizza principalmente GRUB.
Dopo che il bootloader ha caricato il kernel, quest'ultimo carica l'ambiente grafico, se presente, e mostra all'utente la schermata di login, completando così l'avvio del sistema.