SATA (modo AHCI) - Por que um sistema operacional precisa de um driver AHCI, enquanto o BIOS pode inicializar a partir do HDD?

2

Qual é a relação entre AHCI e SATA? Por que um sistema operacional não pode operar um controlador SATA sem um driver AHCI, enquanto o BIOS sabe como inicializar um disco rígido SATA?

Quais são as diferenças entre os controladores SATA, para que eles precisem de um driver AHCI específico?

O BIOS tem um "driver" interno para operar e inicializar a partir de um disco rígido SATA (no modo AHCI)?

    
por user4691 18.09.2014 / 13:25

1 resposta

4
Primeiro de tudo, o BIOS inclui um driver para o seu controlador AHCI on-board. E, caso o controlador não esteja on-board, mas em uma placa PCI, a placa fornecerá uma ROM de opção PCI contendo um driver BIOS para o controlador.

Se o seu firmware suportar UEFI, ele (ou a Option ROM) também incluirá um driver UEFI para o controlador.

O mesmo é válido para todos os outros componentes que o seu PC pode inicializar (ou seja, normalmente USB, CD-ROM, rede com fio). Outros componentes geralmente não possuem drivers BIOS / UEFI.

Os sistemas operacionais podem usar os drivers BIOS ou UEFI (por exemplo, DOS ou Windows 95), mas a maioria dos sistemas operacionais modernos tenta evitar o incômodo e contornar as limitações dos drivers BIOS e use seu próprio formato de driver.

Limitações comuns dos drivers do BIOS:

  • geralmente desempenho de leitura ruim e desempenho de gravação ainda pior
  • suportado apenas se apenas o primeiro processador / núcleo estiver ativado
  • funciona apenas no modo de 16 bits (o que implica em tarefa única e memória endereçável de 640 KB)
  • funciona apenas se o gate A20 estiver desmarcado (o que implica em 1MB de memória endereçável)

O que significa que durante a inicialização, os sistemas operacionais modernos terão que alternar repetidamente entre o modo de tarefa única de 16 bits e 32 bits / 64 bits e repetidamente alternar o gate até que tenham lido o kernel do SO e pelo menos o disco driver em memória alta (640K geralmente não é suficiente hoje); em seguida, eles alternarão para o modo multitarefa e continuarão carregando o restante do sistema operacional usando o kernel e o driver de disco agora carregados.

As limitações de UEFI são menos ruins (os drivers UEFI são executados no modo de 64 bits, mas ainda exigem um modo de tarefa única e apenas um núcleo ativado), mas ainda são ruins o suficiente para não conhecer nenhum sistema operacional que tente usar UEFI drivers after boot - e que provavelmente também é a razão pela qual ninguém escreveu um navegador da Web para o UEFI puro (os navegadores da Web são inerentemente multiencadeados e seria difícil criar um navegador da web de thread único com bom desempenho).

    
por 18.09.2014 / 14:53