sábado, 15 de diciembre de 2018

init VS SystemD: La guerra de los informáticos

Hay una pequeña guerra entre los informáticos, y es entre si se debe utilizar init o SystemD con el gran systemctl. Al fin y al cabo es como todo, para gustos colores, pero siempre hay pequeños detalles que no quedan del todo claros y que es importante tener en mente para no crear confusión.



Pero tenemos que empezar por la base y explicar un poco que es cada cosa y así tener más información para saber por qué decantarnos.

¿Qué es init?

init es un demonio, un daemon que se inicia una vez que el ordenador se inicia y sigue vivo hasta que se apaga el ordenador. init es el primero proceso que se arranca si nos ponemos técnicos, es ese proceso con pid=1.

Pero claro, esto es si todo funciona correctamente. No obstante, puede ocurrir que falle algo y que init no se inicie. Esto implicaría que ningún otro proceso se iniciaría y que el sistema llegaría al estado de "Kernel Panic". Algo que, a los más Linuxeros y amantes de Debian os sonará por el gran podcast de Dabo Hernández. init se refiere en muchas ocasiones a System V, es más, Sistem V fue el primer sistema operativo de UNIX, el cual utilizaba init.

¿Qué es Systemd?

Es otro demonio que inicialmente iba bajo GNU General Public License, pero que ahora van bajo la GNU Lesser General Public License. Al igual que init, es el padre de todos los procesos y es el primer proceso que se inicia cuando el ordenador arranca, siendo el proceso asignado como pid=1.

Es un proceso que corre en background que es designado para arrancar procesos en paralelo, consiguiendo de esta manera, reducir los tiempos de inicio.

¿Por cuál decantarme?

Ya que hemos visto un poco la base, no nos debe costar entender que init lo que hace es, primero arrancar un proceso, pero este proceso solamente lo arranca si el proceso anterior ha terminado correctamente y se carga en memoria. Este procedimiento se repite en bucle con todos los procesos.

Esto es como cuando vamos a comprar, tú no pasas los productos que vas a comprar hasta que la persona que está delante tuya ha pasado todos sus productos, la cantidad h a pagar se ha procesado y ha pagado esa persona.

Como imagináis, si la persona que está delante no encuentra las monedas, el pago que yo tengo que realizar se retrasará. Lo mismo ocurre con init y sistemV ya que no está diseñado para garantizar la velocidad.

Systemd, al permitir correr 2 procesos al mismo tiempo en paralelo, garantiza una mayor velocidad de procesamiento y carga en memoria. Aunque si queréis saber más sobre las ventajas de systemd frente a init, podéis leer este artículo de "The Story behind 'init' and 'systemd': Why 'init' needed to be replaced with 'systemd' in Linux".


Entre las distros que utilizan systemd en lugar de init está Debian a partir de la versión 8.


Yo soy de systemctl y de poder revisar ese macro log que nos ofrece journactl -xe.


Esto es muy importante ya en temas de distro y cómo se manejan los procesos en entornos de usuario, pero más aún en servidores de PROD. Si utilizamos un demonio que mejora la facilidad y reduce la probabilidad de fallo por espera de inicio de procesos del sistema. Por lo que yo me decanto claramente por systemd frente a systemv.

¿Hackeamos el Mundo?

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...

Entrada destacada

El server me sabe a poco.

Soy un fanático del Rock y de Debian . (Creo que voy a inventar Rockbian, que suena bien y todo xD) Llevaba tiempo queriendo unir estos 2 c...