Après trois mois de développement, la version du gestionnaire de système systemd 262 est disponible. Dans cette nouvelle version, l'intégration d'un ensemble minimal de fichiers unitaires a été mise en œuvre, la prise en charge de la compilation avec liaison statique a été assurée, l'intégration avec dm-clone pour le clonage d'appareils blocs a été réalisée, la gestion d'une base de données des fichiers installés a été ajoutée à systemd-sysupdate et la vérification cryptographique des rapports systemd-report a été garantie.
Parmi les changements de la nouvelle version :
- Un ensemble de fichiers unitaires de base (basic.target, sysinit.target, multi-user.target, reboot.target, shutdown.target, systemd-poweroff.service, etc.) a été intégré au binaire du gestionnaire de système, qui est utilisé lorsqu'il n'est pas possible de charger les fichiers unitaires depuis le disque. Cette intégration permet de lancer des conteneurs avec un processus init (PID1) basé sur systemd sans avoir à installer de fichiers unitaires.
- Ajout de la prise en charge de la compilation sous la forme d'un unique fichier exécutable statiquement lié, qui peut être utilisé pour initialiser et lancer des services dans des conteneurs avec un contenu minimal. Pour la compilation avec liaison statique, lors du lancement de meson, les drapeaux suivants doivent être spécifiés : «—default-library=static —prefer-static -Dbuild-static=true -Dsystemd-multicall-binary=true».
- Prise en charge intégrée du module du noyau dm-clone, permettant de créer un clone d'un appareil bloc disponible en lecture seule, qui autorise l'écriture. Les paramètres de /etc/clonetab sont traités par systemd-clonesetup-generator et sauvegardés sous forme d'unités systemd-clonesetup@.service, liées à clonesetup.target. Un utilitaire systemd-clonesetup a été ajouté pour la création et la suppression de clones d'appareils blocs.
- Les fonctionnalités de l'outil systemd-sysupdate ont été étendues, permettant la détection, le téléchargement et l'installation automatiques des mises à jour en utilisant un mécanisme atomique de remplacement de partitions, de fichiers ou de répertoires (deux partitions/fichiers/répertoires indépendants sont utilisés, l'un contenant la ressource en cours d'exécution et l'autre recevant la mise à jour suivante, après quoi les partitions/fichiers/répertoires sont échangés). Une base de données a été mise en place pour conserver des informations sur tous les fichiers installés. La commande « systemd-sysupdate cleanup » a été ajoutée pour supprimer les fichiers devenus superflus après la mise à jour du système ou ne correspondant plus au modèle de configuration actuel. Des commandes « systemd-sysupdate enable-feature/disable-feature/enable-component/disable-component » ont été ajoutées pour gérer l'activation des fonctionnalités et des composants. La notion de composants recommandés a été mise en œuvre; par exemple, la commande « systemd-sysupdate enable-component --component-suggested » peut activer les pilotes nécessaires au bon fonctionnement du matériel existant. Une option « --component-all » a été ajoutée à la commande « systemd-sysupdate update » pour mettre à jour tous les composants en une seule fois.
- Une option « --sign= » a été ajoutée dans systemd-report, permettant de signer numériquement les rapports générés par les commandes « generate » et « upload ». Trois backends pour la signature des rapports ont été proposés : systemd-report-sign-plain (Ed25519), systemd-report-sign-tsm (configfs TSM) et systemd-report-sign-tpm2 (TPM2 PCR).
- Pour lisser la charge en cas de redémarrage massif des services après des pannes, le paramètre RestartRandomizedDelaySec a été proposé, ajoutant un délai aléatoire avant le redémarrage automatique du service, dans des limites définies.
- Le paramètre ActivatingConcurrencyMax a été ajouté aux unités slice, permettant de limiter le nombre maximal d'unités activées simultanément dans la hiérarchie.
- Un paramètre LUOSession a été mis en œuvre pour les services, destiné à créer des sessions Live Update Orchestrator, utilisées pour mettre à jour le noyau en mode Live sans arrêter le fonctionnement et sans perdre l'état du système, des dispositifs et des processus.
- Des paramètres XAttrEntryPoint, XAttrListen et XAttrAccept ont été ajoutés aux unités socket, permettant d'attacher des attributs étendus (xattr) aux sockets UNIX pour leur étiquetage.
- Pour l'attribution automatique de noms d'hôtes facilement mémorisables (/etc/hostname), un nouveau caractère de substitution «$» a été implémenté, remplaçant un élément de la liste de mots, choisi via un hachage lié à l'identifiant du système.
- L'utilitaire run0 a été enrichi d'options compatibles avec sudo -k/—reset-timestamp, -K/—remove-timestamp et -v/—validate pour révoquer ou mettre à jour l'autorisation temporelle accordée via polkit.
- L'utilitaire systemd-escape a ajouté l'option «—stdin» pour lire les chaînes d'entrée à partir de l'entrée standard.
- Dans vconsole, une variable d'environnement FONT_SCALE a été ajoutée pour ajuster le niveau d'échelle des polices, de manière similaire à la parameter vconsole.font_scale (pour l'instant, seules les valeurs 100% et 200% sont prises en charge).
- Toutes les commandes prenant en charge l'option «—help» ont reçu l'option «—introspect-cli» pour afficher l'aide au format JSON, facilitant l'automatisation de la vérification des options requises dans les extensions et scripts.
- Lors de l'authentification avec des jetons FIDO2, un compteur des tentatives restantes pour saisir le code PIN est désormais affiché.
- Dans systemd-networkd, une vérification MachineTag a été ajoutée dans la section «[Match]» des fichiers .link, .network et .netdev, permettant de lier les paramètres réseau à la présence ou à l'absence de balises spécifiques. L'option «—no-reconfigure» a été ajoutée à la commande «networkctl reload» pour recharger les fichiers .network et .netdev à partir du disque sans reconfigurer les liaisons réseau existantes. Dans les fichiers .network, il est désormais possible de spécifier plusieurs noms d'appareils réseau, séparés par des espaces, pour les paramètres IPoIB, IPVLAN, IPVTAP, MACsec, MACVLAN, MACVTAP, Tunnel, VLAN, VXLAN et Xfrm.
- Dans systemd-journald, le mécanisme FSS (Forward Secure Sealing), garantissant l'intégrité des logs, a été transféré à l'utilisation des fonctions cryptographiques de la bibliothèque OpenSSL au lieu de libgcrypt. La bibliothèque libsystemd n'est plus liée à libgcrypt.
- L'utilitaire systemd-sysctl a été enrichi de l'option «—verify», permettant de lire la valeur du paramètre sysctl après qu'elle a été appliquée et de la comparer à la valeur d'origine pour vérifier si le changement a été appliqué. Des options «—save=FILENAME» et «—revert=FILENAME» ont été ajoutées pour sauvegarder et restaurer les paramètres sysctl situés dans le répertoire /run/sysctl.d/.
- La prise en charge de la compilation avec la bibliothèque OpenSSL 4 a été ajoutée.
Source : opennet.ru
