Un BIOS è un pezzo di codice dipendente dall'hardware memorizzato sulla scheda madre stessa. Ogni scheda madre diversa ha bisogno di un BIOS personalizzato scritto per questo, quindi sarebbe impossibile avere un BIOS / OS generico all-in-one (anche se il BIOS è tecnicamente solo codice memorizzato, quindi teoricamente potresti scrivere un sistema operativo per una scheda madre particolare) . Come hai già detto, lo scopo del BIOS è di effettuare le seguenti operazioni:
All'avvio del PC, il primo lavoro per il BIOS è l'autotest all'accensione, che inizializza e identifica i dispositivi di sistema come CPU, RAM, scheda video, tastiera e mouse, unità disco fisso, unità disco ottico e altro hardware.
Si noti che è ancora possibile avviare un computer senza memoria esterna, motivo per cui il BIOS è un requisito per un computer. In altri termini, il BIOS fornisce un'interfaccia software comune per consentire a un programma per computer memorizzato di comunicare con vari dispositivi hardware collegati alla scheda madre.
Ad esempio, se ho due diverse schede madri con due diversi controller SATA, il BIOS mi consente di scrivere un pezzo di codice che può funzionare con entrambi, senza che io sappia come la scheda madre effettivamente invia comandi al dispositivo SATA. Devo solo dire al computer "leggere il settore X da questo dispositivo SATA" e il BIOS è responsabile dell'invio effettivo di tali comandi all'hardware.
Il punto in cui ottiene effettivamente le informazioni di "lettura del settore X" è un programma memorizzato contenuto nel BIOS, che di solito indirizza il computer ad avviare la lettura da un bootloader archiviato in una posizione comune. Queste posizioni comuni sono concordate da vari sviluppatori di software e hardware e generalmente fornite al pubblico per consentire una maggiore compatibilità tra i sistemi.
Una volta stabilito un livello base di interfacciamento (di nuovo, interfaccia logica tramite software), il sistema operativo stesso crea un'interfaccia comune con i vari dispositivi hardware (di solito utilizzando "driver di dispositivo") e il sistema operativo può quindi controllare l'hardware.
Infine, va notato che il BIOS viene utilizzato anche per apportare modifiche alle configurazioni hardware del computer e memorizzarle nella EEPROM di bordo (in modo che il computer ricordi le modifiche al successivo avvio). Tuttavia, come ho detto in precedenza, una volta caricato il sistema operativo, ha il pieno controllo del computer.
Ciò consente ai produttori di schede madri di sviluppare software che consente di apportare queste modifiche all'interno del sistema operativo, anziché dover riavviare il BIOS. Ancora una volta, questo dipende molto dall'hardware e dal software, ma dimostra che tutta l'interfaccia del computer è relativa. Il BIOS è esattamente ciò che suggerisce il nome: un sistema di input / output di base, per consentire a un'interfaccia software comune per un programma più avanzato ("sistema operativo") di assumere il controllo della macchina.