¿Cómo saben las computadoras qué sistema operativo arrancar?

¿Cómo saben las computadoras qué sistema operativo arrancar?

Cuando enciendo mi computadora, ¿cuál es el software que selecciona qué sistema operativo iniciar y cómo decide cuando se le presentan múltiples opciones?

Más específicamente, ¿qué pasa si tengo una computadora con múltiples sistemas operativos en el mismo disco? ¿Y qué pasa si tengo discos externos? ¿Busca en cada partición de todos los dispositivos de almacenamiento formatos que reconozca?

Según tengo entendido, cada disco tiene su propio sector de arranque que contiene información sobre en qué partición debe arrancar la computadora. Pero, ¿qué pasa si tengo varios discos conectados y cada disco tiene un sector de arranque diferente? ¿Cuál carga?

Al intentar investigar este tema, me encontré con cierta confusión ya que no todas las tecnologías se comportan igual (por ejemplo, algunas dicen que el indicador de arranque es importante mientras que otros dicen que se ignora). Se agradecería mucho cierta claridad sobre cómo funcionan los diferentes sistemas.

Respuesta1

Lamentablemente, esto se ha vuelto más complejo a medida que las computadoras evolucionaron.

Inicialmente (es decir, las primeras PC) había un orden fijo (que dependía del cableado).

Casi todas las computadoras todavía tienen un orden de arranque predeterminado que puede ser controlado/influido por el BIOS. Las computadoras más nuevas complementan esta funcionalidad con UEFI, que de alguna manera reemplaza al BIOS.

Para el arranque del BIOS existe un orden preferido. El BIOS busca en cada unidad sectores de arranque de arranque e intentará cargarlos, bajando por la lista de opciones hasta que uno arranque.

Para UEFI hay un sistema de archivos en el disco (una pequeña partición gruesa etiquetada como UEFI que contiene un cargador de arranque de primera etapa e instrucciones. En algunos casos, esto se complementa con instrucciones programadas en UEFI (es decir, configuraciones almacenadas en nvram similar al BIOS). )

Una vez que se ha encontrado un cargador de arranque/partición UEFI, un programa se hace cargo del proceso de arranque y esto puede ofrecer la posibilidad de arrancar en diferentes modos o sistemas operativos.

Respuesta2

Como dijeron otros, se ha vuelto un poco complicado, pero según tengo entendido:

Cuando la computadora se enciende por primera vez, lo que importa no son sus discos duros. Hay un software especial en un chip de la placa base que se carga primero y la CPU comienza a ejecutarlo. Esto se conoce como BIOS o UEFI (UEFI es en realidad el sucesor de BIOS).

Este código trabaja un poco al inicializar varias partes del hardware y luego comienza a buscar el siguiente elemento al que pasarle el control. Ahora bien, qué será exactamente eso depende de muchas cosas. Hay muchas opciones posibles: sus discos duros internos, sus discos externos, adaptadores de red, controladores RAID, tarjetas complementarias, etc.

BIOS/UEFI también tiene configuraciones que determinan el orden en el que se verifican estas opciones. Revisará cada uno de ellos en el orden configurado y preguntará: "¿puedes continuar arrancando?" Y el dispositivo dirá "sí" o "no". El primero que diga "yay" continuará. Luego, ese dispositivo le da al BIOS un fragmento de código que se carga en la memoria y la CPU continúa la ejecución con eso.

En el caso particular de un disco duro, el disco en sí no sabe realmente si puede arrancar o no. Entonces, lo que hace el BIOS es leer el primer sector (512 bytes clásicamente) de la unidad y busca unos pocos bytes especiales en una determinada ubicación del sector. Si contienen el valor 55 AA (en hexadecimal), entonces este sector se ejecuta como código. De lo contrario, pasa a comprobar el siguiente disco.

Ahora bien, 512 bytes no es mucho espacio, pero es suficiente para hacer algunas cosas simples. Por ejemplo, el DOS clásico puso un poco de código allí que encontró una partición marcada como "de arranque", luego cargó el primer sector deesopartición y luego ejecuté eso. Y el siguiente sector contenía suficiente código para cargar algunos sectores más y luego comenzar a analizar el sistema de archivos y cargar archivos desde allí, y así sucesivamente.

Pero realmente, no hay nada que diga qué debe hacer este código. Tampoco pudo cargar la partición activa, sino algunos otros sectores del disco donde reside más código. Y ese código podría brindarle un menú que le permita seleccionar entre múltiples particiones de arranque o sistemas operativos o lo que sea.

De todos modos, el código en el primer sector de la unidad se conoce como "gestor de arranque". Existen diferentes gestores de arranque. El mundo Linux hoy en día depende en gran medida de grub, Windows tiene lo suyo, etc. El gestor de arranque realmente vieneantesel sistema operativo, pero sí necesita saber cómo cargar el sistema operativo en la memoria y darle control.

¿Esto lo deja más claro?

Respuesta3

Al iniciar, su placa base alimentará todos (o la mayoría) de los componentes electrónicos conectados a ella. Uno de ellos es su disco duro o SSD, llamado disco del sistema, porque en él se encuentra el sistema operativo principal. A menos que haya configurado su BIOS o (U)EFI para arrancar desde una unidad externa diferente, ya sea USB, FireWire o red, esa es la unidad que se usará primero.

En esta unidad, hay una partición de registro de arranque maestra (para simplificar) que generalmente es de solo lectura (aunque se puede editar mediante el conjunto de comandos bcdedit.exe) y revisará todos los sistemas operativos disponibles en la unidad. Uno ha sido configurado como predeterminado, ya sea por usted o por sí mismo cuando lo instaló, ya sea en fábrica o cuando reinstaló/actualizó su sistema operativo principal.

Windows no permite arrancar desde un USBdisco duro o SSD. Puedes arrancar desde un USBllave, que aloja un controlador USB específico, pero Windows no permite el arranque desde una unidad USB conectada mediante un cable. Los controladores necesarios no se cargan hasta mucho después de que los primeros servicios y procesos de Windows (smss.exe y crss.exe) ya estén cargados, lo que significa que Windows se ha iniciado.

Respuesta4

Hay un software integrado en la computadora, que puedes configurar para indicar qué disco debe ir primero, segundo (si el primero no está disponible), tercero, etc.

Esta solía ser la "bios", almacenada en una eeprom (alimentada por una batería). Pero actualmente se ha vuelto mucho más complejo, incluso un sistema operativo basado en Linux integrado en el hardware (lo que puede hacer que su computadora sea propensa a ataques externos).

Cada disco tiene una tabla de particiones, no necesariamente un sector de arranque.

información relacionada