Sempre me perguntei se o BIOS (além de conduzir o POST, iniciar o bootloader e passar o controle para o sistema operacional após pressionar o botão liga / desliga) tem alguma finalidade 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?
Responder1
Com sistemas operacionais modernos,praticamente nenhum. Linus Torvalds supostamente disse que sua tarefa é “apenas carregar o sistema operacional e dar o fora daí”.
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 por aplicativos de espaço de usuário. As rotinas do kernel podem ser mais portáveis (uma vez que não dependem do hardware específico), mais flexíveis (os fornecedores de sistemas operacionais podem alterá-las sob demanda em vez de ter que usar o que veio com o hardware), mais sofisticadas (elas podem executar tarefas 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 evitar que programas se destruam, 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 sistema operacional ou os aplicativos chamarem a maioria das rotinas do BIOS. Na verdade, por razões de segurança, as interrupções do BIOS estão até desativadas. Como o BIOS funciona no modo real de 16 bits, é mais difícil recorrer a sistemas operacionais modernos.
Embora o uso do BIOS seja muito limitado durante a execução do sistema operacional, suas funções ainda são usadas perifericamente.Por exemplo, quando um computador dorme, o sistema operacional não está em execução e, em última análise, cabe ao firmware definir o hardware para o estado correto para pausar e retomar o sistema operacional. Esses usos são geralmente limitados aACPIchamadas em vez de chamadas para a interface completa do BIOS. 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 BIOS anterior, que dependia de 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) porUEFI, que é claro o que é chamado para implementar essas funções.
Para obter mais informações sobre como a função do BIOS diminuiu ao longo do tempo, consulteWikipédia.
Responder2
O BIOS fornece vários serviços aos sistemas operacionais, muitos dos quais relacionados ao gerenciamento de energia:
- modificando os clocks da CPU e do barramento
- ativar/desativar dispositivos da placa-mãe
- controle de energia da porta de expansão
- suspender para disco e suspender para RAM
- retomar as configurações do evento
A suspensão para 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 para RAM não pode ser implementada pelo sistema operacional, pois depende do BIOS ignorar a inicialização e o teste da RAM, portanto, o sistema operacional precisa de uma API para informar ao BIOS que pretende ser retomado com o conteúdo atual da RAM. Para fornecer este serviço, o BIOS pede ao sistema operacional para deixar intacta uma determinada área de RAM.
A interface do sistema operacional para todos os serviços do BIOS é um trecho de 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 suspensão, isso geralmente é implementado de forma que a execução de uma das gravações de hardware acione uma interrupção, que transfere o controle para o BIOS.
Responder3
Existem três áreas principais onde 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 somente o BIOS conhece, como o tempo de uso do BIOS, a ordem de inicialização, o perfil de segurança do usuário atual, as informações sobre a placa-mãe, DIMMs, etc.
O segundo é o Modo de Gerenciamento do Sistema, que é uma seção oculta da memória (SMRAM) acessada por uma interrupção de alta prioridade (SMM). Muitos BIOS usam isso para implementar recursos OEM de alta segurança ou para implementar soluções alternativas de hardware.
O terceiro é ACPI. ACPI fornece configuração, gerenciamento de energia e dados e códigos de hardware usados 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 se comunicar com a bateria que não é coberta por um padrão.
Tim
Responder4
Além do que foi observado acima, a Intel está começando a caminhar para o outro lado e a construir mais, fornecendo acesso fora de banda ao hardware viaTecnologia de Gestão Ativaintegrado no BIOS e na placa-mãe que pode ser controlado independentemente do sistema operacional. Com essas placas você pode realmente fazer bastante. Se você o considera embutido ou um segundo sistema operacional é outra coisa, mas como ele tem hardware integrado e componentes na BIOS, continuo com o embutido.