Un nivel de ejecución es un modo de operación en los sistemas operativos de las computadoras que implementa la inicialización al estilo Unix System V. Convencionalmente, existen siete niveles de ejecución, numerados del cero al seis. S se utiliza a veces como sinónimo de uno de los niveles. Solo 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. Normalmente se asignan diferentes niveles de ejecución (no necesariamente en un orden particular) a los estados del sistema de modo de usuario único , modo multiusuario sin servicios de red iniciados, modo multiusuario con servicios de red iniciados, apagado del sistema y 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 puede ser una configuración de interfaz gráfica de usuario 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 habitual, cuando un equipo entra en el nivel de ejecución cero, se apaga y, cuando entra en el nivel de ejecución seis, se reinicia. Los niveles de ejecución intermedios (1 a 5) difieren en cuanto a 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 inferiores son útiles para el mantenimiento o las reparaciones de emergencia, ya que normalmente 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 de sistemas.
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 de systemd en la mayoría de las distribuciones principales.
Aunque, a partir de 2016, systemd [actualizar]se utiliza de forma predeterminada en la mayoría de las principales distribuciones de Linux , los niveles de ejecución aún se pueden utilizar a través de los medios proporcionados por el proyecto sysvinit . Una vez que se ha iniciado el núcleo 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 núcleo , el sistema intentará ingresar (iniciar) el nivel de ejecución predeterminado.
Los sistemas que cumplen con la Base Estándar Linux (LSB) no necesitan proporcionar los niveles de ejecución exactos que se dan aquí ni darles los significados que se describen aquí, 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; los niveles de ejecución 2, 3 y 5 están configurados de manera 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 niveles de ejecución de System V R4 (SVR4), con niveles de ejecución de 0 a 9 disponibles, así como de a a c (o h). 0 y 1 están reservados, 2 es el modo multiusuario normal predeterminado y los niveles de ejecución de 3 a 9 pueden ser definidos por el administrador. 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 niveles de ejecución verdaderos, pero se utilizan para indicar 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 utiliza la consola del sistema como terminal.