ice

SystemD vs Otros Inits

2 posts en este tema

tux_system

 

De acuerdo a la polémica que viene hace mucho, pero que vengo leyendo hasta el día de hoy en grupos de Telegram como el de mi amigo José que se llama GNU/Linux sin systemd. Tenía ganas de escribir algo de ésto también, tal vez crean que es lo mismo que se ve en todos los blogs, twitter, youtube, grupos de telegram, etc. No! nada que ver, trataré de ser lo más objetivo sobre éste init (systemd) y las demás alternativas que tenemos actualmente para instalar o las diferentes distribuciones sin éste init, con sus pro y sus contra. Me basaré en la experiencia del usuario "normal" y también para los usuarios de nivel medio/avanzado para no dejar de lado ésa parte que es la que mayores controversias traen actualmente. Comencemos! Introducción: De las preguntas que uno se hace

¿Porqué prácticamente todas las distribuciones de GNU/Linux la implementaron?. ¿Si es tan conflictivo porque lo adaptan las distribuciones más conocidas como Archlinux o Debian?

Yo creo que el tema viene (siempre hablando desde mi humilde opinión de usar Archlinux, haber usado Debian, Ubuntu, Linuxmint, Slackware, Void, etc.) para no perder campo en el terreno de como ser gnome-shell, que como sabemos necesita si o si systemd y dependencias en ocaciones que nadie sabe porqué!. Si seguimos con la misma idea, también nos vamos a poner a pensar que entonces:

¿Porqué Slackware y Void no usan systemd?

Tantas preguntas nos hacemos a la hora de tratar de "hilar fino", sinceramente creo que realmente no hay, no existe no habrá una resputa concreta del porqué, pero podemos hablar de los pro y contra de usar un init implementado prácticamente a la fuerza y de los demás que podemos usar como alternativa o diractamente migrar a otra distro, como las antes mencionadas como ser una de las más longeva en el mundo GNU/Linux que es Slackware Linux Project y otra que no es longeva, lleva sus años, pero le falta más trabajo como ser Void Linux. ¿Qué es systemd? Éste es un sistema de inicio de nuestro núcleo, nuestro llamado kernel, creado por el tan controversial Lennard Poettering junto a otros desarrolladores que trabajan para la distribución tan conocida como es Red Hat, actualmente con una licencia LGPL 2 que se encuenta en Github. Básicamente systemd es un "programa" que se encarga de administrar nuestro sistema a través de servicios en el arranque de nuestro equipo gestionando todos los procesos. Además nos permite trabajar de manera simultánea y liberar otras tareas de nuestro shell y trabajos de nuestro hardware. Aquí dejo un link de la wiki con más detalles. Después de una "larga" introducción, pasamos a la parte del manejo de los procesos del que se encarga systemd. Entonces que es un proceso? Un proceso es lo que nuestro sistema lo identifica como PID (Process ID). Cada proceso tiene una función específica sobre la tarea que realiza en nuestro sistema. Éstos pueden crear otros procesos llamados procesos "hijos". Sabiendo ésto, nos preguntamos

 

¿Cómo se maneja entonces SystemD?

Bueno éste init se encarga de manejar los servicios de manera simultánea, ya que se encarga de administrar éstos creando sockets para cada servicios, ¿Qué significa ésto? Que cada servicio está cargado en la memoria, pero sin activarse hasta ser necesario. Si nos ponemos a pensar de que lo anteriormente nombrado se podría tomar como una ventaja entonces podríamos decir que también systemd utiliza los cgroups (Control Groups) que tiene por ejemplo Openrc (Luego hablaré de éste). Y además que si decimos que SystemD se maneja con los "units" (si leyeron la wiki al comienzo van a entender) son archivos de:

* Configuración de servicios. * Puntos de montaje. * Sistemas de archivos. * Swap. * Entre otras cosas más que pueden investigar.

Cada unit posee características para cada recurso utilizado, el cuál nos da la posibilidad de manejar ése recurso independientemente a otro. La manera en que se maneja éste sistema nos permite hacer otras cosas más como reemplazar, eliminar o reiniciar procesos que vemos necesarios o no. Systemd comparado con otros inits con los que considero que son con los que tuve mejor experiencia como usuario común y menejando mis servidores. Openrc: Elegí el ejemplo del init Openrc, porque después de SystemD es de los más conocidos por usuarios más "veteranos" en éste sistema.

 

 

¿Qué es Openrc?

Básicamente es un sistema de inicio que es compatible con BSD, SystemV mantenido por los mismos desarrolladores de Gentoo y está basado en dependencias.  Que cuenta con ventajas también es como systemd permite el inicio de los procesos simultáneo. También es posible utilizar Openrc junto a otros kernels además del GNU/Linux, claro está que también como lo mencioné anteriormente con procesos como son cgroups. Los que prefieren éste init (que a mi entender entre las alternativas es el más completo) es que posee lo siguiente:

* El código de OpenRC está escrito en lenguaje POSIX. * OpenRC no depende de D-Bus. * La flexibilidad a la hora de configurar. * El modo de depuración detallado. * Entre otras características que deberán documentarse al respecto.

 

Runit:

Runit es el init por defecto que trae ésta distribución (áún le falta para jugar en primera con las grandes) Void. Éste init es un conjunto de herramientas que tambén incluyen un init PID 1, así como un sistema de chequeo de procesos compatibles con deminios y utilidades que nos agilizan la ejecución de procesos, así también la creación de los mismos y el mantenimiento. Además creo que algo que destaco obviamente de su simpleza es el "concepto" de un directorio de servicios que se encarga de manejar los servicios individualmente y obviamente de tener todo registrado perfectamente. En el caso que quieran saber un poco más tenemos la wiki de VoidLinux aquí.

 

 

Entonces finalmente ¿SystemD, OpenRC, Runit o cuál?

La idea de utilizar el un init en particular depende pura y exclusivamente para el uso que le daremos a nuestro o nuestros equipos. En éste caso daré mi opinión (humilde) como usuario normal que sólo estoy para aprender. A la hora de utilizar una distribución siempre voy por las principales o llamadas "distribuciones madres", como son Archlinux, Debian, Slackware, Void.

De las cuatro mencionadas las tengo instaladas a las cuatro y dos de ellas (Arch y Debian) utilizan SystemD, lo cuál no me resultó para nada complicado comenzar a utilizarlo desde cero, es más hasta me pareció muy simple sin mayores problemas en lo que van los años que lo uso.

Ahora con respecto a las otras dos distribuciones restantes Slackware y Void, conociendo los años de historia que nos trae Slack en el mundo GNU/Linux tuve la mejor experiencia con el init que utiliza que es el propio de la misma distribución (basado en BSD directamente), ya que jamás modificaron sus filosofías o manera de manejarse, entonces no me resultó complicado tampoco volver a utilizarlo, activar, desactivar, habilitar, deshabilitar servicios, etc.

Finalmente quiero hacer un punto aparte con el init de Void Linux, la verdad que fué una grata sorpresa utilizar un init así, como lo voy a escribir ahora, un "init realmente simple de manejar". Hasta parece que está pensando a prueba de torpes. Desde el primer momento que lei como manejarlo, quedé impresionado. Para los que recién comienzan con GNU/Linux hasta les recomendaría Void, más allá que aún le falta mucho para estar al lado de las grandes distribuciones, nos da una simpleza a la hora de manejarla que te deja tranquilo. Asi que entonces volviendo a la pregunta con

 

¿Cuál init me quedo? Yo lo que haría sería, preguntarme para que necesito otro?

- Tuve problemas con el init que tengo actualmente? Si/No. - Me resulta sencillo de manejar? Si/No. - Me hace falta instalar otro? Si/No.

También tenemos la alternativa si tenemos tiempo y ganas de virtualizar y utilizar otras distros como las que les mencioné y fijarse si realmente se sienten más cómodos, les resulta igual, mejor o peor! El mejor consejo que les puedo dar es que la decisión es sólamente de ustedes, no se dejen llevar por los anti-systemd, anti-openrc, anti-nada! Lo que importa realmente es cómo ustedes se desenvuelven en su propio sistema. Obviamente está genial informarse de lo que van a usar, buscar información, tomarse un tiempo para aprender a manejar el init que queremos para que luego por desconocmiento a un manejo correcto no terminemos como varios que leo en grupos de Telegram o en foros diciendo "ésto es una porquería no funciona". ;-) Bueno espero que les haya servido y a continuación les dejo unos links que por ahí les pueda resultar interesantes para leer, mirar toda la polémica, leer diferentes puntos de vista, etc.

 

Links interesantes:

Que piensan hacer ustedes? (Encuesta).

Opinando de systemd.

The Epoch Init System.

Are We Removing What defines Arch Linux.

Avanzando a Golpe de Actualizaciones de Systemd.

Why systemd is winning the init wars and other things aren't.

Lennart Poettering Takes To Battling Systemd Myths.

Would it be possible for you to cover the pros and cons related to Systemd.

Decide which init system to default to in Debian.

How do you feel about Opensuse using Systemd?

 

 

Abrazo de gol!

Editado por ice

Compartir este post


Enlace al post
Compartir en otros sitios

Registra una cuenta o conéctate para comentar

Debes ser un miembro de la comunidad para dejar un comentario

Crear una cuenta

Regístrate en nuestra comunidad. ¡Es fácil!

Registrar una cuenta nueva

Iniciar Sesión

¿Ya tienes cuenta? Conéctate aquí.

Iniciar Sesión