Arranque y activación del Sistema Operativo


Cuando encendemos un ordenador, este no tiene aún cargado un sistema operativo en memoria. Lo primero que ocurre es un proceso de arranque o bootstrap, cuyo objetivo es inicializar el hardware, localizar el sistema operativo y cederle el control.

Este proceso está cuidadosamente diseñado en etapas para garantizar que, partiendo de un entorno mínimo, el sistema sea capaz de cargar software cada vez más complejo hasta alcanzar el núcleo completo del sistema operativo.


1. Encendido y ejecución del firmware

  • Encendido: al recibir energía, el procesador coloca su contador de programa (PC) en una dirección de memoria predefinida por la arquitectura. En esa dirección se encuentra almacenado código de firmware.
  • Firmware (BIOS o UEFI):
    • En sistemas tradicionales, la BIOS (Basic Input/Output System) era la encargada de ejecutar las rutinas iniciales.
    • En sistemas modernos, la UEFI (Unified Extensible Firmware Interface) sustituye a la BIOS, con más funcionalidades, interfaz gráfica y soporte para discos de gran tamaño.

2. POST (Power-On Self Test)

El firmware ejecuta un conjunto de pruebas llamado POST, que incluye:

  • Verificación del estado de la memoria RAM.
  • Comprobación de la CPU y de los registros básicos.
  • Detección de dispositivos de entrada/salida (teclado, monitor, discos, etc.).

Si algún componente crítico falla, el proceso se detiene y el firmware informa mediante códigos en pantalla o sonidos (pitidos).


3. Búsqueda del dispositivo de arranque

El firmware consulta la configuración (BIOS/UEFI setup) para localizar el dispositivo de arranque: disco duro, SSD, unidad USB, CD/DVD o incluso arranque por red (PXE).

Una vez seleccionado el dispositivo, el firmware busca en él un sector de arranque válido:

  • En BIOS: el MBR (Master Boot Record), que ocupa los primeros 512 bytes del disco.
  • En UEFI: una partición especial llamada ESP (EFI System Partition) que contiene programas de arranque en formato ejecutable EFI.

4. Ejecución del cargador de arranque (Bootloader)

Aquí comienza la segunda fase, ya en software de más alto nivel.

  • El MBR contiene un pequeño código cuya única función es cargar un programa más complejo: el bootloader.
  • Ejemplos de bootloaders:
    • GRUB (GNU GRUB bootloader) en sistemas Linux.
    • LILO (histórico en Linux).
    • Windows Boot Manager en sistemas Windows.

El bootloader tiene dos funciones esenciales:

  1. Localizar el kernel del sistema operativo en el disco.
  2. Cargarlo en memoria y cederle el control.

Además, bootloaders como GRUB permiten mostrar un menú con varios sistemas operativos o versiones del kernel para elegir.


5. Carga del núcleo del sistema operativo

Una vez localizado el kernel, el bootloader:

  • Copia el kernel del sistema operativo desde el almacenamiento a la memoria principal.
  • Inicializa estructuras mínimas como tablas de memoria o punteros a rutinas de interrupción.
  • Transfiere la ejecución al punto de entrada del kernel.

En este momento, el sistema operativo ya comienza a ejecutarse en modo kernel con privilegios completos sobre el hardware.


6. Inicialización del sistema operativo

El kernel realiza múltiples tareas iniciales:

  • Inicialización de controladores: carga drivers para acceder a los dispositivos de E/S detectados.
  • Gestión de memoria: establece la memoria virtual, configura tablas de páginas y zonas de memoria.
  • Planificación de procesos: arranca el primer proceso del sistema (en Linux suele ser init o systemd).
  • Servicios de sistema: lanza demonios o servicios en segundo plano que gestionan red, seguridad y otros.

7. Interfaz con el usuario

Finalmente, el sistema operativo arranca una interfaz de usuario:

  • En entornos de servidor, normalmente una shell de texto.
  • En escritorios modernos, un gestor gráfico de ventanas (GNOME, KDE, Windows Explorer).

A partir de aquí, el usuario puede interactuar con el sistema, lanzar aplicaciones y aprovechar los recursos que el SO gestiona.


Resumen de las fases

  1. Encendido → CPU ejecuta firmware (BIOS/UEFI).
  2. POST → pruebas de hardware.
  3. Selección de dispositivo de arranque.
  4. MBR/UEFI → carga del bootloader.
  5. Bootloader → carga del kernel en memoria.
  6. Kernel → inicializa subsistemas y drivers.
  7. Arranque de procesos de usuario → login / interfaz gráfica.

Conclusión

El proceso de arranque refleja un principio fundamental en informática: ir de lo simple a lo complejo. Se comienza con unas pocas instrucciones grabadas en firmware, que poco a poco cargan software más avanzado hasta llegar al sistema operativo completo. Para un ingeniero en informática, entender este flujo es clave porque en él confluyen la arquitectura del hardware, la organización del software del sistema y las técnicas de gestión de recursos.