Indietro

ⓘ Boot




Boot
                                     

ⓘ Boot

Il termine boot in informatica indica, in generale, linsieme dei processi che vengono eseguiti da un computer durante la fase di avvio, in particolare dallaccensione fino al completo caricamento in memoria primaria del kernel del sistema operativo a partire dalla memoria secondaria.

                                     

1. Cenni storici

Nei primi calcolatori, il bootstrap era tipicamente un processo che coinvolgeva un operatore umano specializzato. Questo prevedeva linserimento manuale nel calcolatore delle istruzioni di avvio tramite una serie di supporti di memoria intermedi di vario tipo, tipicamente composti a base di ferrite chiamate memorie a nuclei o, più comunemente, nastri magnetici o più semplicemente schede perforate schede di cartoncino di formato ben definito contenente linformazione da dare in input. Sono state proprio le schede perforate il primo dispositivo "a sola lettura" a contenere le istruzioni per lavvio del calcolatore, già negli elaboratori IBM degli anni 50-60: è in questo periodo che si comincia ad utilizzare il termine bootstrap con il significato attuale.

Alcuni di questi eleboratori possedevano già un processo di avvio tramite la pressione di un singolo bottone, ma non una "memoria a sola lettura" in senso stretto, cioè un dispositivo a semiconduttore contenente le istruzioni di avvio cablate al suo interno; inoltre prevedevano di solito un processo di avvio molto complesso, non cioè tramite la pressione di un singolo tasto, ma attraverso una lunga procedura manuale: questo avveniva, ad esempio nel Micral N 1973, il primo microcomputer a microprocessore, e ancora nel 1975 lanno dei "pionieri del microcomputer" sia nei microcomputer portatili più innovativi, come lAltair 8800, che nei minicomputer più diffusi comunque molto voluminosi rispetto ai loro successori moderni, come il PDP-11. I microprocessori fecero il loro ingresso nellinformatica negli anni 1970 - 1971, rivoluzionando le prestazioni dei componenti e, di conseguenza, le architetture: in questi anni, il loro costo tuttavia era estremamente elevato anche per memorie limitate a 16 bit. Nel caso del boot in questa fase, ad incidere è il bilanciamento tra la possibilità di caricare il programma di avvio, residente in ROM, e la memoria di esecuzione.

Una delle innovazioni maggiori del boot, nel 1975, è stata dunque lintroduzione di un processo di caricamento automatico da una memoria in sola lettura ovvero, una moderna memoria fissa a semiconduttore, come quello che fu realizzato e brevettato dallitaliano Alberto Ciaramella, giovane ingegnere dello CSELT nel 1975 nellelaboratore di processo della prima centrale telefonica numerica italiana denominata "Gruppi Speciali", con una tecnica indipendente dallarchitettura complessiva dellelaboratore e sotto forma di un dispositivo esterno allelaboratore stesso: tale tecnica costruisce il processo di boot moderno, unendo cioè il vantaggio dellavvio dalla pressione di un singolo bottone con risparmio di tempo allaffidabilità delluso della memoria ROM propriamente detta per caricare le istruzioni di avvio direttamente nel sistema operativo. Un altro vantaggio nel boostrap dei Gruppi Speciali era la memorizzazione dello stato dellelaboratore a fronte dello spegnimento ad esempio, nel caso di guasto, caratteristica che verrà ripresa dai computer degli anni successivi ma era ancora assente nei primi personal computer IBM degli anni Ottanta.

Laffidabilità del processo di riavvio lautomatizzazione dello stesso, la sua velocità e la memorizzazione allo stato prima dello spegnimento, era particolarmente sentita proprio nel campo delle centrali telefoniche. In quanto procedimento indipendente dallarchitettura, era dunque possibile utilizzare la nuova tecnica di avvio dei Gruppi Speciali anche per elaboratori che non la prevedevano in fase di progetto, semplicemente tramite laggiunta esterna di tale dispositivo analogamente a quanto fatto nei Gruppi Speciali stessi, aggiunto allarchitettura della centrale telefonica nel corso della fase di sperimentazione. Tuttavia, larchitettura generale del sistema da avviare non era ancora quella integrata in uso oggi.

Il passo successivo, cioè lintegrazione del processo di un bootstrap analogo così strutturato compresa la sua componente della ROM di boot a semiconduttore nativamente allinterno della scheda dellelaboratore è stata introdotta per la prima volta in un calcolatore in concomitanza della nascita del primo personal computer consumer, ovvero con lApple-1 solo lanno successivo, nel corso del 1976, lo stesso anno della fondazione della Apple: tale architettura integrata del dispositivo di boot è analoga allo standard dei personal computer attuali. Il boot tramite un dispositivo esterno oggi è usato solo in casi particolari, come possibile policy di sicurezza.

                                     

1.1. Cenni storici Note terminologiche

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 laiuto di altri".

Lanalogia è 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 laggettivo 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 allavvio del computer e quindi completare il boot.

Infine, una bootrom è un componente di inizializzazione di dispositivi hardware.

                                     

2. Descrizione

Allaccensione di un computer, il processore resta inizialmente nello stato di RESET dallhardware 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 esegue 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 lesecuzione al vero inizio del programma di firmware o del BIOS, se si tratta di un personal IBM compatibile il quale, successivamente, 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 in memoria primaria il sistema operativo e trasferire ad esso il controllo.



                                     

2.1. Descrizione Bootstrap

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

  • 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.
  • il POST Power On Self Test, una serie di test diagnostici per verificare il corretto funzionamento dellhardware e della scheda madre: se tutti i dispositivi controllati sono funzionanti emette un solo "beep" dallaltoparlantino di sistema e prosegue, ma se uno o più dispositivi fra quelli testati non funzionano, laltoparlante 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
  • cerca eventuali ROM di altri dispositivi installati ne esegue le routine POST.
  • compila linventario 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 le loro velocità, se hanno una FIFO, e altri.
  • mostra a video una schermata di presentazione, con alcuni dati sullhardware di quel particolare computer.
  • 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.
  • 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.
  • Infine, cerca una unità a disco da cui caricare il sistema operativo. Se cè, carica in RAM, allindirizzo 0000:7C00, il primo settore del disco, che corrisponde al master boot record MBR e lesecuzione continua da lì.
  • si interfaccia con la memoria CMOS, contenente i parametri di configurazione suscettibili di modifica, ed esegue le relative istruzioni dopo averne verificato lintegrità attraverso un algoritmo di checksum.

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

                                     

2.2. Descrizione Boot da rete

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.

                                     

2.3. Descrizione Avvio del sistema operativo

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

                                     

3. Il reboot

Lespressione 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:

  • pressione del tasto di reset per i PC che ne sono dotati, 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 lhardware. Lintera sequenza di operazioni di bootstrapping 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 linizializzazione, costringendo ad uno spegnimento fisico della macchina.
  • spegnimento e riaccensione fisici interruzione e ripristino della alimentazione elettrica. Chiamato hard reboot, è pericoloso sia per lintegrità dei dati che per quella dellhardware e non dovrebbe mai essere effettuato se non in casi estremi;
  • riavvio con combinazioni di tasti 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 dellhardware.