systemd tiene 10 años, pero los sentimientos al respecto en la comunidad de Linux no se han suavizado; es tan divisivo ahora como siempre. Aunque es utilizado por muchas de las principales distribuciones de Linux, la oposición incondicional no ha cedido.
Cuando enciende su computadora, el hardware arranca y luego (según el tipo de sector de arranque que utiliza su computadora ) se ejecuta el registro de arranque maestro (MBR) o se ejecuta la Interfaz de firmware extensible unificada (UEFI). La última acción de ambos es encender el kernel de Linux .
El kernel se carga en la memoria, se descomprime y se inicializa. Un sistema de archivos temporal se crea en la RAM, generalmente mediante una utilidad llamada initramfs
o initrd
. Esto permite determinar y cargar los controladores necesarios. Esto, a su vez, permite que el sistema de archivos de espacio de usuario se cargue y se prepare para establecer el entorno de espacio de usuario.
La creación del entorno de espacio de usuario es manejada por el proceso init, que es el primer proceso lanzado por el kernel en un espacio de usuario. Tiene un ID de proceso (PID) de 1. Todos los demás procesos son hijos directos o indirectos del proceso init.
Antes systemd
, la corriente principal predeterminada para el proceso init era una reelaboración del sistema Unix System V init . Había otras opciones disponibles, pero System V init era la opción estándar en la mayoría de las distribuciones derivadas de la distribución de software no Berkeley (BSD). Debido a que vino directamente de System V Unix, el antepasado espiritual de Linux, mucha gente lo considera como «la forma oficial» de hacer init.
El proceso init inicia todos los demonios y servicios necesarios para que el sistema operativo funcione de forma significativa e interactiva. Estos demonios manejan cosas como la pila de redes, habilitando otro hardware dentro de su computadora y proporcionando una pantalla de inicio.
Muchos de estos procesos en segundo plano continúan ejecutándose después de iniciarse. Hacen cosas como registrar información de eventos, vigilar los cambios de hardware a medida que inserta o quita dispositivos y administran los inicios de sesión de los usuarios. Como era de esperar, el sistema de inicio también incluye funciones para administrar servicios.
Podemos usar ps
para ver el proceso que tiene PID 1. Usaremos las opciones ( f
listado de formato completo) y p
(PID):
ps -fp 1
Vemos que el proceso con PID 1 es systemd
. Ejecutar el mismo comando en Manjaro Linux produjo un resultado diferente. El proceso con PID 1 se identificó como /sbin/init
. Un vistazo rápido a ese archivo muestra que es un enlace simbólico a systemd
:
ps -fp 1
ls -hl / sbin / init
Usando la ppid
opción (ID de proceso principal) con ps
, podemos ver qué procesos han sido lanzados directamente por systemd
:
ps -f --ppid 1
Es una lista bastante larga, como puede ver en la imagen de abajo.
Varios proyectos han intentado producir una alternativa al sistema de inicialización tradicional de System V. Uno de los principales problemas es que, con System V init, todos los procesos se inician en serie, uno tras otro. Para mejorar la eficiencia de la secuencia de arranque, muchos proyectos alternativos utilizan el paralelismo para iniciar procesos de forma simultánea y asincrónica.
Aquí hay información sobre algunos de estos:
Hay muchos otros de diferente funcionalidad y diseño. Sin embargo, ninguno de ellos creó el furor que systemd
hizo.
systemd
fue lanzado en 2010 y se usó en Fedora en 2011. Desde entonces, ha sido adoptado por muchas distribuciones. Fue desarrollado por Lennart Poettering y Kay Sievers , dos ingenieros de software de RedHat.
systemd
es mucho más que un reemplazo de init. Más bien, es un conjunto de aproximadamente 70 binarios que manejan la inicialización del sistema, los demonios y los servicios, el registro y el diario, y muchas otras funciones que ya estaban manejadas por módulos dedicados en Linux. La mayor parte de estos no tienen nada que ver con la inicialización del sistema.
Algunos de los demonios proporcionados por systemd
son:
Y eso es solo la punta del iceberg, que también es el meollo del asunto. systemd
Hace mucho tiempo que superó lo que se requiere de un sistema de inicio, que, según sus oponentes, es la definición misma de alcance.
Los oponentes systemd
señalan la gran y curiosa combinación de funciones que abarca. Todas estas características ya existían en Linux y, quizás, algunas de ellas necesitaban una actualización o un nuevo enfoque. Sin embargo, agrupar toda esta funcionalidad en lo que se supone que es un sistema de inicio es arquitectónicamente desconcertante.
systemd
se ha llamado un punto único de falla para demasiadas funciones críticas, pero esto no parece ser justificable. Es cierto que arroja la filosofía Unix de crear pequeñas herramientas que funcionan juntas en lugar de grandes piezas de software que hacen todo por la ventana. Si bien systemd
no es estrictamente monolítico (se compone de muchos binarios en lugar de uno solo enorme), incluye muchas herramientas de administración y comandos dispares bajo un mismo paraguas.
Si bien puede que no sea monolítico, es grande. Para tener una idea de la escala, contamos las líneas de texto en la base de código del kernel 5.6.15 y la systemd
rama maestra del repositorio de GitHub .
Esta fue una métrica relativamente burda. Contaba líneas de texto, no solo líneas de código. Entonces, esto incluyó comentarios, documentación y todo lo demás. Sin embargo, fue una comparación similar y nos dio un criterio simple:
(buscar ./ -nombre '*. *' -print0 | xargs -0 cat) | wc -l
El núcleo tenía casi 28 millones (27,784,340, para ser exactos) de líneas de texto. Por el contrario, systemd
tenía 1.349.969, o casi 1,4 millones. Con nuestra métrica despreocupada, systemd
resulta en aproximadamente un 5 por ciento del tamaño del kernel, ¡lo cual es una locura!
Como otra comparación, el recuento de líneas para una implementación moderna de System V init para la distribución Arch Linux fue de 1,721 líneas.
Poettering claramente no tiene en cuenta la Sociedad de Computación del Instituto de Ingenieros Eléctricos y Electrónicos (IEEE), ni el estándar de Interfaz de Sistema Operativo Portátil (POSIX). De hecho, animó a los desarrolladores a ignorar POSIX :
“Por lo tanto, obtenga una copia de la Interfaz de programación de Linux, ignore todo lo que dice sobre la compatibilidad con POSIX y elimine su increíble software de Linux. ¡Es muy reconfortante! «
Ha habido acusaciones de que systemd
es un proyecto de Red Hat que solo beneficia a Red Hat, pero está siendo forzado al mundo Linux en general. Sí, nació dentro de Red Hat y está gobernado y dirigido por él. Sin embargo, de los 1.321 colaboradores, solo una fracción trabaja para Red Hat.
Entonces, ¿cuáles son los beneficios de Red Hat?
Jim Whitehurst , el presidente de IBM, quien alguna vez fue el CEO de Red Hat, dijo:
“Red Hat consideró muchas opciones disponibles e incluso usó Upstart de Canonical para Red Hat Enterprise Linux 6. En última instancia, elegimos systemd porque es la mejor arquitectura que proporciona la extensibilidad, simplicidad, escalabilidad e interfaces bien definidas para abordar los problemas que vemos hoy y prever en el futuro «.
Whitehurst también dijo que también vieron beneficios en los sistemas integrados. Red Hat se asocia con «los proveedores integrados más grandes del mundo, particularmente en las industrias de telecomunicaciones y automotriz, donde la estabilidad y la confiabilidad son la principal preocupación».
Estas parecen razones técnicamente sólidas. Puede comprender la necesidad de confiabilidad de la empresa y no es descabellado que Red Hat se preocupe por sus propios intereses, pero ¿deberían todos los demás hacer lo mismo?
Algunos detractores systemd
dicen que las distribuciones y la gente simplemente siguen ciegamente el ejemplo de Red Hat y lo adoptan.
Sin embargo, al igual que la frase, «beber Kool-Aid», no es del todo correcta. Acuñada en 1978 después de que el líder de la secta, Jim Jones , obligó a sus más de 900 seguidores a suicidarse bebiendo un líquido con sabor a uva mezclado con cianuro, la frase avergüenza incorrectamente a Kool-Aid. El grupo realmente bebió Flavor Aid, pero Kool-Aid ha sido contaminado por ese cepillo desde entonces.
Además, las distribuciones de Linux no siguen ciegamente a Red Hat; están adoptando systemd
después de una seria deliberación. El debate rabió en las listas de correo de Debian durante mucho tiempo. Sin embargo, en 2014, la comunidad votó a favor de adoptar systemd
como sistema de inicio predeterminado, pero también de admitir alternativas .
Debian es un ejemplo importante porque no se deriva de RedHat, Fedora o CentOS. No hay ningún steerage aplicado a Debian desde Red Hat. Y Debian, como PID 1, tiene muchos descendientes, incluido Ubuntu y sus muchas derivaciones.
Las decisiones tomadas por la comunidad Debian son de gran alcance. También se debaten enérgicamente y se vota sobre el método de votación Condorcet . La comunidad tampoco toma esas decisiones a la ligera.
Votó de nuevo en diciembre de 2019 para seguir centrándose systemd
y seguir explorando alternativas. Lo contrario de seguir ciegamente, este es en realidad un ejemplo de libro de texto de democracia y libertad de elección en el trabajo.
Por lo general, no puede elegir si usar systemd
con una distribución de Linux en particular. Más bien, las propias distribuciones eligen si quieren usarlo, y usted puede elegir qué distribución de Linux prefiere. Quizás haya cambiado a una distribución de Linux que le guste systemd
. Como un músico favorito que cambia de género, esto puede resultar discordante.
Las personas que usan Debian, Fedora , CentOS , Ubuntu , Arch , Solus y openSUSE , y se oponen a la adopción de systemd
, pueden sentir que están siendo excluidas del uso de la distribución de su elección. Si se sienten lo suficientemente convencidos acerca de cualquiera de las opciones arquitectónicas, el arrastre del alcance o el desprecio por POSIX, es posible que les resulte insostenible seguir usando esa distribución.
Hay un espectro, por supuesto. En un extremo, tienes a las personas que no comprenden los problemas (o que no les importa), y en el otro, tienes a los objetores apasionados. En algún lugar intermedio están aquellos a quienes no les gustan los cambios, pero no les molestan lo suficiente como para abandonar el barco. Pero, ¿qué pasa con los refugiados de distribución, que no pueden permanecer en la distribución elegida debido a sus preferencias o principios?
Desafortunadamente, no es tan fácil como instalar el sistema de inicio que desee. No todo el mundo tiene la capacidad técnica para hacer eso, sin importar las dificultades que surgen cuando las aplicaciones o entornos de escritorio, como GNOME, tienen dependencias de systemd
.
¿Qué hay de pasar a otra distribución? Algunos, como Devuan , aparecieron como no systemd
bifurcaciones de distribuciones (en este caso, Debian) que habían adoptado systemd
. El uso de Devuan debería ser similar a la distribución principal, pero ese no es el caso para todas las que no son systemd
bifurcaciones. Por ejemplo, si abandona Fedora y pasa a AntiX , Gentoo o Slackware , tendrá una experiencia muy diferente.
Me gusta algo de lo que systemd
hace (mecanismos de control simples y estandarizados para procesos). No entiendo la justificación de algunas de sus funciones (registros binarios). También me disgusta algo de lo que hace ( renovar las carpetas de inicio, ¿ quién pidió eso?).
Distribuciones como Debian están haciendo lo inteligente e investigando alternativas para mantener abiertas sus opciones. Sin embargo, systemd
está en él a largo plazo.
Si administra máquinas Linux para otros, aprenda systemd
tan bien como conozca System V init. De esta manera, no importa con cuál se encuentre, podrá realizar sus funciones.
¿Solo usa Linux en casa? Si es así, elija una distribución que satisfaga sus necesidades técnicas y complemente su ideología de Linux.
El mundo del gaming ha experimentado un crecimiento exponencial en los últimos años. La…
Stokkete/Shutterstock.com ¿Sigue utilizando una unidad flash USB obsoleta para almacenar sus archivos? ¿Por qué no…
LG Los fabricantes siempre intentan mejorar el rendimiento de imagen de los monitores. Como resultado,…
Patty Chan/Shutterstock.com Si cree en lo que ve en las redes sociales, puede pensar en…
Seksan.TH/Shutterstock.com Los servicios de suscripción como Netflix, Game Pass y Spotify nos permiten consumir tantas…
fatmawati achmad zaenuri/Shutterstock El acceso a Internet, oa cualquier otra red, se rige por la…