Un nivel de ejecución es un modo de operación en los sistemas operativos de computadora que implementa la inicialización al estilo Unix System V. Convencionalmente, existen siete niveles de ejecución, numerados del cero al seis. A veces se utiliza S como sinónimo de uno de los niveles. Sólo se ejecuta un nivel de ejecución al inicio; los niveles de ejecución no se ejecutan uno tras otro (es decir, solo se ejecuta el nivel de ejecución 2, 3 o 4, no más de ellos secuencialmente o en cualquier otro orden).
Un nivel de ejecución define el estado de la máquina después del arranque. Por lo general, se asignan diferentes niveles de ejecución (no necesariamente en un orden particular) al modo de usuario único , al modo multiusuario sin servicios de red iniciados, al modo multiusuario con servicios de red iniciados, al apagado del sistema y a los estados del sistema de reinicio del sistema . La configuración exacta de estas configuraciones varía entre los sistemas operativos y las distribuciones de Linux . Por ejemplo, el nivel de ejecución 4 podría ser una configuración GUI multiusuario sin servidor en una distribución y nada en otra. Los niveles de ejecución suelen seguir los patrones generales descritos en este artículo; sin embargo, algunas distribuciones emplean ciertas configuraciones específicas.
En la práctica estándar, cuando una computadora ingresa al nivel de ejecución cero, se apaga y cuando ingresa al nivel de ejecución seis, se reinicia. Los niveles de ejecución intermedios (1 a 5) difieren en términos de qué unidades se montan y qué servicios de red se inician. Los niveles de ejecución predeterminados suelen ser 3, 4 o 5. Los niveles de ejecución más bajos son útiles para mantenimiento o reparaciones de emergencia, ya que generalmente no ofrecen ningún servicio de red. Los detalles particulares de la configuración del nivel de ejecución difieren ampliamente entre los sistemas operativos y también entre los administradores del sistema.
En varias distribuciones de Linux, el script tradicional /etc/rc utilizado en la Versión 7 de Unix fue reemplazado primero por niveles de ejecución y luego por estados systemd en la mayoría de las distribuciones principales.
Aunque, a partir de 2016 [actualizar], systemd se usa de forma predeterminada en la mayoría de las principales distribuciones de Linux , los niveles de ejecución aún se pueden usar a través de los medios proporcionados por el proyecto sysvinit . Después de que se haya iniciado el kernel de Linux , el programa /sbin/init lee el archivo /etc/inittab para determinar el comportamiento de cada nivel de ejecución. A menos que el usuario especifique otro valor como parámetro de arranque del kernel , el sistema intentará ingresar (iniciar) el nivel de ejecución predeterminado.
Los sistemas que cumplen con Linux Standard Base (LSB) no necesitan proporcionar los niveles de ejecución exactos que se dan aquí ni darles los significados aquí descritos, y pueden asignar cualquier nivel descrito aquí a un nivel diferente que proporcione la funcionalidad equivalente. [1]
Slackware Linux utiliza el nivel de ejecución 1 para mantenimiento, como en otras distribuciones de Linux; niveles de ejecución 2, 3 y 5 configurados de forma idéntica para una consola (con todos los servicios activos); y el nivel de ejecución 4 agrega el sistema X Window.
A partir de Solaris 10, se utiliza SMF ( Service Management Facility ) en lugar de los niveles de ejecución SVR4. Estos últimos se emulan para preservar la compatibilidad con los scripts de inicio heredados. [6]
AIX no sigue la especificación de nivel de ejecución de System V R4 (SVR4), con niveles de ejecución disponibles del 0 al 9, así como de la a a la c (o h). 0 y 1 están reservados, 2 es el modo multiusuario normal predeterminado y el administrador puede definir libremente los niveles de ejecución del 3 al 9. Los niveles de ejecución de a a c (o h) permiten la ejecución de procesos en ese nivel de ejecución sin matar procesos iniciados en otro.
Los niveles de ejecución S, s, M y m no son verdaderos niveles de ejecución, pero se utilizan para indicarle al comando init que ingrese al modo de mantenimiento. Cuando el sistema ingresa al modo de mantenimiento desde otro nivel de ejecución, solo se usa la consola del sistema como terminal.