Cuando encendemos un PC equipado con un sistema operativo Unix (como, por ejemplo, Linux) el kernel del mismo inicia, una vez está cargado en memoria, un primer proceso responsable de iniciar directa o indirectamente todos los demás procesos que se ejecutarán en el equipo hasta que lo apaguemos.
Este proceso recibe el nombre genérico de 'init' y es, como habrás podido suponer, constituye una pieza clave del funcionamiento de Linux y similares. Tanto, que si no es capaz de hallar su correspondiente script el arranque del sistema quedará abortado. Al fin y al cabo, resulta necesario para iniciar la consola, montar el sistema de archivos, configurar el hostname, iniciar los puertos o el firewall, etc.
Dicho script también determina el cómo se inicia nuestro init, pues establece su 'nivel de ejecución' o 'runlevel'. Según el runlevel indicado, init ejecutará un determinado grupo de procesos, permitiendo recurrir al nivel 0 para apagar el sistema y al 6 para reiniciarlo. El resto son los siguientes:
- Modo monousuario (generalmente para tareas de mantenimiento).
- Modo multiusuario sin soporte de red
- Modo multiusuario con soporte de red
- Se usa sólo para secuencias de inicio personalizadas.
- Modo multiusuario completo con entorno gráfico.
Sin embargo, hablar de init es como hablar de 'procesador de textos' para referirnos a Word, pues existen diversas implementaciones rivales. Eso no significa que no haya estándares de facto: procedente de los vetustos Unix System V, SysV —o, más exactamente, su release SysV4— fue durante mucho tiempo el software de init más usado en el mundo Linux… hasta la llegada de systemd.
El rey SysV ha muerto, viva el rey systemd
Creado por Lennart Poettering, creador también de PulseAudio, este desarrollador de Red Hat ha logrado situar su sistema de init como el más usado por las grandes distribuciones desde hace unos 7 años.
La comunidad de Debian (distribución en que se basan Ubuntu y sus derivadas) vivió con especial polémica el cambio desde SysV, tanto que en 2017 se terminó lanzando un 'fork' de Debian (Devuan) que usaba SysV por defecto y estaba abierto a otros init alternativos.
La polémica deriva del hecho de que se considera que este nuevo init incrementa enormemente la complejidad del sistema, convirtiéndolo —según muchas voces de la comunidad— es una especie de 'segundo kernel' que violenta la propia filosofía de funcionamiento de Unix ('haz una cosa y hazla bien') y que, por su dinámica de funcionamiento, dificulta que mucho software adaptado para systemd pueda ser usado sin cambios en otros init.
Otras alternativas
Slackware fue una de las pocas distribuciones que nunca adoptaron SysV y ahora ha seguido sin dar el salto a systemd: recurre a initscripts basados en los que usan los sistemas *BSD. Otras distribuciones, como CRUX, hacen lo mismo.
Void Linux, una distribución aún más 'BSDiana' que Slackware, hace uso de otro init llamado Runit, que ahora también podemos usar (aunque de forma no predeterminada) en Devuan.
Por su parte, Gentoo y sus distribuciones derivadas hacen uso de su propio sistema de init personalizado, denominado OpenRC (usada también por distribuciones como Alpine y Artix).
Imagen | Eli Duke
Ver 11 comentarios