SATA (modo AHCI): ¿por qué un sistema operativo necesita un controlador AHCI, mientras que el BIOS puede arrancar desde el disco duro?

2

¿Cuál es la relación entre AHCI y SATA? ¿Cómo es que un sistema operativo no puede operar un controlador SATA sin un controlador AHCI, mientras que el BIOS sabe cómo arrancar un disco duro SATA?

¿Cuál es la diferencia entre los controladores SATA para que necesiten un controlador AHCI específico?

¿El BIOS tiene un "controlador" dentro para operar y arrancar desde un HDD SATA (en modo AHCI)?

usuario4691
fuente
Primero, un controlador SATA puede ejecutarse en el antiguo modo ATA, utilizando un controlador genérico, o en modo AHCI, utilizando unidades mejoradas. En segundo lugar, el BIOS, debido a que es "parte" de la placa base, sabe que el hardware de su sistema admitirá un controlador de modo AHCI. En tercer lugar, el sistema operativo se puede configurar para ejecutar un controlador ATA O un controlador AHCI, pero no ambos a la vez. Debido a que el instalador de Windows no tiene el mismo conocimiento profundo de su hardware, el controlador predeterminado funcionará en la mayoría de los sistemas: el controlador ATA. Debe habilitar AHCI manualmente e instalar el controlador para usar AHCI.
Frank Thomas
La mayoría de los sistemas operativos actuales tienen controladores AHCI integrados. ¿Cuál es exactamente su pregunta? Las diferencias dependen de las características de los controladores, puede descubrir esas características comparando los diferentes controladores.
Ramhound
1
Tenga en cuenta que un BIOS no es un núcleo de sistema operativo tradicional, por lo que no utiliza "controladores" conectables como lo hace un sistema operativo. todas sus operaciones están escritas en su eprom. Es cierto que algunos de los shells EFI tienen algunas características de usuario sorprendentes (¿pero quién quiere navegar por la web desde sus biografías?), Pero sigue siendo un tipo de animal muy diferente.
Frank Thomas

Respuestas:

4

En primer lugar, el BIOS incluye un controlador para su controlador AHCI integrado. Y en caso de que el controlador no esté integrado, sino en una tarjeta PCI, la tarjeta proporcionará una ROM de opción PCI que contiene un controlador de BIOS para el controlador.

Si su firmware es compatible con UEFI, (o la ROM de opción) también incluirá un controlador UEFI para el controlador.

Lo mismo es cierto para todos los demás componentes de su PC pueden arrancar (es decir, usualmente USB, CD-ROM, red cableada). Otros componentes generalmente no tienen controladores BIOS / UEFI en absoluto.

Los sistemas operativos pueden usar los controladores BIOS o UEFI (por ejemplo, DOS o Windows 95), pero la mayoría de los sistemas operativos modernos intentan evitar la molestia y evitar las limitaciones de los controladores BIOS y, en su lugar, usan su propio formato de controlador.

Limitaciones comunes de los controladores de BIOS:

  • generalmente pobre rendimiento de lectura e incluso peor rendimiento de escritura
  • solo es compatible si solo se activa el primer procesador / núcleo
  • solo funciona en modo de 16 bits (lo que implica una tarea única y una memoria direccionable de 640 KB)
  • solo funciona si la puerta A20 está despejada (lo que implica 1 MB de memoria direccionable)

Lo que significa que durante el arranque, los sistemas operativos modernos tendrán que cambiar repetidamente entre el modo de tarea única de 16 bits y 32 bits / 64 bits y alternar repetidamente la puerta A20 hasta que hayan leído el núcleo del sistema operativo y al menos el controlador del disco en alto memoria (640K generalmente no es suficiente hoy); luego cambiarán al modo multitarea y continuarán cargando el resto del sistema operativo utilizando el kernel y el controlador de disco ahora cargados.

Las limitaciones de UEFI son menos malas (los controladores UEFI se ejecutan en modo de 64 bits, pero aún requieren el modo de tarea única y solo un núcleo activado), pero siguen siendo lo suficientemente malos como para que no conozca ningún sistema operativo que intente usar controladores UEFI después del arranque - y esa es probablemente la razón por la que nadie escribió un navegador web para UEFI puro (los navegadores web son inherentemente multiproceso y sería difícil escribir un navegador web de un solo subproceso con buen rendimiento).

mihi
fuente