O que meu BIOS faz depois de inicializar?
Uma vez que o seu computador termina o processo de inicialização e você está firmemente dentro do sistema operacional, há alguma coisa que o BIOS possa fazer?
A sessão de perguntas e respostas de hoje nos é oferecida por cortesia do SuperUser - uma subdivisão do Stack Exchange, um agrupamento de sites de perguntas e respostas da comunidade..
A questão
Leitor SuperUser Indrek coloca esta questão relacionada à BIOS:
Eu sempre me perguntei se o BIOS (além de conduzir o POST, iniciar o bootloader e passar o controle para o sistema operacional depois de pressionar o botão liga / desliga) tem algum propósito 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,?
De fato? Qual função o BIOS possui além de sua função crítica na inicialização do computador??
As respostas
Cortesia do contribuidor do SuperUser, Mechanical Snail, uma visão geral de como o papel do BIOS mudou ao longo do tempo e o que é e não está fazendo hoje:
O papel do BIOS
Com sistemas operacionais modernos, praticamente nenhum. Linus Torvalds supostamente disse que sua tarefa é "apenas carregar o sistema operacional e dar o fora de lá".
Sistemas operacionais mais antigos, como o MS-DOS, dependiam do BIOS para muitas tarefas (por exemplo, acesso ao disco), chamando interrupções.
Com sistemas operacionais modernos, o bootloader muda 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 pelos aplicativos de espaço do usuário. As rotinas do kernel podem ser mais portáveis (já que não dependem do hardware específico), mais flexíveis (fornecedores de SO podem alterá-las sob demanda em vez de usar o que vem 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 colidam uns com os outros, implementando seus próprios esquemas de permissões arbitrárias).
Para interagir com hardware específico, os sistemas operacionais podem carregar e usar seus próprios drivers de dispositivo. Portanto, não há necessidade de o SO ou os aplicativos chamarem a maioria das rotinas do BIOS. De fato, por motivos de segurança, as interrupções do BIOS estão até desabilitadas. Como o BIOS vive no modo real de 16 bits, é mais difícil chamar os sistemas operacionais modernos.
Embora o uso do BIOS seja muito limitado enquanto o SO é executado, suas funções ainda são usadas perifericamente. Por exemplo, quando um computador fica inativo, o sistema operacional não está em execução e, em última análise, cabe ao firmware configurar o hardware para o estado correto para pausar e retomar o sistema operacional. Esses usos são geralmente limitados a ACPI chamadas em vez de chamadas para a interface completa do BIOS. A ACPI é uma extensão da BIOS que “coloca o gerenciamento de energia sob o controle do sistema operacional (OSPM), em oposição ao sistema central BIOS anterior, que se baseou no firmware específico da plataforma para determinar a política de gerenciamento e configuração de energia”.
Note que oficialmente "BIOS" refere-se 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) pela UEFI, que, é claro, é o que é chamado para implementar essas funções..
Para mais informações sobre como o papel do BIOS diminuiu ao longo do tempo, veja Wikipedia.
Outro colaborador do SuperUser, Simon Richter, nos dá uma visão geral das coisas que o BIOS ainda faz:
O BIOS e o gerenciamento de energia
O BIOS fornece vários serviços para os sistemas operacionais, a maioria dos quais relacionados ao gerenciamento de energia:
- modificando os relógios da CPU e do barramento
- habilitar / desabilitar dispositivos da placa-mãe
- controle de potência da porta de expansão
- suspender para disco e suspender para RAM
- retomar as configurações do evento
Suspender para disco é implementado no sistema operacional na maior parte do tempo, pois o sistema operacional pode restaurar seu estado mais rapidamente (somente 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.
Suspender para RAM não pode ser implementado pelo sistema operacional, pois ele depende do BIOS ignorando a inicialização e o teste da RAM, portanto, o sistema operacional precisa de uma API para informar à BIOS que pretende ser retomada com o conteúdo atual da RAM. A fim de fornecer este serviço, o BIOS pede ao sistema operacional para deixar uma certa área de RAM intacta.
A interface do sistema operacional para todos os serviços de BIOS é uma parte do código da máquina virtual que precisa ser executada em um emulador e que gera as operações de E / S necessárias no hardware. Para a suspensão, isso geralmente é implementado para que a execução de uma das gravações de hardware dispare uma interrupção, que transfere o controle para o BIOS.
Tem algo a acrescentar à explicação? Soe fora nos comentários. Quer ler mais respostas de outros usuários do Stack Exchange com experiência em tecnologia? Confira o tópico de discussão completo aqui.