![¿Cómo funcionan los sistemas operativos de arranque múltiple?](https://rvso.com/image/1476419/%C2%BFC%C3%B3mo%20funcionan%20los%20sistemas%20operativos%20de%20arranque%20m%C3%BAltiple%3F.png)
Leí que la computadora carga un sistema operativo buscando en los primeros 512 KB de cada dispositivo conectado. Si ese espacio de memoria actúa como un sector de arranque, comienza a cargar el espacio de memoria posterior.
Según este artículo:https://www.gnu.org/software/grub/manual/multiboot/multiboot.html
Varios sistemas operativos existentes en el mismo disco duro realizan un "encadenamiento". Ahora, si todos están en el mismo disco duro, ¿cómo sabe la máquina después de cuántos saltos encontrará otro sector de arranque?
¿Y qué está encadenando?
Respuesta1
Leí que la computadora carga un sistema operativo buscando en los primeros 512 KB de cada dispositivo conectado.
El BIOS de la PC hace esto, y no necesariamente llega a todos los dispositivos conectados, solo a aquellos que sabe leer y que están configurados para leer desde la configuración.
Las PC con el estándar UEFI más nuevo pueden cargar un archivo directamente desde una partición EFI en un disco duro. Tradicionalmente, el BIOS no comprende sistemas de archivos como NTFS o FAT, pero UEFI es un poco más inteligente y puede leer archivos de un dispositivo.
En el caso de la BIOS, lo que se carga nunca es un sistema operativo completo sino un pequeño programa que es ungestor de arranque de primera etapa. Este gestor de arranque de primera etapa puede cargar un sistema operativo completo, pero en realidad sólo en el caso de DOS u otro sistema operativo muy simple.
Lo que sucede normalmente es que el gestor de arranque de primera etapa continúa y carga un gestor de arranque de segunda etapa, que puede ser el antiguo NT/XP NTLDR
, el gestor de arranque de Windows Vista+ winload.exe
o GRUB.
Los cargadores de arranque (segunda etapa y superiores) pueden hacer más que el BIOS, por lo que leen un archivo o datos de configuración y pueden presentarle un menú sobre qué sistema operativo iniciar. El gestor de arranque se sobrescribe una vez que se carga el sistema operativo.
Encadenamientoes donde un gestor de arranque llama a otro gestor de arranque. Dado que Windows solo arranca con su propio gestor de arranque, si tiene GRUB instalado, lo que hace GRUB para cargar Windows es seguir adelante y simplemente cargar el gestor de arranque de primera etapa que el BIOS habría cargado de todos modos. Creo que esto se almacena en el primer sector de su partición. Lo mismo se hace con DOS.
No es necesario si GRUB puede iniciar el sistema operativo directamente, lo cual sí puede hacer con cualquier Linux. A Linux no le importa demasiado cómo él mismo y su disco inicial llegan a la memoria, a diferencia de otros sistemas operativos.
UEFI puede cargar un sistema operativo directamente, pero Windows no admite este AFAIK, por lo que generalmente los sistemas UEFI lo cargan winload.exe
y ejecutan directamente.
Otros cargadores de arranque que no son de PC, como U-Boot (algo que su enrutador doméstico puede ejecutar) entienden los sistemas de archivos FAT y Linux y cargan Linux directamente desde ellos, y luego inician el sistema operativo directamente.
Respuesta2
Leí que la computadora carga un sistema operativo buscando en los primeros 512 KB de cada dispositivo conectado.
Casi correcto. El hardware estilo PC lee el primer sector, que tiene 512 bytes. (no kilobytes).
Si ese espacio actúa como un sector de arranque, comienza a cargar el espacio posterior.
También casi correcto. El firmware clásico de la placa base contenía algo llamado BIOS. Cuando la PC se encendía, eso se ejecutaba. Una de sus tareas era entregar el control a otro dispositivo (por ejemplo, a una unidad de disquete).
Las versiones más avanzadas no admitían un solo dispositivo, sino que verificaban varios dispositivos y pasaban al siguiente en caso de que uno no pudiera proporcionar una solución de arranque. Por ejemplo, podría intentar arrancar desde un disquete y, si eso falla, intentar arrancar desde un CD, y si falla, intentar arrancar desde el primer disco duro. (dóndeprimeroTambién es interesante si tienes varios discos).
La mayoría de las veces lee el primer sector de un disco duro. Y un disco duro normalmente tenía un esquema de partición (MBR para PC compatible con IBM) y algún código de arranque. Luego seguiría una cadena de cargadores.
Por ejemplo, el firmware cargaría un único sector de arranque e iniciaría el código dentro.
El código leído desde ese sector entendería más sobre el disco y cargaría un programa más grande. (repita si es necesario con más etapas).
Varios sistemas operativos existentes en el mismo disco duro realizan un "encadenamiento".
El sistema operativo no realiza encadenamiento. Pero si una de sus últimas etapas es un programa de cargador de arranque avanzado (por ejemplo, grub), entonces puede solicitar la entrada del usuario y, dependiendo de eso, puede continuar de diferentes maneras. Por ejemplo, podría cargar un kernel de Linux y podría cargar e iniciar NTloader.