O sistema operacional modifica o BIOS de alguma forma?

4

Eu estou lendo o livro: Como funcionam os computadores: a evolução da tecnologia e no capítulo 4 o autor diz :

The operating system does not work alone. It depends not only on the cooperation of other programs, but also on meshing smoothly with the BIOS and software drivers. The BIOS-or basic input/output system is made of code contained on chips in a Pc. It acts as the intermediary among the hardware, processor, and operating systems. Device drivers are like a specialized BIOS. Drivers translate commands from the operating system and BIOS into instructions for a specific piece of hardware, such as a printer, scanner, or DVD-ROM drive. When some parts of the operating system are loaded from disk, they are added to the BIOS and then joined by device drivers, and all of them carry out routine hardware functions. The operating system is really composed of all three of these components, plus scores of other programs, common code, and data files.

A parte importante aqui é:

When some parts of the operating system are loaded from disk, they are added to the BIOS and then joined by device drivers

O que é adicionado ao BIOS? Eu não sabia BIOS foi modificado pelo sistema operacional? Ou estou entendendo isso errado?

    
por Koray Tugay 02.03.2015 / 19:58

1 resposta

3

Primeiro, entenda que o hardware x86 tem uma Tabela do Descritor de Interrupções que reside na RAM. Na CPU 8086 original isso foi corrigido no local de memória 0, o primeiro local da RAM, mas pode ser movido em CPUs posteriores e modernas. Inicialmente, o BIOS configura isso no local de memória 0.

O IDT é uma lista de ponteiros de 32 bits para rotinas em outro lugar na memória (que pode ser ROM ou RAM), numeradas de 0x00 a 0xFF.

Atualmente, os primeiros 32 deles são reservados para uso da própria CPU. Uma falha de proteção geral, por exemplo, fará com que a rotina apontada pelo vetor 0x0D seja chamada.

Qualquer rotina apontada em um desses vetores pode ser "chamada" com a instrução de interrupção de software INT . Portanto, INT 0x0D chamará a mesma rotina que seria chamada se uma falha de proteção geral fosse chamada.

O BIOS da era DOS usa muitos deles para apresentar uma interface padrão para chamadas de BIOS . Alguns dos que a BIOS usa tradicionalmente se sobrepõem ao que a CPU usa.

O próprio DOS também fez uso de uma única interrupção, 0x21 , para permitir aos programas uma forma padrão de chamar Funções do DOS .

Agora, uma interrupção bem conhecida da BIOS é 0x13 , que permite ler ou gravar um setor em um dispositivo de disco .

Durante o processo de inicialização, a área ROM da memória é escaneada e o código de inicialização de qualquer ROM é chamado. Os dispositivos ISA e PCI podem ter uma ROM que apareça e que será chamada durante a inicialização. A ROM de dispositivos pode modificar vetores, estendendo ou substituindo a funcionalidade do BIOS. As placas RAID projetadas para trabalhar com o DOS e versões 9x do Windows podem fazer isso.

Uma rotina da BIOS inicializa a exibição de vídeo e permite a configuração do modo de exibição. É muito comum que as placas de vídeo tenham uma ROM que substitua essa interrupção para permitir que a placa gráfica seja usada durante o processo de inicialização da BIOS (e no DOS, se você realmente quiser).

Não há nada que pare um programa depois de tudo que é inicializado a partir da modificação desses vetores para aumentar ou substituir a funcionalidade do BIOS. No passado, quando certos BIOS não conseguiam acessar os setores do disco rígido em uma barreira de 8 GB, alguns fornecedores forneciam um disco de inicialização que fornecia um utilitário que conectava o Int 0x13, ignorando a limitação do BIOS.

Então tudo isso era muito comum quando o DOS era o sistema operacional predominante. Atualmente, o BIOS, se ainda estiver disponível (UEFI é seu sucessor), é muito usado apenas para inicialização e sua tela de inicialização, e o sistema operacional acessa o hardware diretamente - a exceção é relacionado ao gerenciamento de energia.

    
por 02.03.2015 / 20:19