logo MC2 E-Learning S.a r.l.
Logo Einstein grigio sfumato
e = m x c al quadrato





Che cos'è il BIOS

La ROM-BIOS è una serie di programmi incorporati nel computer che eseguono le operazioni di base, di basso livello e di supervisione per il computer.







Ci sono 2 elementi nel computer che vengono chiamati BIOS:
  • uno è la ROM-BIOS, che è il software incorporato nel computer;
  • e l'altro è il DOS-BIOS, una parte del DOS che effettua operazioni simili (ma di livello differente) esclusivamente per il DOS.
Il nome ROM-BIOS è l'abbreviazione di Read-Only Memory (ROM) e di Basic Input/Output System (BIOS).

La ROM-BIOS è una serie di programmi incorporati nel computer che eseguono le operazioni di base, di basso livello e di supervisione per il computer.

Il software funziona meglio quando viene progettato per operare a blocchi, dove ciascun blocco esegue un determinato compito dispensando gli altri da qualsiasi cosa inerente quella determinata operazione. Seguendo questa filosofia, la ROM-BIOS è il blocco più basso, il blocco che si trova al di sotto di tutto il software e delle operazioni del computer.

Il compito della ROM-BIOS è quello di prendersi cura di tutte le ncessità dell'hardware, dispensando così tutti i programmi dalla necessità di sapere come funziona l'hardware.

Fondamentalmente, la ROM-BIOS è una interfaccia, un connettore e un convertitore tra l'hardware del computer e il software che viene eseguito (nella CPU). In parole povere, la ROM-BIOS è semplicemente un programma come gli altri, ma se si vuole capire esattamente il BIOS, bisogna immaginarlo come un ibrido, qualcosa che si trova tra l'hardware e il software.

Dal punto di vista funzionale è proprio così: la ROM-BIOS è un ponte tra l'hardware del computer e il software dell'utente. Il software di questo tipo, quello memorizzato permanentemente su una ROM, è chiamato firmware (figura 1).

Che cosa c'è nella ROM-BIOS ?

La ROM-BIOS contiene una serie di programmi fondamentali che forniscono il supporto essenziale per le operazioni del computer.

I programmi della ROM-BIOS possono essere suddivisi in tre categorie principali:
  1. Quelli della prima categoria vengono usati solo in fase di accensione del computer e servono per inizializzare e controllare tutti i componenti hardware presenti. Il ritardo che si verifica tra il momento in cui si accende il computer e il momento in cui si può iniziare a lavorare viene causato principalmente da questi programmi di inizializzazione e verifica che vengono chiamati a volte POST (Power On Self-Test).
  2. La seconda categoria è la più interessante e include le varie routine della ROM-BIOS. Questi programmi forniscono un controllo preciso e dettagliato delle varie componenti del computer, incluse le periferiche di Input/Output come le unità disco, le cui operazioni devono essere testate accuratamente. La ROM-BIOS, per supportare le operazioni del computer, mette a disposizione numerosi servizi che possono essere utilizzati dal sistema operativo e dalle applicazioni.
  3. La terza categoria di programmi della ROM-BIOS, presente solamente nei computer più datati prodotti da IBM, include la ROM-BASIC. Questa era necessaria quando i computer non disponevano neppure di unità disco (al loro posto venivano usati i registratori a cassetta) e gli utenti dovevano programmare direttamente l'elaboratore per svolgere le operazioni desiderate. Inoltre, dato che non esistevano le unità disco, non c'era neppure il sistema operativo (DOS). Una volta acceso, il computer attivava il BASIC che rimaneva l'unico ambiente operativo in cui gli utenti caricavano ed utilizzavano i loro programmi.
Per non creare confusione si tenga presente che la ROM-BIOS di cui si sta parlando è ilBIOS del sistema principale, che è contenuto in chip installati sulla scheda madre e che possono essere in certi casi aggiornato. Alcune schede di espansione, quali controller VGA e controller SCSI, possono includere una loro ROM-BIOS per gestire altre funzioni. In certi casi, come nei controller SCSI, la ROM-BIOS sulla scheda di espansione può sostituire la ROM-BIOS presente sulla scheda madre. Generalmente l'utente può decidere se consentire o meno questa sostituzione impostando alcuni microinterrutori sulla scheda.

Che cosa fa la ROM-BIOS ?

Che cosa rende la ROM-BIOS così speciale ? Che cosa fa esattamente per essere considerata una via di mezzo tra l'hardware e il software ?

La risposta si trova in quello che la ROM-BIOS deve fare e in che modo lo fa. La ROM-BIOS, fondamentalmente, deve controllare direttamente l'hardware e rispondere a qualunque richiesta inoltrata. Questo viene fatto tramite l'uso delle porte. Nella maggior parte dei casi, tutti i componenti del PC sono controllati da comandi o parametri impartiti attraverso le porte; da notare che ciascuna parte della circuiteria ha un un suo numero di porta a cui rispondere.

Ci sono tuttavia molti elementi importanti dell'hardware che non si servono delle porte come, per esempio, gli indirizzi di memoria che normalmente controllano quello che appare sul video. La maggiore eccezione alla regola generale che l'hardware viene controllato attraverso le porte, è esattamente la parte del computer con cui i programmi possono lavorare direttamente, cioè le parti che la ROM-BIOS non deve supervisionare.

Non bisogna avere l'impressione che la ROM-BIOS abbia a che fare solamente con le porte; infatti non è così. Ma le porte rendono nel modo migliore quello che c'è di speciale nella ROM-BIOS: è il software che funziona più da vicino con l'hardware ed è il software che si prende cura dei dettagli hardware, come le porte, che gli altri programmi non devono considerare.

Funzionamento della ROM-BIOS

La prima parte della ROM-BIOS è una collezione di routine di avvio che vengono eseguite all'accensione del computer. Ci sono 2 parti principali nella procedura di avvio: una è la Power-On Self-Test (auto test all'accensione) chiamata anche POST, ed è una serie di routine che controllano che tutti i componenti della macchina siano in buone condizioni.

L'altra parte della procedura di avvio è l'inizializzazione, la quale include alcune procedure come la creazione dei vettori di interrupt, in modo che quando viene richiesto un interrupt, il computer può eseguire la routine di interrupt appropriata e l'impostazione dell'equipaggiamento della macchina. Molti componenti del computer necessitano di impostazioni di registri e parametri per essere pronti per l'uso.

La ROM-BIOS conosce tutti gli equipaggiamenti standard che un PC può avere, ed esegue le procedure di inizializzazione necessarie. Inclusi in questo processo ci sono i passi che indicano alla ROM-BIOS come è equipaggiato il computer. Alcune di queste cose vengono rilevate dall'impostazione dei micro interruttori all'interno del computer (nel caso del PC originale o di altri compatibili) o leggendo la memoria permanente che contiene queste informazioni.

In alcuni casi la ROM-BIOS può determinare che tipo di hardware è installato interrogandolo elettronicamente e ottenendo la risposta. In qualsiasi modo accada, la ROM-BIOS imposta correttamente tutto l'hardware che è in grado di gestire.

Naturalmente è possibile aggiungere ulteriore hardware al computer. Una parte di questo può essere standard, come per esempio aggiunta di memoria o di porte seriali e parallele, ma non è tutto. Ci sono alcune componenti hardware che non vengono considerate dalle routine standard della ROM-BIOS e necessitano di un supporto particolare. Per questa evenienza, la ROM-BIOS è stata predisposta per cercare del BIOS addizionale.

Come espandere la ROM-BIOS

La ROM-BIOS nel PC è una parte fissa dell'equipaggiamento del computer, che conduce a un problema fondamentale: come si possono aggiungere delle routine per gestire delle nuove opzioni ? La risposta è che la ROM-BIOS è stata progettata per accettare un'eventuale estensione.

Lo schema è semplice: le estensioni alla ROM-BIOS sono contrassegnate in modo che la ROM-BIOS standard possa riconoscerle e integrarle direttamente nella parte standard.

Proprio come la ROM-BIOS che è contenuta in locazioni di memoria standard, anche l'estensione alla ROM-BIOS ha un indirizzo standard: i blocchi di memoria C e D.
Qualsiasi nuovo componente che richiede un supporto speciale  (per esempio un disco ottico) inserisce la sua memoria BIOS a sola lettura da qualche parte in quei blocchi e include un contrassegno speciale, 55 AA, nei primi 2 byte. La posizione della ROM-BIOS non può essere in un punto qualsiasi, ma deve avere una locazione unica che non vada in conflitto con qualsiasi altra estensione del BIOS, e deve iniziare a 2K (2048 Byte) dal limite della memoria.

La ROM-BIOS standard, che può essere anche chiamata 'principale', quando utilizza le routine di avvio, identifica eventuali estensioni presenti cercando il codice esadecimale 55AA. Se lo trova, passa il controllo all'inizio dell'estensione delBIOS. Questo permette alla 'nuova' ROM-BIOS di effettuare le operazioni necessarie per inizializzare un determinato componente hardware.

Per esempio, un'estensione ROM-BIOS per un nuovo tipo di adattore video potrebbe cambiare il vettore di interrupt per i servizi video per dirigerli direttamente all'estensione invece che alle routine video standard. Qualsiasi procedura di inizializzazione o di avvio debba essere svolta dall'estensione ROM-BIOS, questa viene eseguita quando la ROM-BIOS principale le passa il controllo durante la procedura di avvio.

Quando l'estensione ROM-BIOS ha terminato il suo lavoro, ripassa il controllo alla ROM-BIOS principale e il computer procede nel modo usuale. Ma ora il nuovo hardware e il nuovo supporto ROM-BIOS sono stati aggiunti. Tutto questo è reso possibile dal meccanismo che permette alla ROM-BIOS di cercare e riconoscere eventuali estensioni.

Bios aggiornabile

Per quanto possa sembrare strano, la ROM-BIOS nella maggior parte dei computer può ora essere cambiata. Questi BIOS aggiornabili sono memorizzati in chip chiamati EEPROMS (Electronically Erasable Programmable Read-Only Memory), o in una RAM speciale chiamata Flash.

Benchè la tecnologia che sta dietro a questi chip va oltre cli scopi di questo tutorial, è importante menzionare che questi chip conservano i dati (anche quando il sistema viene spento) fino a quando non ricevono delle istruzioni che cancellano il loro contenuto e inseriscono i comandi che costituiscono il nuovo BIOS.

I nuovi BIOS vengono generalmente forniti sotto forma di piccoli files di testo, scritti in assembler, e di un opportuno compilatore, scaricabli dal sito web del produttore della scheda madre.

In alcuni casi invece, l'aggiornamento del BIOS avviene mediante la sostituzione a livello hardware del chip che contiene il BIOS. In questi casi,  chip che contengono il BIOS si trovano in zoccoli speciali sulla scheda madre i quali consentono una facile estrazione del componente da sostituire e un facile inserimento del nuovo chip.

Routine di avvio della ROM-BIOS

L'ultima parte delle routine di avvio nella ROM-BIOS sono le routine di boot, che cercano di eseguire il DOS (Disk Operating System) o qualsiasi altro sistema operativo installato. Durante la procedura di avvio, la ROM-BIOS cerca di leggere l'area di boot all'inizio del disco.

Il BIOS fa il primo tentativo sull'unità A (il lettore di Floppy-Disk) e , se non ha successo e se il computer ha un disco fisso, prova dall'unità C (il disco fisso). Se nessuna delle due operazioni ha successo, la ROM-BIOS genera un messaggio di errore.

Avvertenza! Il programma di configurazione che permette di impostare delle opzioni di default per il BIOS consente probabilmente di escludere le unità a dischetti dalla procedura di avvio. Tuttavia, si tenga presente che se si disabilita l'unità a dischetti e il disco fisso si guasta rendendo impossibile l'avvio del computer, potrebbero sorgere parecchi problemi nella riattivazione del sistema. Per questo motivo, se non è proprio necessario, si consiglia di non escludere l'unità a dischetti dalla procedura di avvio.

Quando la ROM-BIOS riesce a leggere il settore di boot del disco, passa il controllo al piccolo programma di boot il quale avvia a sua volta il caricamento del sistema operativo (windows, ad esempio)

Una volta terminate le routine di avvio, il computer  è pronto. le altre due parti della ROM-BIOS, la gestione degli interrupt hardware e la gestione dei servizi, sono una parte cruciale per l'esecuzione dei programmi.

Le routine di gestione dei servizi vengono utilizzate dai programmi e dal DOS per effettuare determinate operazioni come, per esempio, cancellare lo schermo, passare dalla modalità testo a quella grafica, leggere dei dati dal disco fisso, o inviare informazioni alla stampante.

Ci sono anche altri servizi non relativi alle periferiche: per esempio quello che fornisce la data e l'ora corretta ai programmi.


Mini-Glossario:


Cosa sono le porte ?

(vedi tutorial: come è fatto il PC)

Cosa sono le locazioni di memoria ?

Non sono altro che gli indirizzi numerici esadecimali relativi alle celle di memoria della RAM.

(vedi tutorial: struttura di una RAM)

Cosa sono gli interrupt ?


Gli interrupt consentono al computer di sospendere l'esecuzione di un qualsiasi compito per passare a svolgerne un altro, sulla base del verificarsi di un determinato evento, ad esempio il fatto che sia stato premuto un tasto.

Questa possibilità di intervento ha una grande importanza. Essa consente di far sì che il computer si dedichi completamente all'esecuzione di determinate istruzioni, senza perciò isolarsi; se non esistesse il meccanismo degli interrupt, esso potrebbe invece reagire alle sollecitazioni esterne solo se il programma lo istruisse a verificare continuamente lo stato dei dispositivi di input.

Gli interrupt, ad esempio, consentono al processore di rispondere a una pressione di tasto oppure a qualunque altro evento che necessita di attenzione, anche durante lo svolgimento di altre operazioni.

(L'interrupt della tastiera ad esempio  è sempre '01' - figura 2)

Inoltre, l'interrupt consente di elaborare immediatamente l'evento senza dover sprecare del tempo della CPU e scrivere del codice di programma per verificare tutte le possibili combinazioni che si possono verificare durante una determinata procedura.

Il microprocessore è dunque in grado di sospendere la propria attività corrente in risposta ad una sollecitazione esterna.


Esso si serve dello stack per tener nota delle istruzioni che stava eseguendo al momento dell'interruzione, così da poterle riprendere in seguito nel punto preciso in cui le aveva lasciate. Questa è fra l'altro, una delle funzioni principali dello stack, nonchè una delle precondizioni essenziali per la realizzazione degli interrupt.
 

Torna a:






Tutorials informatica di base


Home page MC2 E-Learning



Dr.Maurizio Cucchiara
autore del corso:
"Comprendere il PC Corso Base"
disponibile on line su questo sito
MC2 E-Learning S.a r.l.
Formazione per il Web
http://www.mc2.it/html/pc.html


Cerca sul web con Google:


Google