Hace tiempo que no publicamos sobre postmarketOS, el sistema operativo Linux que tiene como objetivo prolongar la vida útil de esos smartphones que han acabado abandonados por sus fabricantes. Desgraciadamente, el sector de la movilidad es gestionado mediante unas agresivas políticas de obsolescencia programada que hacen que muchos dispositivos se queden sin soporte incluso al año de ser lanzados al mercado, lo que repercute en un gran aumento de la cantidad de desperdicios electrónicos.
postmarketOS se basa en Alpine Linux, por lo que tiene a OpenRC como init de referencia. Sin embargo, con el fin de mejorar la compatibilidad con GNOME y KDE Plasma, se ha anunciado la incorporación de manera opcional de systemd. Los responsables de la distribución explican que, conforme va estrechando la colaboración con los desarrolladores de los dos escritorios, van encontrando cada vez más dificultades con su pila basada en OpenRC, la cual se apoya en polyfills de systemd para soportar GNOME y KDE Plasma.
Los polyfills permiten soportar componentes o características de systemd en OpenRC para que este último pueda ejecutar GNOME y KDE Plasma, pero no son un reemplazo completo y además requieren de trabajo adicional para brindarles soporte y mantenimiento. Después de plantear la idea hace un año, al final los responsables de postmarketOS han decidido proporcionar una versión de su sistema con systemd, del que ya hay unas imágenes de prueba de concepto que funcionan en unos pocos dispositivos y que deben ser construidas manualmente.
Los polyfills de systemd sobre OpenRC empleados por postmarketOS son eudev
para soportar udev
, elogind
como vía de tener soporte de systemd-logind
, superd
para cubrir systemd --user
, logbookd
en lugar de
journald
, waked
por systemd.timer
, corecollector
por systemd-coredump
y openrc-settingsd
para cubrir hostnamed
, localed
y timedated
y proporcoinar varias API de D-Bus. openrc-settingsd
y
eudev
están mantenidos e implementan todas las características de sus contrapartes de systemd, pero waked
y corecollector
están sin mantenimiento y elogind
, superd
y logbookd
no soportan todas las características.
La puesta a disposición de systemd no afecta a la oferta de inits de postmarketOS, que mantendrá a OpenRC como el referente. Por otro lado, s6, Runit y dinit deberían de poder usarse debido a que son proporcionados por Alpine Linux, pero por ahora no hay ninguna interfaz de usuario para utilizarlos en postmaerketOS.
Otro aspecto importante a tener en cuenta es la biblioteca de C, ya que Alpine Linux utiliza musl, pero systemd solo soporta glibc oficialmente. Aquí los encargados de la distribución orientada a móviles explican que “nuestro entendimiento actual después de haber hablado con los desarrolladores de systemd es que deberíamos poder encontrar un camino que nos acerque mucho más al upstream, si no del todo”.
Desde postmarketOS mencionan algunas nuevas características que han llegado al sistema como consecuencia de la presencia opcional de systemd, siendo las mencionadas un control de los privilegios granular, funciones de análisis de seguridad y dependencia de servicios, una integración de los grupos de control (cgroups
) tanto estáticos como dinámicos, activación de sockets para hacer cosas como imprimir sin tener CUPS funcionando todo el tiempo, además de análisis del tiempo de arranque.
En resumidas cuentas, postmarketOS introduce systemd con el fin de dar un mejor soporte para GNOME y KDE Plasma, ya que los polyfills que usa en OpenRC para sustituir o soportar los componentes de systemd terminan siendo un hilo demasiado frágil.