¿Alguna vez ha sentido curiosidad por las diferentes etapas de Linux, un sistema operativo de código abierto? Conocer todo el proceso de arranque puede ayudarlo a solucionar problemas, especialmente si es el administrador.
¿Qué sucede detrás de escena cuando enciende su dispositivo? Siga leyendo para averiguarlo.
BIOS
El sistema básico de entrada/salida (BIOS) es una pieza de firmware de bajo nivel almacenada en un pequeño chip de memoria en la placa base de su computadora. Este firmware ayuda en el proceso de inicio y administra el flujo de datos entre su máquina y otros dispositivos conectados, como un mouse, una impresora y un adaptador de video.
La función principal del BIOS, que se muestra arriba, es ejecutar la autoprueba de encendido (POST). Esta prueba verifica la operatividad del hardware del sistema y encuentra el sector de arranque, que contiene el software necesario para el resto del proceso. Si la POST tiene éxito, el BIOS cargará el siguiente paso, el cargador de arranque de la etapa uno, en la RAM del sistema.
Si la POST no tiene éxito, el BIOS devolverá un código que puede usar para solucionar problemas.
Cargador de arranque de etapa uno
La primera etapa del cargador de arranque, llamada Registro de arranque maestro (MBR) o Tabla de particiones guiadas (GPT), está diseñada para poner el programa en línea.
El MBR es una pieza de software simple sin comprensión integrada de los sistemas de archivos. Como resultado, siempre deberá almacenar el cargador de arranque de la etapa dos entre el MBR y la primera partición en el disco duro.
Una vez que el MBR detecta el cargador de arranque de la etapa dos, entrega el control.
Cargador de arranque de segunda etapa
El trabajo del cargador de arranque de la etapa dos es encontrar el kernel y cargarlo en la memoria.
La mayoría de las divisiones de Linux usarán uno de los tres cargadores de arranque diferentes: GRUB, GRUB2 o LIL. Lo más probable es que vea GRUB2, que se muestra a continuación, ya que es el más nuevo.
Una vez que el gestor de arranque ha encontrado un núcleo y lo ha cargado en la RAM, pasa el control. También envía una imagen del sistema de archivos de su dispositivo que el kernel puede usar para encontrar módulos.
Núcleo
Debido a que todos los núcleos existen en un formato comprimido para ahorrar espacio en el disco duro, lo primero que hará una vez que se le dé el control es autoextraerse. Luego montará la versión de imagen del sistema de archivos que recibió del cargador de arranque.
El núcleo detectará el hardware del sistema y cambiará la imagen al archivo raíz en el disco.
init (sistemad)
A continuación, el kernel iniciará el sistema de inicialización (init), el primer proceso que genera todos los procesos necesarios para el proceso de arranque. En la mayoría de los sistemas, será systemd.
La función principal de Systemd es iniciar todos los demonios (procesos y servicios en segundo plano) necesarios para ejecutar el sistema. Estos servicios continuarán ejecutándose después de la inicialización y administrarán los procesos esenciales del sistema, como registrar varios mensajes del sistema, realizar un seguimiento de los dispositivos y garantizar que el sistema de archivos esté sincronizado con la memoria del sistema.
Si tiene curiosidad acerca de qué servicios está ejecutando systemd, ejecute el systemctl
el comando por sí mismo devolverá una lista completa.
También puede usar systemd para iniciar otros servicios en el arranque usando una combinación del comando systemctl y el servicio que desea iniciar. Por ejemplo, si desea que el sistema verifique el estado del NFS, puede escribir systemctl status nfs-server.service
. Tú también puedes start
, stop
, enable
o disable
un servicio con una combinación de systemctl y uno de esos comandos.
nivel de ejecución
El nivel de ejecución es un estado de INIT y su sistema define qué servicios se están ejecutando. El kernel estándar de Linux admite siete niveles de ejecución diferentes:
- 0: Sistema detenido, listo para ser apagado
- 1: Modo de usuario único
- 2: Modo de usuario múltiple, sin sistema de archivos de red
- 3: Modo de usuario múltiple utilizando la interfaz de vida de comandos en lugar de la interfaz gráfica de usuario
- 4: Usuario definido
- 5: Modo de usuario múltiple, utilizando la interfaz gráfica de usuario en la que la mayoría de los sistemas Linux se iniciarán de manera predeterminada
- 6: Reiniciar
Si necesita cambiar el nivel de ejecución por cualquier motivo, INIT será responsable de modificarlo utilizando el telinit
comando, que se muestra arriba.
Desglosando el proceso de arranque
Este desglose es simplemente una descripción general del proceso de arranque de Linux y omite algunos de los detalles más finos. Sin embargo, debería brindarle la información que necesita para solucionar cualquier problema que pueda enfrentar.