El proceso de arranque de Linux: 6 pasos descritos en detalle

Un sistema operativo (SO) es el software de bajo nivel que administra recursos, controla periféricos y proporciona servicios básicos a otro software. En Linux, hay 6 etapas distintas en el proceso de arranque típico.

1. BIOS

BIOS son las siglas de Basic Input / Output System. En términos simples, el BIOS carga y ejecuta el cargador de arranque Master Boot Record (MBR).

Cuando enciende su computadora por primera vez, el BIOS primero realiza algunas verificaciones de integridad del HDD o SSD.

Luego, el BIOS busca, carga y ejecuta el programa del cargador de arranque, que se puede encontrar en el Registro de arranque maestro (MBR). El MBR a veces se encuentra en una memoria USB o CD-ROM, como con una instalación en vivo de Linux.

Una vez que se detecta el programa del cargador de arranque, se carga en la memoria y el BIOS le da el control del sistema.

2. MBR

MBR significa Master Boot Record, y es responsable de cargar y ejecutar el cargador de arranque GRUB.

El MBR se encuentra en el primer sector del disco de arranque, que suele ser /dev/hda, o /dev/sda, según su hardware. El MBR también contiene información sobre GRUB o LILO en sistemas muy antiguos.

3. GRUB

A veces llamado GNU GRUB, que es la abreviatura de GNU GR y cargador de arranque unificado, es el cargador de arranque típico para la mayoría de los sistemas Linux modernos.

La pantalla de bienvenida de GRUB es a menudo lo primero que ve cuando inicia su computadora. Tiene un menú sencillo donde puedes seleccionar algunas opciones. Si tiene varias imágenes del kernel instaladas, puede usar su teclado para seleccionar la que desea que arranque su sistema. De forma predeterminada, se selecciona la última imagen del kernel.

La pantalla de bienvenida esperará unos segundos para que seleccione una opción. Si no lo hace, cargará la imagen predeterminada del kernel.

En muchos sistemas, puede encontrar el archivo de configuración de GRUB en /boot/grub/grub.confo /etc/grub.conf. Aquí hay un ejemplo de un grub.confarchivo simple :

#boot=/dev/sda default=0 timeout=5 splashimage=(hd0,0)/boot/grub/splash.xpm.gz hiddenmenu title CentOS (2.6.18-194.el5PAE) root (hd0,0) kernel /boot/vmlinuz-2.6.18-194.el5PAE ro root=LABEL=/ initrd /boot/initrd-2.6.18-194.el5PAE.img

4. Kernel

El kernel a menudo se conoce como el núcleo de cualquier sistema operativo, incluido Linux. Tiene control total sobre todo en su sistema.

En esta etapa del proceso de arranque, el kernel que GRUB seleccionó primero monta el sistema de archivos raíz que se especifica en el grub.confarchivo. Luego ejecuta el /sbin/initprograma, que es siempre el primer programa que se ejecuta. Puede confirmar esto con su ID de proceso (PID), que siempre debe ser 1.

Luego, el kernel establece un sistema de archivos raíz temporal utilizando el Disco RAM inicial (initrd) hasta que se monta el sistema de archivos real.

5. Init

En este punto, su sistema ejecuta programas de nivel de ejecución. En un momento dado, buscaría un archivo de inicio, que normalmente se encuentra en /etc/inittabpara decidir el nivel de ejecución de Linux.

Los sistemas Linux modernos usan systemmd para elegir un nivel de ejecución. Según TecMint, estos son los niveles de ejecución disponibles:

El nivel de ejecución 0 coincide con poweroff.target (y runlevel0.target es un enlace simbólico a poweroff.target ).

El nivel de ejecución 1 coincide con rescue.target (y runlevel1.target es un enlace simbólico a rescue.target ).

El nivel de ejecución 3 es emulado por multi-user.target (y runlevel3.target es un enlace simbólico a multi-user.target ).

El nivel de ejecución 5 es emulado por graphical.target (y runlevel5.target es un enlace simbólico a graphical.target ).

El nivel de ejecución 6 es emulado por reboot.target (y runlevel6.target es un enlace simbólico para reboot.target ).

La emergencia se corresponde con el objetivo de emergencia .

systemmd comenzará a ejecutar programas de nivel de ejecución.

6. Programas de nivel de ejecución

Dependiendo de la distribución de Linux que haya instalado, es posible que pueda ver diferentes servicios comenzando. Por ejemplo, puede atrapar starting sendmail …. OK.

Estos se conocen como programas de nivel de ejecución y se ejecutan desde diferentes directorios según su nivel de ejecución. Cada uno de los 6 niveles de ejecución descritos anteriormente tiene su propio directorio:

  • Nivel de ejecución 0 - /etc/rc0.d/
  • Nivel de ejecución 1 - /etc/rc1.d/
  • Nivel de ejecución 2 - /etc/rc2.d/
  • Nivel de ejecución 3 - /etc/rc3.d/
  • Nivel de ejecución 4 - /etc/rc4.d/
  • Nivel de ejecución 5 - /etc/rc5.d/
  • Nivel de ejecución 6 - /etc/rc6.d/

Tenga en cuenta que la ubicación exacta de estos directorios varía de una distribución a otra.

Si busca en los diferentes directorios de nivel de ejecución, encontrará programas que comienzan con una "S" o "K" para iniciar y matar, respectivamente. Los programas de inicio se ejecutan durante el inicio del sistema y los eliminan durante el apagado.

Eso es todo lo que necesita saber sobre el proceso de arranque de Linux. Ahora sal y enorgullece a Tux.