Tabla de contenidos
Resumen
El arranque e inicio de un sistema UNIX provoca un hormigueo incluso al administrador de sistemas más experimentado. Este capítulo es una breve introducción al concepto de arranque de SUSE LINUX. La implementación actual de la iniciación del sistema utiliza la especificación LSB versión 1.3.x (véase el apartado 11.1.1, “Linux Standard Base (LSB)”.
Con las lapidarias palabras Uncompressing Linux... el kernel toma las riendas de todo el hardware del sistema; comprueba y fija la consola — más exactamente el registro de la BIOS de la tarjeta gráfica y el formato de salida de la pantalla —, para después leer los valores predeterminados de la BIOS e iniciar las interfaces elementales de la placa base. En los próximos pasos los distintos controladores — que forman parte del kernel — “prueban” el hardware presente para iniciarlo en caso necesario. Después del “chequeo de la partición” y la carga del Root-Filesystem, el kernel ejecuta el init, el cual realiza el auténtico arranque del sistema con sus múltiples programas auxiliares y sus configuraciones El kernel sigue gestionando el sistema completo, el tiempo de cálculo de los programas y los accesos al hardware.
El programa init es el proceso encargado de iniciar correctamente el sistema, por lo que puede decirse que todos los procesos del sistema son “hijos” de init.
Dentro de todos los programas, init tiene una jerarquía especial: init es ejecutado directamente por el kernel y por lo tanto es inmune a la señal 9 con la cual todos los procesos pueden ser “interrumpidos”. Los procesos siguientes son ejecutados directamente por init o por uno de sus procesos subordinados.
init se configura de forma centralizada a través del archivo /etc/inittab; aquí se definen los llamados niveles de ejecución (runlevel) (se comenta con más detalle en el apartado 12.2, “Los niveles de ejecución — runlevels”) y se determina qué servicios y daemons deben estar disponibles en los diferentes niveles. Dependiendo de la escritura en /etc/inittab, init ejecuta diferentes scripts que por razones de organización se reunen en el directorio /etc/init.d.
Así, todo el proceso de arranque — y naturalmente la secuencia de apagado — es controlado por el proceso init; en este sentido se puede considerar al kernel prácticamente como “proceso en segundo plano”, el cual tiene como objetivo gestionar los procesos arrancados, dedicarles tiempo de cálculo y posibilitar y controlar el acceso al hardware.