¿Cómo transfiere el mbr su control al gestor de arranque?

¿Cómo transfiere el mbr su control al gestor de arranque?

Lo que sé es lo siguiente:

Al iniciarse, el BIOS sigue la siguiente secuencia:

1.Autoprueba de encendido (POST)
2.Detecta el BIOS de la tarjeta de video (chip) y ejecuta su código para inicializar el hardware de video.
3. Detectar cualquier BIOS de otro dispositivo e invocar sus funciones de inicialización
4. Mostrar la pantalla de inicio del BIOS
5. Realizar una breve prueba de memoria (identificar cuánta memoria hay en el sistema)
6. Establecer los parámetros de memoria y unidad
7. Configurar Plug & Dispositivos de reproducción (tradicionalmente dispositivos de bus PCI)
8.Asignar recursos (canales DMA e IRQ)
9.Identificar el dispositivo de arranque

Cuando el BIOS identifica el dispositivo de arranque (normalmente uno de varios discos etiquetados como disco de arranque), lee el bloque 0 de ese dispositivo en la ubicación de memoria 0x7c00 y salta allí.

Pero, ¿qué sucede después de esto? Es decir, ¿cómo le da el BIOS el control al gestor de arranque en esta etapa??

Respuesta1

Como se mencionó en la publicación anterior, el BIOS simplemente le da control al gestor de arranque ejecutando una instrucción de salto a 0x7C00.

Un dispositivo que no es de arranque puede tener la instrucción INT 18 (0xCD 0x18) en sus primeros dos bytes (y 55aa en los bytes 511, 512), lo que simplemente haría que el BIOS pasara al siguiente dispositivo en el orden de arranque.

Respuesta2

Como mencionaste 0x7C00, me centraré en el arranque MBR (GPT es un trato diferente).

Como dijiste, una vez que el BIOS determina que un dispositivo es de arranque (es decir, tiene 0x55AA como los dos últimos bytes del primer sector), lee ese primer sector del disco y lo carga en la memoria comenzando en 0x7C00. Una vez que emite la instrucción de salto, la CPU comienza a ejecutar cualquier código que esté allí.

Luego depende del gestor de arranque determinar qué cargar y ejecutar a continuación. El código que carga y salta a la siguiente etapa tiene que caber en los 510 bytes restantes en ese primer sector, menos en realidad, ya que los discos duros también tienen la tabla de particiones allí.

Otras lecturas:Secuencia de inicio,Implementando su propio gestor de arranque

información relacionada