10 points par GN⁺ 2024-11-04 | 4 commentaires | Partager sur WhatsApp
  • systemd est un ensemble intégré d’applications liées à l’administration du système, qui remplace le processus init traditionnel et inclut diverses fonctions comme la gestion des sessions utilisateur, la gestion des périphériques, la journalisation, la planification temporelle, etc.
  • La plupart des utilisateurs de Linux ne s’intéressent pas aux avantages et inconvénients de systemd, mais certains y sont fortement opposés ou, au contraire, le soutiennent activement.
  • Les distributions Linux grand public ont adopté systemd, principalement en raison de ses avantages dans les environnements de bureau classiques.

Problèmes dans Linux embarqué

  • Dans les systèmes embarqués, les avantages de systemd peuvent au contraire devenir des inconvénients.
  • Si l’on prend comme exemple l’utilisation mémoire sur un Raspberry Pi 3B, systemd consomme plus de ressources que SystemV init.
  • Les démons de journalisation de systemd, comme systemd-journald, consomment eux aussi beaucoup de ressources.
  • Dans les environnements embarqués, des alternatives plus légères sont nécessaires, et systemd n’est pas optimisé pour ce type de contexte.

Complexité de systemd et temps de démarrage

  • systemd peut réduire le temps de démarrage, mais dans les systèmes embarqués, il peut au contraire l’augmenter.
  • La complexité et les fonctionnalités de systemd sont utiles dans des environnements généraux, mais elles sont souvent inutiles dans l’embarqué.

Absence d’alternatives

  • Pour beaucoup de services remplacés par systemd, il existe dans l’embarqué des alternatives plus petites et plus rapides, mais pour certains, il n’existe désormais plus d’alternative.
  • Par exemple, le démon udev a été intégré au projet systemd, et il n’existe presque plus d’alternatives indépendantes.

Diffusion de systemd et recul des alternatives

  • systemd inclut de nombreuses fonctions, ce qui est pratique pour les mainteneurs de distributions.
  • À mesure que systemd absorbe de plus en plus de fonctions, la motivation pour maintenir des alternatives diminue.
  • Cela peut poser problème lorsque systemd n’est pas adapté à un environnement embarqué.

Conclusion

  • systemd peut être moins efficace dans l’embarqué que les alternatives traditionnelles.
  • Il devient de plus en plus difficile de trouver des distributions Linux grand public qui n’utilisent pas systemd.
  • Avec la diffusion de systemd, Linux se dirige vers un avenir où il sera difficile de l’imaginer sans systemd.
  • Il faut être prêt à développer ou maintenir des alternatives, et continuer à soutenir les distributions qui n’utilisent pas systemd.

4 commentaires

 
iolothebard 2024-11-08

Est-ce vraiment seulement systemd…

 
ganadist 2024-11-06

L’init de busybox est un excellent substitut à systemd pour les appareils embarqués.
Et sur un système contraint comme un appareil embarqué, il n’est pas nécessaire d’utiliser udev : il suffit d’inclure des nœuds de périphérique fixes dans le système de fichiers racine.

 
plaaat0102 2024-11-05

Dans mon cas, c’est vraiment une exception parmi les exceptions, mais comme j’installe Ubuntu sur une Galaxy Tab et que j’y utilise VS Code, il m’arrive assez souvent d’avoir envie de pleurer à cause de systemd...

 
GN⁺ 2024-11-04
Commentaires sur Hacker News
  • systemd résout de nombreux problèmes, et la communauté est très réactive et serviable

    • Il y a parfois des problèmes étranges, mais il existe toujours une solution
    • L’utilisation mémoire n’est pas importante, et la plupart des appareils Linux embarqués disposent de plus de 1 Go de RAM
    • Sur les petits appareils, on utilise Zephyr ou FreeRTOS
  • OpenEmbedded/Yocto, Devuan et Gentoo proposent plusieurs systèmes d’init

  • Rustysd est un gestionnaire de services qui reproduit en partie le fonctionnement de systemd

    • Il fournit les fonctionnalités de base et peut offrir un gestionnaire de services similaire à systemd sur diverses plateformes
  • Les personnes qui préfèrent systemd sont principalement des responsables de distribution

    • systemd fournit divers utilitaires système dans un seul gros build
  • La philosophie Unix consiste à résoudre les problèmes avec de petits outils

    • systemd était petit au départ, mais aujourd’hui il permet même la visioconférence via le web
  • runit est excellent pour superviser les applications et les services

    • Il est intégré à BusyBox et très léger
    • Sa configuration est très simple et il inclut aussi des fonctions de journalisation
    • Il met en œuvre la philosophie Unix presque à la perfection
  • Il est possible d’exécuter un système embarqué sans udev

    • C’est faisable lorsqu’on utilise des périphériques fixes et des modules du noyau
  • Le RPi transforme le format d’une carte de contrôle industrielle en desktop

    • Beaucoup de logiciels n’ont pas été écrits en pensant à ce segment
  • Chimera Linux explore une direction intéressante pour la gestion des services ainsi que la gestion des connexions et des sièges

    • L’utilisation par systemd des extensions gnulibc et gcc pose problème
  • La taille d’installation de systemd est le plus gros problème sur Linux embarqué

    • Sur des appareils avec 64 Mo de RAM et 128 Mo de flash NAND, un systemd de 5 Mo est inefficace
  • systemd pose problème sur Linux embarqué en utilisant 250 Mo de RAM

    • Ce n’est pas un gros problème sur les systèmes qui ne prennent pas en compte les distributions mainstream
  • SysVInit dépend d’utilitaires externes pour démarrer et arrêter les processus

    • Même dans les cas les plus minimaux, il faut un shell pour exécuter les scripts d’init