Por que os sistemas operacionais (geralmente?) Não conseguem acessar as configurações do BIOS?

20

A placa-mãe não fornece um barramento entre a CPU e o chip do BIOS após a inicialização? Se sim, por que não?

Se a CPU pode controlar a velocidade do ventilador, não vejo por que não deve ser capaz de controlar a configuração do BIOS.

Dmiters
fonte
Pelo que entendi, quando o BIOS puxa o gerenciador de inicialização, ele deixa de funcionar, em casos de IPMI.
Linef4ult
Alguns fabricantes de placas-mãe têm utilitários para fazer isso, mas esses utilitários são específicos para essa placa-mãe, o Windows não a possui, pois isso poderia ser uma má notícia se um malware a usasse ou um usuário comum bisbilhotando a configuração da bios.
Moab
Como DavidPostill já respondeu. Windows (e outros sistemas operacionais) geralmente podem acessar o BIOS. No entanto, isso depende do chipset e da placa-mãe e pode não funcionar 100% fora do tempo. Se você passar do firmware do BIOS para o firmware UEFI, terá mais controle.
Hennes
Já faz um tempo desde que eu vi um PC com um BIOS real. Se você quer dizer UEFI, está logo abaixo /sys/firmware/efino Linux.
Dmitry Grigoryev
Depois que o controle é entregue ao sistema operacional, o BIOS não é usado. Você pode até retirar o chip do BIOS para programar outro na instância de recuperação / atualização do BIOS de um BIOS corrompido.
AStopher

Respostas:

44

Por que os sistemas operacionais (geralmente?) Não conseguem acessar as configurações do BIOS?

A pergunta acima não pode ser respondida, pois o sistema operacional pode acessar o BIOS.

Responderei abaixo à pergunta que poderia ter sido feita.


Como os sistemas operacionais conseguem acessar as configurações do BIOS?

No Windows e Unix, o sistema operacional é capaz de ler o BIOS.

janelas

Exemplo (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

O Windows também pode gravar no BIOS (alguns fabricantes de placas-mãe fornecem um atualizador de BIOS baseado no Windows).

Veja, por exemplo, Como atualizar o BIOS, se necessário, através do Windows ou no BIOS .

Unix

O Unix possui comandos semelhantes.

  • O biosdecode analisa a memória do BIOS e imprime as informações sobre todas as estruturas.

  • Você pode fazer chamadas de BIOS em tempo real a partir do usuário raiz usando aplicativos C que incluem ASM (código de montagem) incorporado.

Origem Como despejar dados do BIOS em um arquivo


Leitura adicional

DavidPostill
fonte
5
Quero acrescentar que, antes do Windows XP, você poderia fazer - o que, no melhor do meu conhecimento, poderia ser descrito como - truques de ponteiros para acessar a configuração do debug.com - lembre-se de que havia um truque para apagar a proteção por senha de algumas biografias modelos. As pesquisas na Web "debug.com" bios passwordparecem trazer algumas informações relevantes sobre o assunto.
precisa saber é o seguinte
11
ainda não atender o "Por quê?" .... insatisfatória ....
Zaibis
@Zaibis Não precisa responder o "porquê". O sistema operacional pode acessar o BIOS, perguntando (e respondendo) por que ... incapaz ... é uma pergunta sem sentido. Eu esclareci a resposta um pouco.
DavidPostill
11
"Unable" should be replaced by "able" as the OS can access the BIOS.Se você apenas pretendia que fosse uma frase, deveria removê-la. Desde que seguimos seus conselhos, continua sendo uma pergunta que você nem está abordando.
Zaibis
11
@Zaibis <sigh> Todo mundo entendeu a resposta (incluindo o OP que aceitou a resposta). Atualizei-o novamente especialmente para você;)
DavidPostill
19

Eles podem, mas não há muito no caminho da interface padronizada para as configurações, especialmente se você quer dizer "BIOS" adequado (ou seja, pré-UEFI).

Certas partes do BIOS são regidas por contratos de software entre o BIOS e o SO em execução. Há muito tempo, as rotinas do BIOS eram usadas para todos os tipos de tarefas diárias, como leitura e gravação de discos, exibição de itens na tela e impressão em uma impressora conectada, daí o nome "sistema básico de entrada / saída". Se o BIOS corresponder ao hardware, o sistema operacional poderá suportar diferentes variantes de hardware sem ter que ter suas próprias rotinas para todas essas coisas. Porém, à medida que o hardware e os sistemas operacionais se tornaram mais complicados e ultrapassaram o conjunto limitado de recursos do BIOS, os sistemas operacionais começaram a fornecer seus próprios drivers para quase tudo, contando apenas com o BIOS para inicialização, gerenciamento de energia e recuperação de informações de configuração do sistema.

Mas o BIOS também ficou mais complicado e ganhou todos os tipos de configurações e habilidades que não eram governadas pela interface do OS-BIOS, e mesmo para as coisas que estão lá dentro, apenas especificam os resultados , não a implementação . Isso significa que todos os fabricantes de BIOS são livres para fazer as coisas como quiserem, que são livres para mudar as coisas sempre que quiserem, desde que os sistemas operacionais continuem em execução e que não precisam contar a ninguém nenhum detalhe. O acesso aos dados armazenados pelo BIOS é um pedaço de bolo, mas se você tiver um utilitário que possa dar sentido aos dados ou que possa modificá-los de uma maneira que o BIOS realmente entenderá, provavelmente foi feito pelo Próprio fabricante do BIOS ou é o resultado da engenharia reversa.

hobbs
fonte
Seria legal se você pudesse descrever a parte "pedaço de bolo" com alguns detalhes técnicos. Por exemplo, suponha que eu saiba executar código C arbitrário no modo kernel; Agora, como eu iria despejar o BIOS manualmente?
Mehrdad
6
@Mehrdad A área de dados do BIOS e a área de dados estendida do BIOS são mapeadas para os principais endereços de memória e, portanto, podem ser lidas e gravadas diretamente com os privilégios apropriados. (Geralmente você não deseja fazer isso ...) Veja, por exemplo, 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 para obter mais informações sobre o layout do BDA (o primeiro também fornece uma breve introdução a uma variante do layout do EBDA). Alimente "Área de dados do BIOS" e "Área de dados estendida do BIOS" no seu mecanismo de pesquisa favorito para obter mais informações.
um CVn