¿Qué hace init en Ubuntu?

13

Ya sé que inites el programa mágico que se necesita para arrancar su computadora y administrar los niveles de ejecución, pero ¿cuál es su verdadero propósito?

¿Por qué necesitamos initen primer lugar? ¿Por qué el gestor de arranque no puede decirle a Upstart qué programas ejecutar y no ejecutar?

Esta pregunta en respuesta (tardía) a mi ¿Qué pasaría si initse eliminara? pregunta.

Kaz Wolfe
fuente
initEs la madre de todos los procesos.
ctrl-alt-delor
Es más fácil escribir la funcionalidad de initun proceso de usuario que escribirla en el núcleo. Si se escribiera en el núcleo, alguien agregaría un proceso starterque se ejecutaría en el espacio del usuario, que es más flexible. Duplicando así la funcionalidad. Por lo tanto, es mejor mantener la parte del núcleo lo más simple posible.
ctrl-alt-delor
man init > "What does init on Ubuntu do"y léelo en la carpeta de inicio
αғsнιη

Respuestas:

6

Consulte el manual de initlos sistemas Unix .

Esta es una publicación de la entrada de Wikipedia sobreinit :

En los sistemas operativos informáticos basados ​​en Unix, init (abreviatura de inicialización) es el primer proceso iniciado durante el arranque del sistema informático. Init es un proceso demonio que continúa ejecutándose hasta que se apaga el sistema. Es el ancestro directo o indirecto de todos los demás procesos y adopta automáticamente todos los procesos huérfanos. Init es iniciado por el kernel usando un nombre de archivo codificado, y si el kernel no puede iniciarlo, se producirá un pánico en el kernel. A Init se le suele asignar el identificador de proceso 1.

El diseño de init ha divergido en sistemas Unix como el Sistema III y el Sistema V, de la funcionalidad proporcionada por init en Research Unix y sus derivados BSD. El uso en la mayoría de las distribuciones de Linux es algo compatible con el Sistema V, pero algunas distribuciones, como Slackware, usan un estilo BSD y otras, como Gentoo, tienen su propia versión personalizada.

Se han escrito varias implementaciones de init de reemplazo con el intento de abordar las limitaciones de diseño en las versiones estándar. Estos incluyen launchd, Service Management Facility, systemd y Upstart, este último utilizado por Ubuntu y algunas otras distribuciones de Linux.

Espero que esto ayude a explicártelo; Es mucha lectura.

Mark Kirby
fuente
3

upstarty systemdson initsistemas. Por convención (y quizás otras restricciones), el programa todavía se llama init, independientemente de si systemdo upstarto alguna otra cosa que está en juego. No dejes que el nombre del proceso te engañe. PID1 ya no es SysV init. No ha estado en bastante tiempo en Ubuntu.

muru
fuente