Boot

Da Wikipedia, l'enciclopedia libera.

In informatica il termine di origine inglese boot (o bootstrap, o più raramente booting) indica, in generale, l'insieme dei processi che vengono eseguiti da un computer durante la fase di avvio, in particolare dall'accensione fino al completo caricamento in memoria primaria del kernel del sistema operativo a partire dalla memoria secondaria.

Note terminologiche[modifica | modifica sorgente]

Il termine originale inglese è bootstrap (la fascetta di cuoio cucita sul bordo posteriore degli stivali per aiutarsi a calzarli), da cui la contrazione boot (e termini derivati come booting e reboot). Esiste il modo di dire inglese pull yourself up by your bootstraps ("tirati su da solo prendendoti per le stringhe degli stivali"), che significa "risolvi da solo i tuoi problemi, senza aspettare l'aiuto di altri".

L'analogia è con il fatto (solo apparentemente paradossale) che, durante il bootstrap, il computer esegue un determinato processo allo scopo di mettersi in condizione di operare (eseguire processi). In italiano si può rendere questo concetto anche come "avvio" ("riavvio"), sebbene questi termini (come i loro corrispondenti diretti inglese "start" e "restart") abbiano generalmente una connotazione meno tecnica.

Dalle espressioni boot e bootstrap anche in italiano sono derivati alcuni termini di gergo informatico come il verbo bootare (o boottare) o l'aggettivo bootabile (o boottabile) che si riferisce a un supporto di memorizzazione (per esempio un CD o un altro genere di disco) dal quale sia possibile caricare il sistema operativo all'avvio del computer (e quindi completare il boot).

Infine, un bootrom è un componente di inizializzazione di dispositivi HD.

Struttura del processo di bootstrap[modifica | modifica sorgente]

All'accensione di un computer il processore resta inizialmente sospeso nello stato di RESET dall'hardware, che tiene attivo il corrispondente ingresso della CPU finché le tensioni di alimentazione non sono stabili. Appena il segnale di RESET viene disattivato il processore carica la sua prima istruzione da una locazione fissa del suo spazio di memoria, a cui di solito corrisponde una ROM o altra memoria non volatile. Si tratta quasi sempre di una istruzione di salto incondizionato (JMP) che porta l'esecuzione al vero inizio del programma di firmware (o del BIOS, se si tratta di un personal IBM compatibile) che poi prende il controllo del computer.

Nel caso di dispositivi embedded dotati di semplice firmware, le procedure di bootstrap sono estremamente variabili da caso a caso. Nei personal computer IBM compatibili il firmware è costituito dal BIOS, che compie una serie di operazioni ben definite prima di caricare il sistema operativo e trasferire ad esso il controllo.

Bootstrap di un PC IBM[modifica | modifica sorgente]

Tutti i processori IA32 caricano la prima istruzione dopo il RESET dall'indirizzo esadecimale 0xFFFFFFF0 (i loro predecessori a 16 bit dall'indirizzo 0xFFF0), a cui corrisponde una locazione di memoria non volatile. I passi compiuti dal BIOS sono:

  1. il POST (Power On Self Test), una serie di test diagnostici per verificare il corretto funzionamento dell'hardware e della scheda madre: se tutti i dispositivi controllati sono funzionanti emette un solo "beep" dall'altoparlantino di sistema e prosegue, ma se uno o più dispositivi fra quelli testati non funzionano, l'altoparlante emetterà una serie di bip, lunghi o corti, in numero variabile secondo un codice ben preciso che indica la periferica guasta e il tipo di problema riscontrato[1]
  2. cerca una scheda video installata, prima di tutto quella che secondo i suoi dati interni dovrebbe essere presente, ed esegue il POST video che si trova nella ROM interna della scheda video.
  3. cerca eventuali ROM di altri dispositivi installati e ne esegue le routine POST.
  4. esegue altri test, come il conteggio della memoria e lo stato della tastiera. Se incontra degli errori, non ricorre al codice sonoro dei bip ma (ora può farlo) mostra un messaggio a video.
  5. mostra a video una schermata di presentazione, con alcuni dati sull'hardware di quel particolare computer.
  6. compila l'inventario completo del tipo di hardware installato e delle capacità riscontrate: registra i timing della memoria, i parametri fisici dei dischi rigidi e i modi di accesso che questi supportano, le porte seriali e parallele e le loro velocità, se hanno una FIFO, e altri.
  7. (se il BIOS supporta il Plug and Play) configura automaticamente i dispositivi Plug and Play presenti e mostra un messaggio a video per ciascuno di essi.
  8. si interfaccia con la memoria CMOS, contenente i parametri di configurazione suscettibili di modifica, ed esegue le relative istruzioni dopo averne verificato l'integrità attraverso un algoritmo di checksum.
  9. Infine, cerca una unità a disco da cui caricare il sistema operativo. Se c'è, carica in RAM, all'indirizzo 0000:7C00, il primo settore del disco (cilindro 0, testina 0, settore 1), che corrisponde al master boot record (MBR) e l'esecuzione continua da lì.

Da questo punto in poi il processo di bootstrap dipende dal particolare sistema operativo installato.

Il boot manager e il boot loader[modifica | modifica sorgente]

Exquisite-kfind.png Per approfondire, vedi Boot manager e Boot loader.

Se sono installati più sistemi operativi sulla stessa macchina la selezione del sistema operativo desiderato è lasciata all'utente o su impostazione di default, in entrambi i casi attraverso il boot manager.

Bootloader GRUB di Ubuntu 8.04

Talvolta quindi il codice nel primo settore di un disco non è quello del sistema operativo, ma quello di questo particolare programma, il cui compito è di mostrare a video un menu da cui l'utente può scegliere quale, fra più sistemi operativi installati, far partire: una volta fatta la scelta un altro programma detto boot loader carica il codice del primo settore del sistema operativo scelto, che inizia l'esecuzione come fosse stato lanciato dallo stesso BIOS.

Alcuni sistemi operativi possono ricevere dei parametri di boot: il boot loader può permettere di definire questi parametri sia in un file di configurazione che al momento del boot.

Boot da rete[modifica | modifica sorgente]

Molte schede di rete ethernet dispongono di una funzionalità denominata Preboot Execution Environment (PXE), che permette di caricare un sistema operativo (o più spesso un boot loader) dalla rete invece che da un disco locale.

Avvio del sistema operativo[modifica | modifica sorgente]

Se viene usato un boot loader, esso caricherà il kernel del sistema operativo, e talvolta un initrd che eseguirà la prima fase del boot.

Il reboot[modifica | modifica sorgente]

L'espressione derivata reboot (analoga a "riavviare") si riferisce alla sequenza di spegnimento e riavvio del computer, di solito per installazioni di software di sistema o per riparare a gravi errori hardware o software che hanno compromesso la stabilità o le prestazioni della macchina.

Il reboot può essere effettuato in tre modi:

  • spegnimento e riaccensione fisici (interruzione e ripristino della alimentazione elettrica). Chiamato hard reboot, è pericoloso sia per l'integrità dei dati che per quella dell'hardware e non dovrebbe mai essere effettuato se non in casi estremi;
  • (per i PC che ne sono dotati) pressione del tasto di reset, che attiva il segnale di reset della CPU. Anche questo è un hard reboot ed anche questa è una operazione sconsigliabile, perché può creare perdite di dati, ma non presenta rischi per l'hardware. L'intera sequenza di operazioni di bootstrap del BIOS e del sistema operativo riparte da capo, tuttavia è possibile che alcuni dispositivi già in condizioni di errore prima del reset non rispondano al BIOS durante l'inizializzazione, costringendo ad uno spegnimento fisico della macchina.
  • riavvio con combinazioni di tasti (p.e. su PC, nella piattaforma di Windows, attraverso la combinazione dei tasti Ctrl+Alt+Del, o nei sistemi UNIX Ctrl+Alt+SysReq+B) chiamato soft reboot: a differenza del boot completo, nel soft reboot non viene eseguito il POST e la ricerca di tastiera e video, ma il processo riparte circa dal passo 6 del paragrafo precedente (inventario dell'hardware).

Note[modifica | modifica sorgente]

  1. ^ Interpretare i segnali acustici del BIOS - AZPoint

Voci correlate[modifica | modifica sorgente]

Altri progetti[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]

informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica