Quali sono le funzioni del BIOS mentre il sistema operativo è in esecuzione?


78

Mi sono sempre chiesto se il BIOS (oltre a condurre POST, avviare il bootloader e passare il controllo al sistema operativo dopo aver premuto il pulsante di accensione) abbia qualche scopo o funzione mentre il sistema operativo è in esecuzione?

Il sistema operativo comunica con il BIOS durante l'esecuzione e, in caso affermativo, come?


Risposte:


72

Con i moderni sistemi operativi, praticamente nessuno . Secondo quanto riferito, Linus Torvalds ha il compito di "caricare semplicemente il sistema operativo e uscire da lì".

I sistemi operativi meno recenti come MS-DOS si basavano sul BIOS per molte attività (ad esempio l'accesso al disco), chiamando interrupt.

Con i moderni sistemi operativi, il bootloader passa rapidamente alla modalità a 32 o 64 bit ed esegue il kernel del sistema operativo. Il kernel può registrare i propri gestori di interrupt, che possono essere chiamati dalle applicazioni dello spazio utente. Le routine del kernel possono essere più portatili (poiché non dipendono dall'hardware specifico), più flessibili (i fornitori del sistema operativo possono cambiarle su richiesta piuttosto che dover usare tutto ciò che viene fornito con l'hardware), più sofisticate (possono eseguire arbitrariamente complesse codice piuttosto che ciò che è stato programmato nel BIOS) e più sicuro (poiché il sistema operativo può controllare l'accesso alle risorse condivise e impedire ai programmi di bloccarsi a vicenda, implementando i propri schemi di autorizzazioni arbitrarie).

Per interagire con hardware specifico, i sistemi operativi possono caricare e utilizzare i propri driver di dispositivo. Quindi non è necessario che il sistema operativo o le applicazioni chiamino la maggior parte delle routine BIOS. In effetti, per motivi di sicurezza, gli interrupt del BIOS sono addirittura disabilitati. Poiché il BIOS vive in modalità reale a 16 bit, è più difficile richiedere sistemi operativi moderni.

Mentre l'uso del BIOS è molto limitato mentre il sistema operativo è in esecuzione, le sue funzioni sono ancora utilizzate in modo periferico. Ad esempio, quando un computer dorme , il sistema operativo non è in esecuzione e alla fine spetta al firmware impostare l'hardware sullo stato corretto per mettere in pausa e riprendere il sistema operativo. Questi usi sono generalmente limitati alle chiamate ACPI piuttosto che alle chiamate all'interfaccia BIOS completa. ACPI è un'estensione del BIOS che "porta la gestione dell'alimentazione sotto il controllo del sistema operativo (OSPM), a differenza del precedente sistema BIOS-centrale, che si basava su un firmware specifico della piattaforma per determinare la gestione dell'alimentazione e la politica di configurazione" .

Si noti che ufficialmente "BIOS" si riferisce a una particolare interfaccia del firmware, ma il termine è comunemente usato per indicare il firmware del computer in generale. Alcuni computer recenti (in particolare quelli Apple) hanno sostituito il BIOS (sensu strictu) con UEFI , che ovviamente è ciò che viene chiamato per implementare queste funzioni.

Per ulteriori informazioni su come il ruolo del BIOS è diminuito nel tempo, consultare Wikipedia .


15
Vi è una minima interazione tramite l'orologio di sistema (ora del giorno).
Salmi

7
Ne sei davvero sicuro? E i controlli della ventola, la già menzionata modalità di gestione del sistema, l'intero ACPI, che ad esempio controlla la velocità del processore?
Alexander,

32
Potrei provare e saldare il chip del BIOS mentre la macchina è in esecuzione.
JohnnyFromBF,

5
@Ian perché renderlo difficile per te stesso. Trova una scheda più vecchia con un BIOS con socket e tira semplicemente il chip. In alternativa IIRC alcune recenti schede di overclocker hanno ancora uno switch hardware che consente di scambiare tra due BIOS. Mescola un lampo dell'immagine B, avviati su A, passa a B mentre corri.
Dan Neely,

17
@Ian l'ho fatto. Ho perso energia durante il flashing di un BIOS, dopo non si è avviato. Avevamo 20 macchine con lo stesso identico hardware e stavano invecchiando .. Così ne ho avviato uno, rimosso il chip BOIS, inserito quello avvitato e lampeggiato. Entrambi i chip BOIS hanno funzionato perfettamente dopo. Certo, era DOS, in esecuzione per software flash. Impressionante, credo. (Le schede erano marchiate Gigabyte, compatibili Pentium 4 per quanto mi ricordo)
Ekin Koc

32

Il BIOS fornisce una serie di servizi ai sistemi operativi, molti dei quali sono legati alla gestione del risparmio energetico:

  • modifica della CPU e dei clock del bus
  • abilitare / disabilitare i dispositivi della scheda madre
  • controllo dell'alimentazione della porta di espansione
  • suspend-to-disk e suspend-to-RAM
  • riprendere le impostazioni dell'evento

La sospensione su disco è implementata nel sistema operativo la maggior parte delle volte poiché il sistema operativo può ripristinare il suo stato più velocemente (viene ricaricato solo lo stato del kernel e lo stato del programma viene sostituito quando richiesto, che è significativamente più veloce del ricaricare l'intera RAM), ma la funzione rimane nelle specifiche.

La sospensione su RAM non può essere implementata dal sistema operativo, poiché si basa sul fatto che il BIOS salti l'inizializzazione e il test della RAM, quindi il sistema operativo ha bisogno di un'API per comunicare al BIOS che intende riprendere con il contenuto RAM corrente. Per fornire questo servizio, il BIOS chiede al sistema operativo di lasciare intatta una determinata area RAM.

L'interfaccia per il sistema operativo per tutti i servizi BIOS è un pezzo di codice di macchina virtuale che deve essere eseguito su un emulatore e che genera le operazioni I / O necessarie nell'hardware. Per sospensione, questo è generalmente implementato in modo che l'esecuzione di una delle scritture hardware inneschi quindi un interrupt, che trasferisce il controllo al BIOS.


17

Esistono tre aree principali in cui un sistema operativo utilizza il BIOS nei sistemi moderni, come quelli che utilizzano lo standard UEFI. Il primo è una serie di servizi noti come servizi di runtime UEFI. Questi servizi consentono al sistema operativo di acquisire informazioni che solo il BIOS conosce, come il tempo in cui il BIOS era in uso, l'ordine di avvio, l'attuale profilo di sicurezza dell'utente, le informazioni sulla scheda madre, i moduli DIMM, ecc.

La seconda è la modalità di gestione del sistema, che è una sezione nascosta della memoria (SMRAM) a cui accede un interrupt ad alta priorità (SMM). Molti BIOS lo usano per implementare funzionalità OEM ad alta sicurezza o per implementare soluzioni hardware.

Il terzo è ACPI. ACPI fornisce dati di configurazione, gestione dell'alimentazione e hardware e codice utilizzati dal sistema operativo per aumentare ciò che i driver del sistema operativo possono scoprire utilizzando uno standard industriale o un driver di dispositivo. Ad esempio, esiste un segnale speciale per controllare la potenza del disco rigido o esiste un modo speciale per parlare con la batteria che non è coperto da uno standard.

Tim


9

I moderni sistemi operativi usano il BIOS principalmente per il solo caricamento, ma ci sono ancora alcuni usi per esso che includono, in particolare:

  • Reagire al pulsante di accensione (spegnere il PC dopo 4 secondi
    inclusi).
  • Modifica delle impostazioni di luminosità dello schermo sui laptop
  • Eventi della batteria sui laptop
  • Sospensione

Ho pensato che la luminosità fosse fatta modificando i valori del colore prima di disegnare.
Cole Johnson,

3
@ColeJohnson: No: almeno sui Thinkpad cambia effettivamente la luminosità della retroilluminazione.
Lumaca meccanica

1
La luminosità è un segnale modulato a larghezza di impulso controllata dall'hardware, che accende e spegne il LED bianco luminoso ad alta frequenza. Questa luce è uno dei principali consumatori di batterie

1

Oltre a quanto notato sopra, Intel sta iniziando a oscillare dall'altra parte e ad aumentare ulteriormente fornendo accesso fuori banda all'hardware tramite la tecnologia di gestione attiva integrata nel BIOS e nella scheda madre che possono essere controllati indipendentemente dal sistema operativo. Con queste schede puoi effettivamente fare un bel po '. Sia che lo consideri integrato o un secondo sistema operativo è un'altra cosa, ma poiché ha hardware integrato e componenti nel BIOS, sto attaccando con integrato.

intel marketing guff

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.