Perché i sistemi operativi (di solito?) Non sono in grado di accedere alle impostazioni del BIOS?


20

La scheda madre non fornisce un bus tra la CPU e il chip BIOS dopo l'avvio? Se è così, perché no?

Se la CPU può controllare la velocità della ventola, non vedo perché non dovrebbe essere in grado di controllare la configurazione del BIOS.


Per quanto ne so, quando il BIOS inserisce il bootloader in esso smette di funzionare, aspettarsi che si verifichi un IPMI.
Linef4ult

Alcuni produttori di schede madri hanno programmi di utilità per farlo, ma questi programmi di utilità sono specifici di quella scheda madre, Windows non lo ha incorporato in quanto ciò potrebbe essere una cattiva notizia se il malware lo utilizzava o un utente medio frugava nella configurazione del BIOS.
Moab,

Come DavidPostill ha già risposto. Windows (e altri sistemi operativi) possono spesso accedere al BIOS. Tuttavia, questo dipende dal chipset e dalla scheda madre e potrebbe non funzionare al 100% di tempo. Se si passa dal firmware del BIOS al firmware UEFI, si ottiene un maggiore controllo.
Hennes,

È da un po 'che non vedo un PC con un vero BIOS. Se vuoi dire UEFI, è proprio lì sotto /sys/firmware/efiin Linux.
Dmitry Grigoryev l'

Dopo che il controllo viene passato al sistema operativo, il BIOS non viene utilizzato. È anche possibile estrarre il chip BIOS per programmarne un altro nell'istanza di ripristino / reflash del BIOS di un BIOS danneggiato.
Dopo l'

Risposte:


44

Perché i sistemi operativi (di solito?) Non sono in grado di accedere alle impostazioni del BIOS?

Non è possibile rispondere alla domanda sopra poiché il sistema operativo può accedere al BIOS.

Di seguito risponderò alla domanda che avrebbe potuto essere posta.


In che modo i sistemi operativi sono in grado di accedere alle impostazioni del BIOS?

Su Windows e Unix il sistema operativo è in grado di leggere il BIOS.

finestre

Esempio (usando wmic):

F:\test>wmic bios /?

BIOS - Basic input/output services (BIOS) management.

HINT: BNF for Alias usage.
(<alias> [WMIObject] | <alias> [<path where>] | [<alias>] <path where>) [<verb clause>].

USAGE:

BIOS ASSOC [<format specifier>]
BIOS CREATE <assign list>
BIOS DELETE
BIOS GET [<property list>] [<get switches>]
BIOS LIST [<list format>] [<list switches>]


F:\test>wmic bios list brief
Manufacturer              Name                                        SerialNumber      SMBIOSBIOSVersion  Version
American Megatrends Inc.  BIOS Date: 09/05/11 11:20:58 Ver: 04.06.03  27546064-5001600  R1190V3            Sony - 20110905

Windows può anche scrivere nel BIOS (alcuni produttori di schede madri forniscono un aggiornamento del BIOS basato su Windows).

Vedere ad esempio Come eseguire il flashing del BIOS, se necessario, tramite Windows o nel BIOS .

Unix

Unix ha comandi simili.

  • biosdecode analizza la memoria del BIOS e stampa le informazioni su tutte le strutture.

  • È possibile effettuare chiamate BIOS in tempo reale dall'utente root utilizzando le applicazioni C che includono ASM incorporato (codice assembly).

Origine Come scaricare i dati del BIOS in un file


Ulteriori letture


5
Voglio aggiungere che prima di Windows XP, potresti fare - quello che al meglio delle mie conoscenze potrebbe essere descritto come - trucchetto del puntatore per accedere all'installazione da debug.com - ricorda che c'era un trucco per cancellare la protezione con password di alcuni BIOS Modelli. Le ricerche sul Web "debug.com" bios passwordsembrano portare alcune informazioni pertinenti sull'argomento.
Theraot,

1
continua a non rispondere al "Perché?" .... insoddisfacente ....
Zaibis,

@Zaibis Non è necessario rispondere al "perché". Il sistema operativo può accedere al BIOS chiedendo (e rispondendo) perché ... impossibile ... è una domanda insignificante. Ho chiarito un po 'la risposta.
DavidPostill

1
"Unable" should be replaced by "able" as the OS can access the BIOS.Se intendevi solo che fosse una frase, dovresti rimuoverla. Dal momento che seguendo il tuo consiglio, le loro domande rimangono una domanda che non stai nemmeno affrontando.
Zaibis,

1
@Zaibis <sigh> Tutti gli altri hanno capito la risposta (incluso l'OP che ha accettato la risposta). L'ho aggiornato di nuovo soprattutto per te;)
DavidPostill

19

Possono, ma non c'è molto in termini di interfaccia standardizzata con le impostazioni lì dentro, specialmente se intendi "BIOS" in modo corretto (cioè pre-UEFI).

Alcune parti del BIOS sono regolate da contratti software tra il BIOS e il sistema operativo in esecuzione su di esso. Molto tempo fa, le routine BIOS sono state utilizzate per tutti i tipi di attività quotidiane come leggere e scrivere dischi, visualizzare cose sullo schermo e stampare su una stampante collegata, da cui il nome "sistema di input / output di base". Se il BIOS fosse abbinato all'hardware, il sistema operativo potrebbe supportare diverse varianti hardware senza dover avere le proprie routine per tutte queste cose. Ma man mano che l'hardware e i sistemi operativi diventavano sempre più complicati e superavano il numero limitato di funzionalità del BIOS, i sistemi operativi iniziarono a fornire i propri driver per quasi tutto, basandosi solo sul BIOS per l'avvio, la gestione dell'alimentazione e il recupero delle informazioni di configurazione del sistema.

Ma anche il BIOS è diventato più complicato e ha acquisito tutti i tipi di impostazioni e abilità che non erano governate dall'interfaccia OS-BIOS, e anche per le cose che sono lì dentro specifica solo i risultati , non l' implementazione . Ciò significa che tutti i produttori di BIOS sono liberi di fare le cose come vogliono, che sono liberi di cambiare le cose quando vogliono finché i sistemi operativi continuano a funzionare e che non devono comunicare a nessuno i dettagli. L'accesso ai dati memorizzati dal BIOS è un gioco da ragazzi, ma se si dispone di un'utilità che può dare un senso ai dati o che può modificarli in modo che il BIOS possa effettivamente comprendere, allora probabilmente è stato creato dal Produttore del BIOS stesso, o è il risultato del reverse engineering.


Sarebbe bello se potessi descrivere la parte "pezzo di torta" in alcuni dettagli tecnici. Ad esempio, supponiamo che io sappia come eseguire codice C arbitrario in modalità kernel; ora come potrei fare per scaricare manualmente il BIOS?
Mehrdad,

6
@Mehrdad L'Area dati BIOS e l'Area dati BIOS estesa sono mappati sugli indirizzi di memoria principali e possono quindi essere letti e scritti direttamente con i privilegi appropriati. (Di solito non vuoi farlo ...) Vedi ad esempio wiki.osdev.org/Memory_Map_%28x86%29#BIOS_Data_Area_.28BDA.29 e stanislavs.org/helppc/bios_data_area.html e bioscentral.com/misc /bda.htm per ulteriori informazioni sul layout BDA (il primo fornisce anche una breve introduzione a una variante del layout EBDA). Inserisci "Area dati BIOS" e "Area dati BIOS estesa" nel tuo motore di ricerca preferito per ulteriori informazioni.
un CVn del
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.