stringtranslate.com

en eso

Versión 7 Unix : listado de /etc , que muestra init y rc
Versión 7 Unix: contenido de un script de shell /etc/rc Bourne

En los sistemas operativos de computadora basados ​​en Unix , init (abreviatura de inicialización ) es el primer proceso que se inicia durante el arranque del sistema operativo. Init es un proceso demonio que continúa ejecutándose hasta que se apaga el sistema. Es el antepasado directo o indirecto de todos los demás procesos y adopta automáticamente todos los procesos huérfanos . El kernel inicia init durante el proceso de arranque ; Se producirá un pánico en el kernel si el kernel no puede iniciarlo o si muere por cualquier motivo. A Init normalmente se le asigna el identificador de proceso 1.

En sistemas Unix como System III y System V , el diseño de init se ha diferenciado de la funcionalidad proporcionada por init en Research Unix y sus derivados BSD . Hasta principios de la década de 2010, [1] [ verificación fallida ] la mayoría de las distribuciones de Linux empleaban un inicio tradicional que era algo compatible con System V, mientras que algunas distribuciones como Slackware usan scripts de inicio de estilo BSD y otras, como Gentoo , tienen sus propios scripts de inicio personalizados. versiones.

Desde entonces, se han creado varias implementaciones de inicio adicionales, intentando abordar las limitaciones de diseño en las versiones tradicionales. Estos incluyen launchd , Service Management Facility , systemd , Runit y OpenRC .

Investigación estilo Unix/estilo BSD

Research Unix init ejecuta el script de shell de inicialización ubicado en /etc/rc, [2] luego inicia getty en terminales bajo el control de /etc/ttys. [3] No hay niveles de ejecución; el /etc/rcarchivo determina qué programas se ejecutan mediante init. La ventaja de este sistema es que es sencillo y fácil de editar manualmente. Sin embargo, el nuevo software agregado al sistema puede requerir cambios en los archivos existentes que corren el riesgo de que el sistema no pueda iniciarse.

BSD init era, antes de 4.3BSD, el mismo que el init de Research UNIX; [4] [5] en 4.3BSD , agregó soporte para ejecutar un sistema de ventanas como X en terminales gráficas bajo el control de /etc/ttys. [6] [7] Para eliminar el requisito de editar archivos /etc/rc, las variantes de BSD han admitido durante mucho tiempo un /etc/rc.localarchivo específico del sitio que se ejecuta en un subshell cerca del final de la secuencia de inicio.

Se introdujo un sistema completamente modular con NetBSD 1.5 y se trasladó a FreeBSD 5.0 ​​y sus sucesores. Este sistema ejecuta scripts en el /etc/rc.ddirectorio. A diferencia del orden de los scripts del System V, que se deriva del nombre de archivo de cada script, este sistema utiliza etiquetas de dependencia explícitas colocadas dentro de cada script. [8] El orden en el que se ejecutan los scripts lo determina la utilidad rorder en función de los requisitos establecidos en estas etiquetas.

Estilo SysV

sysv-rc-conf , una utilidad TUI que selecciona qué scripts de inicio estilo SysV se ejecutarán en cada nivel de ejecución

En comparación con sus predecesores, UNIX System III de AT&T introdujo un nuevo estilo de configuración de inicio del sistema, [9] que sobrevivió (con modificaciones) en UNIX System V y por lo tanto se llama "init estilo SysV".

En cualquier momento, un System V en ejecución se encuentra en uno de un número predeterminado de estados, llamados niveles de ejecución . Al menos un nivel de ejecución es el estado operativo normal del sistema; normalmente, otros niveles de ejecución representan el modo de usuario único (utilizado para reparar un sistema defectuoso), el apagado del sistema y varios otros estados. Cambiar de un nivel de ejecución a otro hace que se ejecute un conjunto de scripts por nivel de ejecución, que normalmente montan sistemas de archivos, inician o detienen demonios , inician o detienen el sistema X Window , apagan la máquina, etc.

Niveles de ejecución

Los niveles de ejecución en System V describen ciertos estados de una máquina, caracterizados por los procesos y demonios que se ejecutan en cada uno de ellos. En general, hay siete niveles de ejecución, de los cuales tres se consideran "estándar", ya que son esenciales para el funcionamiento de un sistema:

  1. Apagar
  2. Modo de usuario único (también conocido como S o s )
  3. Reiniciar

Aparte de estos estándares, los sistemas Unix y similares tratan los niveles de ejecución de manera algo diferente. El denominador común, el /etc/inittabarchivo, define lo que hace cada nivel de ejecución configurado en un sistema determinado.

Niveles de ejecución predeterminados

En las distribuciones de Linux que tienen por defecto el nivel de ejecución 5 en la tabla de la derecha, el nivel de ejecución 5 invoca un entorno gráfico multiusuario que ejecuta el sistema X Window , generalmente con un administrador de pantalla como GDM o KDM . Sin embargo, los sistemas operativos Solaris e ilumos normalmente reservan el nivel de ejecución 5 para apagar y apagar automáticamente la máquina.

En la mayoría de los sistemas, todos los usuarios pueden verificar el nivel de ejecución actual con el comando runlevelo who -r. [12] El usuario root normalmente cambia el nivel de ejecución actual ejecutando los comandos telinito init. El /etc/inittabarchivo establece el nivel de ejecución predeterminado con la :initdefault:entrada.

En los sistemas Unix, el cambio del nivel de ejecución se logra iniciando solo los servicios que faltan (ya que cada nivel define solo aquellos que se inician/detienen). [ cita necesaria ] Por ejemplo, cambiar un sistema del nivel de ejecución 3 al 4 podría iniciar solo el servidor X local. Volviendo al nivel de ejecución 3, se detendría nuevamente.

Otras implementaciones

Tradicionalmente, uno de los principales inconvenientes de init es que inicia las tareas en serie, esperando a que cada una termine de cargarse antes de pasar a la siguiente. Cuando los procesos de inicio terminan bloqueados en la entrada/salida (E/S), esto puede provocar grandes retrasos durante el inicio. Acelerar la E/S, por ejemplo mediante el uso de SSD, puede acortar los retrasos, pero no soluciona la causa raíz.

Se han realizado varios esfuerzos para reemplazar los demonios de inicio tradicionales para abordar este y otros problemas de diseño, que incluyen:

En febrero de 2019 , la mayoría de las principales distribuciones de Linux adoptaron systemd . [23]

Ver también

Referencias

  1. ^ "Lennart Poettering sobre el tumultuoso ascendencia de systemd". La nueva pila . 2018-11-08. Archivado desde el original el 8 de noviembre de 2018 . Consultado el 30 de enero de 2024 .
  2. ^ init(8)  -  Manual del programador de Unix versión 7
  3. ^ ttys(5)  -  Manual del programador de Unix versión 7
  4. ^ init(8)  -  Manual del administrador del sistema 4.2BSD
  5. ^ ttys(5)  -  Manual de formatos de archivo 4.2BSD
  6. ^ init(8)  -  Manual del administrador del sistema 4.3BSD
  7. ^ ttys(5)  -  Manual de formatos de archivo 4.3BSD
  8. ^ Andrew Smallshaw (7 de diciembre de 2009). "Scripts de inicio de Unix y Linux, parte 2". Archivado desde el original el 18 de diciembre de 2009 . Consultado el 6 de junio de 2011 .
  9. ^ "inicio(8)". minnie.tuhs.org . Archivado desde el original el 27 de julio de 2021 . Consultado el 12 de septiembre de 2015 .
  10. ^ "Guiones de inicio". Documentación de Gentoo Linux . Gentoo.org. 2014-12-13. Archivado desde el original el 3 de diciembre de 2020 . Consultado el 8 de diciembre de 2020 .
  11. ^ "Ejecutar niveles". Administración de Oracle Solaris: tareas comunes . Oráculo . Archivado desde el original el 10 de abril de 2016 . Consultado el 14 de noviembre de 2017 .
  12. ^ "Páginas de manual de UNIX: nivel de ejecución (8)". Unixhelp.ed.ac.uk. 1997-05-27. Archivado desde el original el 14 de julio de 2014 . Consultado el 12 de julio de 2014 .
  13. ^ "GitHub - davmac314/dinit: monitoreo de servicios / sistema" init "". GitHub . Archivado desde el original el 12 de diciembre de 2021 . Consultado el 12 de diciembre de 2021 .
  14. ^ "Página de inicio del sistema Epoch Init". Archivado desde el original el 2 de agosto de 2014 . Consultado el 31 de julio de 2014 .
  15. ^ "Página principal vacía de Linux". Archivado desde el original el 29 de agosto de 2020 . Consultado el 31 de agosto de 2020 .
  16. ^ "El Pastor - Proyecto GNU". Free Software Foundation, Inc. Archivado desde el original el 12 de febrero de 2016 . Consultado el 16 de enero de 2016 .
  17. ^ "t6: por qué otra suite de supervisión". Archivado desde el original el 13 de septiembre de 2021 . Consultado el 13 de septiembre de 2021 .
  18. ^ "sistema de inicio s6". Archivado desde el original el 13 de septiembre de 2021.
  19. ^ Funciones aceptadas de Fedora 14, 2010-07-13, archivado desde el original el 2022-03-27 , consultado el 2010-07-13
  20. ^ "Fedora difiere systemd a F15". Noticias semanales de Linux. 2010-09-14. Archivado desde el original el 19 de septiembre de 2010 . Consultado el 17 de septiembre de 2010 .
  21. ^ "Implementación". Red Hat Enterprise Linux 6: notas técnicas . Sombrero rojo . Archivado desde el original el 29 de agosto de 2018 . Consultado el 31 de diciembre de 2013 .
  22. ^ Arquitectura de software: documentos de diseño de Chromium OS, archivados desde el original el 9 de abril de 2022 , recuperado 25 de enero 2014
  23. ^ Ver Systemd#Adopción

enlaces externos