Después de que arranque y el núcleo monte el sistema de ficheros de root, el primer programa que ejecuta el sistema es init. Este programa es el encargado de lanzar los scripts de inicialización del sistema y de modificar el sistema operativo de su estado inicial de arranque al estado estándar multiusuario. También define los intérpretes de órdenes login: de todos los dispositivos tty del sistema y especifica otras características del arranque y apagado.
Tras el arranque, init permanece latente en segundo plano, ``monitoreando'' y si fuera necesario alterando la ejecución del sistema. Hay muchos detalles que deben comentarse del programa init. Todas las tareas que realiza se definen en el fichero /etc/inittab. Un ejemplo de dicho fichero se muestra a continuación.
Modificar el fichero /etc/inittab de forma incorrecta, puede impedirle registrarse en el sistema. Por ello, cuando se modifique dicho fichero, hay que guardar una copia del fichero original, además de tener a mano el disquete de inicio, para el caso en que se cometiera algún error.
Al iniciar, este /etc/inittab lanza seis consolas virtuales, un prompt de ingreso para el módem en /dev/ttys0 y un prompt de ingreso para una terminal de caracteres conectada a través de la línea serie RS-232 a /dev/ttyS1.
Brevemente podríamos decir que el programa init pasa a través de una serie de niveles de ejecución, que corresponden a varios estados del sistema. Al nivel de ejecución 1 se entra inmediatamente después de iniciar el sistema, los niveles de ejecución 2 y 3 son los modos de operación del sistema normal y multiusuario respectivamente, el nivel de ejecución 4 lanza el sistema X Window a través del X display manager xdm y el nivel de ejecución 6 reinicia el sistema. Los niveles de ejecución asociados a cada orden, son el segundo término de cada línea del fichero /etc/inittab.
Por ejemplo, la línea:
mantendrá un prompt de ingreso en una terminal serie para los niveles
de ejecución 1-5. El ``s2'' antes de los primeros dos puntos es
un identificador simbólico que usa internamente init. respawn es una clave de init que se usa a veces junto con las
terminales serie. Si tras un cierto período de tiempo, el programa
agetty, que genera los prompt de ingreso en las terminales, no
recibe señal alguna en la terminal, termina su ejecución. ``respawn'' hace que init vuelva a ejecutar agetty,
asegurando que haya siempre un prompt de ingreso en la terminal,
independientemente de que haya algún otro ingreso. El resto de
parámetros de pasan directamente a agetty y le especifican como
debe generar la shell de ingreso, la capacidad de transferencia de
datos de la línea, el dispositivo serie y el tipo de terminal, como se
define en /etc/termcap o /etc/terminfo.
El programa /sbin/agetty maneja muchos detalles acerca de la E/S por terminal en el sistema. Hay varias verisones diferentes que se unan regilarmente en sistemas GNU/Linux. Se incluyen mgetty, psgetty y getty.
En el caso de la línea de /etc/inittab
que permite a los usuarios ingresar usando un módem canectado a una línea serie /dev/ttyS0, los parámetros de /sbin/agetty ``-m60'' permiten al sistema ir paso a paso por todas las velocidades del ódem que un usuario llamando al sistema puede usar, y apagar /sbin/getty si no hay ninguna conezión en 60 segundos. Esto se llama negociar una conexión. Las velocidades de modem soportadas se enumeran el la línea de comandos también, así como la línea serie a usar y el tipo de terminal. Desde luego, ambos módems deben soportar el flujo de datos que se negocie finalmente por ambas máquinas.
Se han pasado por alto muchos detalles importantes en esta sección. Las tareas de /etc/inittab ocuparían un libro completo. Para más información, puede consultarse las páginas del manual de init y agetty y los ``HOWTO'' del Proyecto de Documentación de Linux, disponibles en los lugares que se presentan en el apéndice A.