systemd 247 llega con cambios en udev, mejoras en servicios y mas
Después de cuatro meses de desarrollo, se dio a conocer el lanzamiento de la nueva version de «systemd 247».
Y en esta nueva versión, se agregó un controlador experimental de memoria insuficiente, se llevó a cabo una actualización incompatible de las reglas de udev, el sistema de archivos Btrfs está habilitado por defecto en systemd-homed, se propone un mecanismo para la transferencia segura de datos confidenciales a los servicios, la utilidad systemd-disect está estabilizada y muchas cosas mas.
Principales novedades de systemd 247
En esta nueva version las reglas de udev se han modificado para romper la compatibilidad con versiones anteriores y garantizar que udev implemente correctamente los eventos de uevent «bind» y «unbind» introducidos en el modelo de dispositivo del kernel de Linux 4.14 y generalmente generados para dispositivos USB y dispositivos para los que necesita descargar el firmware antes de comenzar a trabajar.
Para usar las nuevas distribuciones systemd-udevd se necesitará actualizar las reglas de udev reemplazando las llamadas. Además de cambiar las reglas de udev suministradas en diferentes paquetes, también será necesario realizar cambios en varios programas de monitoreo, bibliotecas y utilidades que funcionan con reglas de udev.
Se argumenta que la necesidad de un cambio de este tipo no se debe a problemas en systemd o udev, sino a un cambio radical de compatibilidad en el kernel de Linux, que ha llevado a que cada vez más controladores utilicen los eventos «bind» y «unbind», que requieren un cambio fundamental en la lógica para admitir manejo de eventos.
Como solución, systemd-udevd ha rediseñado por completo el concepto de etiquetas, lo que permite etiquetar y filtrar dispositivos a medida que los rastrea. Las etiquetas Udev ahora están conectadas a un dispositivo y no se pueden quitar antes de quitar el dispositivo. Esto asegura que las aplicaciones puedan obtener el uevent for tags después de que se haya aplicado la llamada «unbind», ya que la etiqueta ya no está asociada con el evento del dispositivo, sino con el dispositivo en sí, y no cambia después de un nuevo evento.
Otro de los cambios que se destaca, es el soporte experimental para la respuesta temprana a poca memoria en el sistema (systemd-oomd), implementado sobre la base del controlador oomd desarrollado por Facebook.
Oomd utiliza el subsistema de kernel PSI (Pressure Stall Information), que permite en el espacio del usuario analizar información sobre el tiempo de espera de varios recursos (CPU, memoria, E/S) para evaluar con precisión el nivel de utilización del sistema y la naturaleza de la ralentización.
En los servicios del sistema, se propuso una nueva lógica para la transferencia segura de datos confidenciales, como contraseñas y claves de cifrado, así como información relacionada, como nombres de usuario y certificados (involucrada en systemd-nspawn).
Para organizar la transferencia de datos, se ofrecen dos parámetros, SetCredential y LoadCredential, y las credenciales mismas se transfieren a través de archivos intermedios en un directorio separado, definido a través de la variable de entorno $CREDENTIALS_DIRECTORY.
Por otra parte, podremos encontrar que el sistema de archivos Btrfs ahora se usa de forma predeterminada al crear directorios de inicio en particiones LUKS usando el servicio systemd-homed para administrar directorios de inicio portátiles.
Para cambiar el tipo de FS, se puede usar el parámetro DefaultFileSystemType en homed.conf. Cabe señalar que, a diferencia de ext4 y xfs, el uso de Btrfs permite no solo aumentar, sino también disminuir el tamaño de la partición montada.
Los perfiles de usuario JSON alojados en el sistema agregaron soporte para claves de recuperación, que incluyen frases de contraseña de repuesto generadas automáticamente para desbloquear una cuenta o directorio de inicio en caso de que se pierda un token FIDO2 o PKCS # 11. Para adjuntar la clave de recuperación a la cuenta, se ofrece la opción «–recovery-key» y la clave en sí se muestra en forma de un código QR para escanearla y guardarla en un lugar seguro.
Para cada directorio cifrado con LUKS, systemd-homed implementa un manejo que indica que el directorio no se ha desmontado correctamente. la limpieza de bloques liberados no se inició antes del cierre.
Finalmente, si quieres conocer mas al respecto puedes consultar el siguiente enlace.