La historia detrás de 'init' y 'systemd': por qué 'init' necesitaba ser reemplazado por 'systemd' en Linux


Estoy suscrito a varias listas de correo relacionadas con varias distribuciones y aplicaciones de Linux solo para mantenerme actualizado con lo que está pasando y dónde. ¿Cuáles son los nuevos errores? ¿Cuáles son los parches publicados? ¿Qué se espera en la próxima versión? y muchas otras cosas. En estos días, la lista de correo está muy poblada con "Elige tu lado en Linux Divide", principalmente en la lista de correo de Debian junto con algunos otros.

El demonio init será reemplazado por el demonio systemd en algunas de las distribuciones de Linux, mientras que muchas de ellas ya lo han implementado. Esto crea/creará una gran brecha entre el tradicional Unix/Linux Guard y New Linux Guard: programadores y administradores del sistema.

En este artículo, discutiremos y resolveremos siguiendo todas las consultas una por una.

  1. What init is?
  2. What is systemd?
  3. Why init needed to be replaced?
  4. What features systemd will own.

En Linux, init es una abreviatura de Inicialización. init es un proceso demonio que se inicia tan pronto como se inicia la computadora y continúa funcionando hasta que se apaga. De hecho, init es el primer proceso que se inicia cuando se inicia una computadora, lo que lo convierte en el padre de todos los demás procesos en ejecución directa o indirectamente y, por lo tanto, normalmente se le asigna " pid u003d 1 ".

Si de alguna manera el demonio init no puede iniciarse, no se iniciará ningún proceso y el sistema llegará a una etapa llamada " Kernel Panic ". init se conoce más comúnmente como System V init . System V es el primer sistema operativo UNIX comercial diseñado y los usos de init en la mayor parte de la distribución de Linux actual son idénticos a System V OS con algunas excepciones como Slackware que usa estilo BSD y Gentoo que usa init personalizado. .

La necesidad de reemplazar init con algo más perfecto se sintió desde hace mucho tiempo y de vez en cuando se desarrollaron varias alternativas, algunas de las cuales se convirtieron en el reemplazo de init nativo de la distribución, algunas de las cuales son:

  1. Upstart – A init replacement daemon implemented in Ubuntu GNU/Linux and designed to start process asynchronously.
  2. Epoch – A init replacement daemon built around simplicity and service management, designed to start process single-threaded.
  3. Mudar – A init replacement daemon written in Python, implemented on Pardus GNU/Linux and designed to start process asynchronously.
  4. systemd – A init replacement daemon designed to start process in parallel, implemented in a number of standard distribution – Fedora, OpenSuSE, Arch, RHEL, CentOS, etc.

Un systemd es un demonio de administración del sistema llamado con la convención de UNIX para agregar " d " al final del demonio. Para que se puedan reconocer fácilmente. Inicialmente fue lanzado bajo la Licencia Pública General GNU, pero ahora los lanzamientos se realizan bajo la Licencia Pública General Reducida GNU. Similar a init, systemd es el padre de todos los demás procesos directa o indirectamente y es el primer proceso que se inicia en el arranque, por lo que normalmente se le asigna un " pid u003d 1 ".

Un systemd , puede referirse a todos los paquetes, utilidades y bibliotecas alrededor de daemon. Fue diseñado para superar las deficiencias de init. En sí mismo es un proceso en segundo plano que está diseñado para iniciar procesos en paralelo, reduciendo así el tiempo de arranque y la sobrecarga computacional. Tiene muchas otras características en comparación con init.

Un proceso de inicio comienza en serie, es decir, una tarea comienza solo después de que el inicio de la última tarea fue exitoso y se cargó en la memoria. Esto a menudo resultaba en un tiempo de arranque prolongado y retrasado. Sin embargo, systemd no fue diseñado para la velocidad sino para hacer las cosas de manera ordenada, lo que a su vez evita todos los retrasos necesarios para la ONU.

  1. Clean, stateforward and efficient design.
  2. Simpler boot process.
  3. Concurrent and parallel processing at boot.
  4. Better API.
  5. Simple Unit Syntax.
  6. Ability to remove optional components.
  7. Low memory footprints.
  8. Improved technique to express dependencies.
  9. Initialization instruction written in config file and not in shell script.
  10. Make use of Unix Domain Socket.
  11. Job Scheduling using systemd Calendar Timers.
  12. Event Logging with journald.
  13. Choice of logging System events with systemd as well as syslog.
  14. Logs are stored in binary file.
  15. systemd state can be preserved to be called later in future.
  16. Track process using kernel’s cgroup and not PID.
  17. Users login managed by systemd-logind.
  18. Better integration with Gnome for interoperability.
  1. Everything at one place.
  2. Not POSIX standard.

Linus Torvalds, arquitecto jefe del kernel de Linux, siente la actitud del desarrollador clave de systemd hacia los usuarios y los informes de errores no parecen estar bien. También se informó que la filosofía systemd es extraña y una forma extraña de controlar los procesos del sistema. Lo mismo se ha registrado de Patric Volkerding y otros usuarios y desarrolladores notables de Linux, así como en foros en línea, de vez en cuando.

Todo lo que se ejecute como pid u003d 1 no debe romperse, no debe ser un desastre y debe ser controlado por los usuarios de manera efectiva y eficiente. Muchos usuarios creen que reemplazar init por systemd no es más que reinventar la rueda cada vez como un efecto secundario de Linux. Pero esta es la naturaleza diversa de Linux. Esto se debe a que Linux es mucho más poderoso. El cambio es bueno y debemos apreciarlo si es por una buena razón.

Eso es todo por ahora. Estaré aquí de nuevo con otro artículo interesante que a la gente le encantará leer. Hasta entonces, estad atentos y conectados a Tecmint. No olvide enviarnos sus valiosos comentarios en los comentarios a continuación.