... el cargador del sector de arranque carga los 512 bytes de los datos de un disquete que reside en la dirección de memoria 0x7C00 (si no me equivoco) en la RAM
...
Dado que la máquina se está iniciando, la RAM debe estar vacía, ¿entonces el gestor de arranque se cargó en 0x0000 de la RAM?
Nº 0000:7C00
se refiere a una dirección RAM . RAM significa "Memoria de acceso aleatorio", significa que se puede acceder directamente a cada ubicación en la memoria. No hay nada como "RAM vacía". También puede consultar la función de interrupción INT13 "Leer sectores de la unidad":uno de los parámetros (pasado en ES:BX
) debe apuntar a la dirección de destino donde se almacenará el contenido del sector. Por lo tanto, lo que hace el BIOS es cargar 512 bytes de la unidad y almacenarlos en 0000:7C00
a 0000:7DFF
y luego salta a 0000:7C00
para ejecutar el código del cargador de arranque principal.
¿Algún artículo/libro que deba leer para familiarizarme con Kernels, etc.?
Este Wiki es muy útil:http://wiki.osdev.org/Main_Page. Para conocer el proceso de arranque, consulte http://wiki.osdev.org/Boot_Sequence.