¿Qué diferencia a systemd de otros sistemas init?

23

No es del todo oficial, pero parece que systemd está llegando a Debian y después de leer algo de la acalorada discusión de la lista de correo sobre esa decisión, tengo curiosidad acerca de la naturaleza polarizante de systemd entre los usuarios de Linux. Ejecuto los sistemas Debian (sysvinit) y Gentoo (OpenRC) y no sé nada concreto sobre systemd, aunque parece que viene en mi camino.

He visto esta pregunta relacionada con los pros y los contras de systemd vs upstart, pero han pasado 3 años desde que se publicó esa pregunta y estoy seguro de que las cosas han cambiado en ese momento.

Mi pregunta es: ¿Cómo se compara systemd con otros sistemas init?

  • ¿Qué lo distingue? ¿Qué puede hacer que los otros sistemas init no puedan?
  • ¿Hay algo que perder al cambiarlo desde otro sistema de inicio?
  • ¿Cómo se compara la administración de systemd con los demás?
casey
fuente
1
Con Gentoo puede tener unas manos en la experiencia de systemd y tenerlo funcionando con bastante facilidad!
Una cosa que me interesa particularmente son las sesiones de usuario. Funcionan bastante bien en este momento, con algunas excepciones notables. Eso es algo que creo que realmente ha sido descuidado por la mayoría de los otros sistemas init.
Chris Down
@ChrisDown, iniciar / detener el sistema y administrar sus servicios son funciones fundamentales, es mejor que estén estrechamente integradas (por lo tanto, "intento de panacea" es una mala caracterización). Además, no es solo Lennart solo, son las personas de todas las distribuciones las que están trabajando en esto.
vonbrand
@ ChrisDown, por favor no seas ridículo. systemdahora no incluye un servidor web ni lo hará nunca, ni tampoco está leyendo QR en la hoja de ruta. Por favor, verifique de qué se trata, tenga en cuenta que, mientras hablamos, todas las distribuciones importantes (excepto Ubuntu por ahora) la usan de manera predeterminada (la gente de código abierto tiende a ser rabiosamente independiente, ninguna "presión" los hará hacer esto si no No creo que sea la mejor alternativa).
vonbrand
Hoy en día incluso viene con RHEL7 systemd. Me hace preguntarme cuándo demonios Py3kse convertirá en el intérprete de Python predeterminado en las distribuciones.
yegle

Respuestas:

26

Probablemente todo lo que quiera saber esté aquí en las páginas " Debate Init System To Use " que el proyecto Debian reunió para tomar la decisión de qué sistema utilizar. Dentro de esa página hay un enlace separado a cada una de las opciones de initsystems.

Para una introducción en Systemd, esta página tiene casi todo lo que uno necesita saber para comenzar con ella, RHEL7: Cómo comenzar con Systemd .

Recursos adicionales que encontré útiles para obtener una mejor comprensión de las 2 opciones principales También leí las páginas de Wikipedia sobre las tecnologías respectivas:

El proyecto Gentoo también mantiene una buena comparación de algunas de las características clave en los distintos sistemas:

Mi opinión sobre tus preguntas

P # 1: ¿Cómo se compara systemd con otros sistemas init?

Esta es una pregunta muy difícil de abordar en el espacio de una respuesta SE, así que prefiero diferir a las diversas fuentes a las que he hecho referencia anteriormente. Aunque diré esto. Al leer gran parte de los artículos sobre systemdlas alternativas, trata de abordar muchos aspectos de lo que era deficiente en las herramientas anteriores utilizadas para iniciar servicios en sistemas Linux. Tiene un diseño muy bien pensado y está tratando de proporcionarlo de una manera muy modular.

componentes systemd

   ss de componentes systemd

Entonces, en mi opinión, diría que se compara muy favorablemente tanto en términos de esfuerzo en su diseño, ejecución de ese diseño y la adopción de este por varias distribuciones de Linux más grandes.

P # 2: ¿Qué lo distingue? ¿Qué puede hacer que los otros sistemas init no puedan hacer?

Hay muchas cosas que sytemdpueden hacer que otros sistemas no pueden hacer. Probablemente 3 de sus características más fuertes son:

  1. Explotación florestal
  2. Limitación de recursos
  3. Tratando con demonios que se bifurcan

1. registro

En el frente de registro, se systemdha instituido un nuevo sistema de registro llamado "Diario", se llama el servicio systemd-journald.service. Este es su propio tema, puede leer más al respecto aquí en este artículo titulado: Presentación de la revista . Aquí hay un ejemplo de un usuario, "harald", que inicia sesión.

_SERVICE=systemd-logind.service
MESSAGE=User harald logged in
MESSAGE_ID=422bc3d271414bc8bc9570f222f24a9
_EXE=/lib/systemd/systemd-logind
_COMM=systemd-logind
_CMDLINE=/lib/systemd/systemd-logind
_PID=4711
_UID=0
_GID=0
_SYSTEMD_CGROUP=/system/systemd-logind.service
_CGROUPS=cpu:/system/systemd-logind.service
PRIORITY=6
_BOOT_ID=422bc3d271414bc8bc95870f222f24a9
_MACHINE_ID=c686f3b205dd48e0b43ceb6eda479721
_HOSTNAME=waldi
LOGIN_USER=500

2 y 3. Limitación de recursos y demonios que se bifurcan

systemdaquí utiliza un enfoque novedoso cgroupspara contener y limitar los recursos de cualquier servicio que requiera bifurcación o limitación del acceso a los recursos.

extracto

Systemd tiene una solución muy inteligente para el problema de rastrear demonios en ese fork, que casualmente maneja la limitación de recursos al mismo tiempo. Donde Upstart usa ptrace para ver la bifurcación, systemd ejecuta cada daemon en un grupo de control (requiere Linux 2.6.24 o más reciente) del que no puede escapar con ninguna cantidad de bifurcación. Esto permite limitar fácilmente los recursos, tanto para demonios bifurcados como bifurcados, ya que se crearon grupos de control para este tipo de cosas.

Fuente: Daemon Showdown: Upstart vs. Runit vs. Systemd vs. Circus vs. God

P # 3: ¿Hay algo que perder al cambiarlo desde otro sistema de inicio?

Probablemente la mayor advertencia para cambiar a systemd sobre Upstart o sysV init es tener que adoptar muchas nuevas complejidades. Systemd tiene muchas partes móviles y es extremadamente rico en funciones, y con esas capacidades adicionales probablemente pasará una buena cantidad de tiempo adquiriendo conocimientos sobre cómo funciona todo.

P # 4: ¿Cómo se compara la administración de systemd con los demás?

Como se indicó en mi respuesta anterior a la P # 3. Reitero aquí de nuevo. Donde sysV init fue bastante trivial para aprender cómo administrar y navegar en unas pocas horas o días, Upstart probablemente le llevará una semana o más para ponerse al día, mientras que systemd probablemente le llevará mucho más tiempo, estoy anticipando tomar varios semanas para obtener suficiente conocimiento superficial al respecto, donde podré producir mis propios .servicearchivos, para detener / iniciar servicios con la misma facilidad que ahora disfruto con sysV init.

Referencias

slm
fuente
@Caleb, el problema es muy complejo y, además, es un tema delicado para muchas personas. Creo que la respuesta está bien tal como está ...
vonbrand
@Caleb - sí, de nada, gracias por los comentarios.
slm