Quais são as funções do BIOS enquanto o sistema operacional está em execução?

78

Sempre me perguntei se o BIOS (além de realizar o POST, iniciar o gerenciador de inicialização e passar o controle para o sistema operacional depois de pressionar o botão liga / desliga) tem algum objetivo ou função enquanto o sistema operacional está em execução?

O sistema operacional se comunica com o BIOS durante a execução e, em caso afirmativo, como?

JohnnyFromBF
fonte

Respostas:

72

Com sistemas operacionais modernos, praticamente nenhum . Linus Torvalds disse que sua tarefa é "simplesmente carregar o sistema operacional e dar o fora daqui".

Sistemas operacionais mais antigos, como o MS-DOS, dependiam do BIOS para muitas tarefas (por exemplo, acesso ao disco), chamando interrupções.

Nos sistemas operacionais modernos, o carregador de inicialização alterna rapidamente para o modo de 32 ou 64 bits e executa o kernel do sistema operacional. O kernel pode registrar seus próprios manipuladores de interrupção, que podem ser chamados por aplicativos no espaço do usuário. As rotinas do kernel podem ser mais portáteis (já que não dependem do hardware específico), mais flexíveis (os fornecedores de sistemas operacionais podem alterá-las sob demanda, em vez de usar o que vier com o hardware), mais sofisticadas (podem executar arbitrariamente complexas código em vez do que foi programado no BIOS) e mais seguro (já que o sistema operacional pode controlar o acesso a recursos compartilhados e impedir que os programas estraguem uns aos outros, implementando seus próprios esquemas de permissão arbitrários).

Para interagir com hardware específico, os SOs podem carregar e usar seus próprios drivers de dispositivo. Portanto, não é necessário que o sistema operacional ou aplicativos chame a maioria das rotinas de BIOS. De fato, por razões de segurança, as interrupções do BIOS são desativadas. Como o BIOS vive no modo real de 16 bits, é mais difícil solicitar sistemas operacionais modernos.

Embora o uso do BIOS seja muito limitado enquanto o sistema operacional é executado, suas funções ainda são usadas de forma periférica. Por exemplo, quando um computador dorme , o sistema operacional não está em execução e, por fim, cabe ao firmware definir o hardware no estado correto para pausar e retomar o sistema operacional. Esses usos geralmente são limitados a chamadas ACPI , em vez de chamadas para a interface completa do BIOS. O ACPI é uma extensão do BIOS que "coloca o gerenciamento de energia sob o controle do sistema operacional (OSPM), em oposição ao sistema central anterior do BIOS, que contava com firmware específico da plataforma para determinar o gerenciamento de energia e a política de configuração" .

Observe que oficialmente "BIOS" se refere a uma interface de firmware específica, mas o termo é comumente usado para se referir ao firmware do computador em geral. Alguns computadores recentes (especialmente os da Apple) substituíram o BIOS (sensu strictu) pelo UEFI , o que obviamente é o que é chamado para implementar essas funções.

Para mais informações sobre como o papel do BIOS diminuiu com o tempo, consulte Wikipedia .

Caracol mecânico
fonte
15
Há alguma interação mínima via relógio do sistema (hora do dia).
MSalters
7
Você realmente tem certeza disso? E os controles dos ventiladores, o modo de gerenciamento do sistema já mencionado, toda a ACPI, que por exemplo controla a velocidade do processador?
Alexander Alexander
32
Eu poderia tentar soldar o chip do BIOS enquanto a máquina estiver funcionando.
JohnnyFromBF
5
@Ian Por que dificultar para si mesmo. Encontre uma placa antiga com uma bios encaixada e apenas arranque o chip. Como alternativa ao IIRC, algumas placas de overclocker recentes ainda possuem uma opção de hardware para permitir a troca entre dois BIOS. Falha em um flash da imagem B, inicialize em A, alterne para B durante a execução.
Dan Neely
17
@ Ian eu fiz isso. Perdi energia ao piscar um BIOS, ele não inicializou depois disso. Tínhamos 20 máquinas com exatamente o mesmo hardware e elas estavam envelhecendo. Então eu inicializei uma, removi o chip BOIS, liguei a parafusada e pisquei. Ambos os chips do BOIS funcionaram perfeitamente bem depois disso. Concedido, era DOS, rodando para o software flash. Ainda impressionante, eu acho. (Boards foram Gigabyte marca, Pentium 4 compatível, tanto quanto me lembro)
Ekin Koc
32

O BIOS fornece vários serviços aos sistemas operacionais, a maioria relacionada ao gerenciamento de energia:

  • modificando os relógios da CPU e do barramento
  • ativar / desativar dispositivos da placa principal
  • controle de potência da porta de expansão
  • suspender para disco e suspender para RAM
  • retomar as configurações do evento

A suspensão no disco é implementada no sistema operacional na maioria das vezes, pois o sistema operacional pode restaurar seu estado mais rapidamente (apenas o estado do kernel é recarregado e o estado do programa é trocado quando necessário, o que é significativamente mais rápido do que recarregar toda a RAM), mas o recurso permanece na especificação.

A suspensão na RAM não pode ser implementada pelo sistema operacional, pois ele depende do BIOS pular a inicialização e o teste da RAM, portanto, o sistema operacional precisa de uma API para informar ao BIOS que pretende retomar o conteúdo atual da RAM. Para fornecer esse serviço, o BIOS solicita que o sistema operacional deixe uma determinada área de RAM intacta.

A interface do sistema operacional para todos os serviços do BIOS é um código de máquina virtual que precisa ser executado em um emulador e que gera as operações de E / S necessárias no hardware. Para suspender, isso geralmente é implementado, de modo que a execução de uma das gravações de hardware aciona uma interrupção, que transfere o controle para o BIOS.

Simon Richter
fonte
17

Existem três áreas principais em que um sistema operacional usa o BIOS em sistemas modernos, como aqueles que usam o padrão UEFI. O primeiro é uma série de serviços conhecidos como serviços de tempo de execução UEFI. Esses serviços permitem que o sistema operacional obtenha informações que apenas o BIOS sabe, como o tempo que o BIOS estava usando, a ordem de inicialização, o perfil de segurança do usuário atual, as informações sobre a placa-mãe, os DIMMs etc.

O segundo é o Modo de Gerenciamento do Sistema, que é uma seção oculta da memória (SMRAM) que é acessada por uma interrupção de alta prioridade (SMM). Muitos BIOS usam isso para implementar recursos OEM de alta segurança ou para solucionar problemas de hardware.

O terceiro é ACPI. A ACPI fornece dados de configuração, gerenciamento de energia e hardware e código usado pelo sistema operacional para aumentar o que os drivers do sistema operacional podem descobrir usando um padrão da indústria ou driver de dispositivo. Por exemplo, existe um sinal especial para controlar a energia do disco rígido ou existe uma maneira especial de conversar com a bateria que não é coberta por um padrão.

Tim

Tim Lewis
fonte
9

Os SOs modernos usam o BIOS principalmente para carregar apenas, mas ainda existem alguns usos para ele, incluindo:

  • Reagindo ao botão liga / desliga (desligue o PC após 4 segundos
    incluídos).
  • Alterando as configurações de brilho da tela em laptops
  • Eventos de bateria em laptops
  • Suspensão
bluehallu
fonte
Eu pensei que o brilho era feito alterando os valores das cores logo antes do desenho.
12138 Cole Johnson
3
@ColeJohnson: Não: Nos Thinkpads, pelo menos, ele realmente altera o brilho da luz de fundo.
Caracol mecânico
1
O brilho é um sinal modulado por largura de pulso controlado por hardware, ligando e desligando o LED branco brilhante em alta frequência. Esta luz é um grande consumidor de bateria
1

Além do que foi observado acima, a Intel está começando a mudar de direção e aumentar o acesso ao hardware, através da Active Management Technology, integrada à BIOS e à placa-mãe, que podem ser controladas independentemente do sistema operacional. Com essas placas, você pode realmente fazer um pouco. Se você o considera embutido ou um segundo sistema operacional é outra coisa, mas como ele possui hardware e componentes integrados na bios, eu continuo com o embutido.

intels marketing guff

Matt
fonte