systemd 248 ya está entre nosotros para continuar con la evolución del init o framework de sistema que se ha consolidado como una de las partes esenciales de la mayoría de las grandes distribuciones Linux. Como es habitual en cada lanzamiento de este componente, nos encontramos con una gran cantidad de cambios que abarcan muchas áreas, entre las que se encuentran redes, la memoria y los volúmenes cifrados.
Los primero que sobresale de systemd 248 es la introducción de “un concepto de imágenes de extensión del sistema”, las cuales pueden ser usadas para extender las jerarquías de los directorios ‘/usr’ y ‘/opt’ en tiempo de ejecución con archivos adicionales, incluso si el sistema de ficheros es de solo lectura.
Cuando una imagen de extensión del sistema es activada, sus jerarquías de ‘/usr’ y ‘/opt’ y la información de ‘os-realese’ son combinadas a través de ‘overlayfs’ con la jerarquía del sistema de ficheros del sistema operativo anfitrión. Con la nueva herramienta ‘systemd-sysext’ se puede fusionar, separar, listar y actualizar las jerarquías de extensión del sistema.
‘systemd-networkd’, el daemon de systemd creado para gestionar las configuraciones de red, ha ganado soporte para el protocolo de enrutamiento inalámbrico de “B.A.T.M.A.N. advanced”, el cual opera solamente sobre la capa de 2 de ISO/OSI y usa tramas de Ethernet para enrutar o puentear paquetes.
Los ficheros de configuración de ‘systemd-networkd’ también han ganado nuevas posibilidades que abarcan cosas como la posibilidad de seleccionar la tabla de políticas de enrutamiento, la capacidad de ignorar o aceptar los anuncios de ruta de enrutadores que coinciden con los prefijos especificados en ‘IPv6AcceptRA’ y la posibilidad de ignorar la dirección IP proporcionada por DHCPv6.
Otra novedad de systemd 248 es la incorporación de una nueva opción especial a nivel de la línea de comandos para el kernel: ‘root=tmpfs’. Cuando ha sido especificada, un tmpfs, que es un paradigma de almacenamiento de archivos temporal implementado en muchos sistemas operativos tipo Unix, es montado sobre la raíz, mientras que ‘mount.usr=’ debe usarse para señalar la implementación del sistema operativo.
‘systemd-cryptsetup’ ha obtenido soporte para procesar encabezados de LUKS desprendidos especificados en la línea de comandos del kernel a través del parámetro ‘header=’ de la opción del kernel ‘luks.options’, mientras que la nueva herramienta ‘systemd-cryptenroll’ ha sido añadida para registrar tokens de seguridad PM2, FIDO2 y PKCS#11 a volúmenes de LUKS, además de poder listarlos y destruirlos.
‘systemd-homed’, la característica que pretende “facilitar” la administración de los directorios personales, soporta ahora la capacidad de desbloquear directorios de usuario con tokens de seguridad FIDO2 que soporten la extensión ‘hmac-secret’, que se suma al soporte existente para el desbloqueo de tokens de seguridad PKCS#11.
La nueva configuración ‘ConditionCPUFeature=’ se puede usar para condicionar las unidades de systemd para que solo se ejecuten en caso de coincidir con determinadas características del procesador. “Por ejemplo, ‘ConditionCPUFeature= rdrand’ condicionará una unidad (de systemd) para que se ejecute solo cuando el procesador del sistema del sistema soporte el código de operación RDRAND”.
‘systemd-oomd’, el servicio que hace referencia a out-of-memory daemon y que ha sido diseñado para tomar medidas correctivas cuando la memoria libre se está agotando, ha incorporado una nueva configuración, ‘DefaultMemoryPressureDurationSec=’, que permite ajustar el tiempo que el cgroup de una unidad necesita para exceder los límites de presión de memoria antes de que se tomen medidas, mientras que la configuración ‘ManagedOOMPreference=none|avoid|omit’ hace que se evite el matar ciertas unidades de systemd. Por otro lado, se ha considerado que ‘systemd-oomd’ está totalmente soportado y swap no es requerido para la operación, aunque todavía se siga recomendando.
Y muchas cosas más se pueden mencionar de systemd 248, como el hecho de que los nodos de dispositivo de enlace Intel SGX sean ahora propiedad de un nuevo grupo de seguridad del sistema llamado ‘sgx’, el establecimiento de la variable del entorno ‘$SYSTEMD_EXEC_PID’ para los procesos generados hacia el PID del proceso en sí y el hecho de que se ha renombrado de la rama “master” a “main” en el repositorio Git.
Todos los detalles sobre systemd 248 pueden ser consultados desde las notas de lanzamiento y los que quieran utilizarlo pueden compilarlo a partir de su código fuente. Sin embargo, esa vía es muy poco amigable, así que lo más cómodo es usar una distribución rolling release como Arch Linux y esperar a que llegue, si bien la actualización de este componente no suele ser una prioridad para la mayoría de los usuarios.