Il BIOS
Versione 1.0 - INCOMPLETA - (Agosto 2002)

 

1.Introduzione
2.Le procedure di avvio del BIOS e il POST
3.Modificare il BIOS

Glossario


1. Introduzione

Il BIOS, acronimo di Basic Input/Output System, è un insieme di programmi che risiedono in uno specifico chip all'interno del computer, programmi che gestiscono tutta una serie di operazioni di base al momento dell'avvio del computer prima che il controllo passi al sistema operativo. Il BIOS si occupa quindi di configurare e controllare le impostazioni e la configurazione dell'hardware del computer.
La storia del BIOS inizia quando Intel e IBM cominciano a produrre i primi PC basati sul processore 8088 alla fine degli anni '70. Allora Intel stipulò un accordo con Microsoft per la messa a punto di un sistema operativo. Microsoft decise di dividere il sistema operativo in due parti, la prima che comprendeva le operazioni di base per far dialogare le varie componenti hardware del PC e che risiedeva in un chip di memoria ROM (Read Only Memory, memoria di sola lettura). La seconda parte del sistema operativo risiedeva su un floppy disk e veniva caricato ad ogni avvio del PC ed era composto da un insieme di programmi che interfacciavano il computer con l'utente permettendo di svolgere una serie di operazioni di base. Intel decise allora di sviluppare in modo indipendente le due parti: la prima fu chiamata BIOS e la seconda DOS (Disk Operative System).
Con l'enorme diffusione che cominciò da subito ad avere il computer si sviluppò un mercato parallelo di PC compatibili con quelli IBM-Intel. Poichè IBM deteneva i diritti del BIOS e non concesse licenze, i produttori furono costretti a sviluppare il BIOS in proprio. Il primo caso fu quello della Compaq Computer seguito da alcune ditte specializzate come la Phoenix Software Associate, Award e AMI.

2.Le procedure di avvio del BIOS e il POST
Il BIOS quindi non è altro che un insieme di programmi che vengono eseguiti ogni volta che il computer viene acceso prima che il controllo passi al sistema operativo e che risiedono in modo permanente in un chip di memoria ROM. Il chip del BIOS è facilmente riconoscibile all'interno del computer perchè risiede sulla scheda madre e in genere porta sopra l'etichetta del produttore. I più recenti chip del BIOS sono di tipo EEPROM (Electrically Erasable Programmable ROM, ROM programmabile e cancellabile) e vengono comunemente indicati col nome di Flash-ROM e di conseguenza i BIOS che risidono su questo tipo di memoria vengono chiamati Flash-BIOS.

Al momento dell'avvio il processore esegue i programmi del BIOS e li localizza in uno spazio riservato della memoria RAM, generalmente negli ultimi 64Kb del primo Mega di memoria installata (alcuni BIOS estesi utilizzano più dei 64Kb) e lì i programmi rimangono a disposizione del sistema operativo nel caso ne avesse bisogno. Questi programmi hanno l'incarico di verificare e identificare tutte le componenti hardware all'interno del PC (Banchi di memoria, Hard Disk, CD-Rom, schede installate, ecc).
Per prima cosa quando si avvia il computer, vengono mostrate sul monitor alcune informazioni di base: produttore e versione del BIOS, la data della versione dell'aggiornamento del BIOS e il
modello di scheda madre, combinazione dei tasti per accedere alle impostazioni del BIOS, numero di serie del BIOS.
A questo punto viene mandato in esecuzione il POST (Power On Self Test, test automatico di avvio) che è la procedura incaricata di identificare e verificare lo stato del PC e delle sue componenti hardware.

Sequenza tipica dei test eseguiti durante il POST

Test dei registri del processore con identificazione della CPU (viene mostrato il modello della CPU sul monitor)
Controllo della ROM del BIOS
Controllo della tastiera
Controllo della memoria CMOS (memoria che contiene le impostazioni del BIOS salvate)
Test del Clock di sistema
Test della quantita di RAM di sistema (viene mostrato sul monitor la quantità di RAM e il tipo di memoria)
Verifica della memoria base di 64 Kb per la copia (shadowing) del BIOS
Test e attivazione della memoria cache L2 del processore
Test della batteria della memoria CMOS
Verifica delle differenti modalità video con test della scheda video
Test della modalità protetta
Test del controller DMA, degli IRQ ed RTC
Inizializzazione e programmazione del Plug&Play e degli I/O (viene mostrata la configurazione degli IRQ sul monitor)
Inizializzazione del Chipset
Verifica del floppy e delle unità IDE (viene mostrato il modello delle unità IDE installate)
Inizializzazione del PCI, shadow RAM e Power Manager
Viene mostrata nel monitor la configurazione del sistema
...

Naturalmente la sequenza del POST è molto più complessa di quanto si può immaginare leggendo la precedente tabella che non è esaustiva e mostra solamente i processi più importanti e generici.
Nel caso durante il POST si verifichi una qualche anomalia l'utente viene avvisato da una serie di beep sonori e da un messaggio sullo schermo che identificano il tipo di errore che può portare, nei casi più gravi, al blocco della procedura di avvio. Il tipo di segnale sonoro di errore varia da produttore a produttore è quindi fondamentale conoscere il produttore del BIOS per poter determinare il codice dell'errore. Questi messaggi di errore inoltre possono essere inviati sotto forma di codici di diagnostica a delle particolari schede di espansione, chiamate schede POST (POST-card) che in genere sono in dotazione ai centri di assistenza ma sono in vendita anche nei normali negozi di computer, che permettono di determinare il tipo di errore in modo molto più preciso.

[inserire tabella dei codici di errore in beep]

Terminata la sequenza del POST e inizializzati tutti i componenti del PC il controllo passa a un processo del BIOS (o ISR - Interrupt Service Routine, routine di servizio per gli interrupt)
esettamente all'INT 19h, che contiene la routine di avvio del sistema operativo chiamata Bootstrap. In base alle impostazioni del BIOS l'INT 19h legge il primo settore di boot della periferica definita di avvio (che può essere per esempio il CD-ROM, il floppy o l'Hard Disk) che contiene un programmino chiamato Bootstrap Loader che può o avviare il sistema operativo o qualsiasi altro tipo di programma.
Se la periferica selezionata dal BIOS come di avvio non contiene il Boostrap Loader compare un messaggio di errore sul monitor: "No boot device available" e il computer si blocca.

3.Modificare il BIOS