10 pontos por GN⁺ 2024-11-04 | 4 comentários | Compartilhar no WhatsApp
  • O systemd é um conjunto integrado de aplicações relacionadas ao gerenciamento do sistema, substituindo o processo init tradicional e incluindo várias funções como gerenciamento de sessões de usuário, gerenciamento de dispositivos, logging e temporização
  • A maioria dos usuários de Linux não se interessa pelos prós e contras do systemd, mas alguns são fortemente contra ou a favor
  • As principais distribuições Linux adotaram o systemd, principalmente por causa das vantagens em ambientes de desktop comuns

Problemas no Linux embarcado

  • Em sistemas embarcados, as vantagens do systemd podem se tornar desvantagens
  • Usando o consumo de memória no Raspberry Pi 3B como exemplo, o systemd usa mais recursos do que o SystemV init
  • Os daemons de logging do systemd, como o systemd-journald, também consomem muitos recursos
  • Em ambientes embarcados, são necessárias alternativas menores, e o systemd não é otimizado para esses cenários

Complexidade do systemd e tempo de boot

  • O systemd pode reduzir o tempo de boot, mas em sistemas embarcados ele pode, ao contrário, aumentá-lo.
  • A complexidade e os recursos do systemd são necessários em ambientes gerais, mas muitas vezes são desnecessários em ambientes embarcados.

Ausência de alternativas

  • Muitos dos serviços substituídos pelo systemd têm alternativas menores e mais rápidas para ambientes embarcados, mas alguns já não têm mais alternativas
  • Por exemplo, o daemon udev foi integrado ao projeto systemd, e quase não há alternativas independentes

Expansão do systemd e redução das alternativas

  • O systemd inclui muitas funcionalidades e oferece conveniência para os mantenedores de distribuições.
  • À medida que o systemd absorve cada vez mais funções, diminui a motivação para manter alternativas.
  • Isso pode causar problemas quando o systemd não é adequado para ambientes embarcados.

Conclusão

  • O systemd pode ser menos eficaz em ambientes embarcados do que alternativas tradicionais.
  • Está cada vez mais difícil encontrar distribuições Linux principais que não usem systemd.
  • Com a expansão do systemd, o Linux está caminhando para um futuro em que será difícil imaginá-lo sem systemd.
  • É preciso estar preparado para desenvolver ou manter alternativas e continuar apoiando distribuições que não usam systemd

4 comentários

 
iolothebard 2024-11-08

Onde é que o problema seria só o systemd…

 
ganadist 2024-11-06

O init do busybox é uma excelente alternativa ao systemd para dispositivos embarcados.
E, em sistemas com restrições como dispositivos embarcados, não há necessidade de usar o udev; basta incluir nós de dispositivo fixos no sistema de arquivos raiz.

 
plaaat0102 2024-11-05

No meu caso é uma exceção das exceções, mas, como alguém que instala Ubuntu em um Galaxy Tab e ainda usa o VS Code nele, às vezes dá até vontade de chorar por causa do systemd..

 
GN⁺ 2024-11-04
Opiniões do Hacker News
  • O systemd resolve muitos problemas, e a comunidade também é muito responsiva e prestativa

    • Às vezes há problemas estranhos, mas sempre existe uma solução
    • O uso de memória não é importante, e a maioria dos dispositivos Linux embarcados tem 1 GB de RAM ou mais
    • Em dispositivos pequenos, usa-se Zephyr ou FreeRTOS
  • OpenEmbedded/Yocto, Devuan e Gentoo oferecem vários sistemas de init

  • Rustysd é um gerenciador de serviços que replica parte do comportamento do systemd

    • Fornece funcionalidades centrais e pode oferecer um gerenciador de serviços semelhante ao systemd em várias plataformas
  • Quem prefere systemd são principalmente os mantenedores de distribuições

    • O systemd fornece vários utilitários de sistema em uma única grande compilação
  • A filosofia Unix consiste em pequenas ferramentas que resolvem problemas

    • O systemd era pequeno no início, mas agora até permite videoconferência baseada na web
  • O runit é excelente para supervisionar aplicações e serviços

    • É embutido no BusyBox e muito leve
    • A configuração é muito simples e também inclui funcionalidade de logging
    • Implementa a filosofia Unix quase perfeitamente
  • É possível executar um sistema embarcado sem udev

    • Isso é possível ao usar periféricos fixos e módulos do kernel
  • O RPi transforma o formato de placas de controle industrial em desktop

    • Muito software não foi escrito tendo esse segmento em mente
  • O Chimera Linux está seguindo uma direção interessante em gerenciamento de serviços e gerenciamento de login/assento

    • O uso de extensões de glibc e gcc pelo systemd é um problema
  • O tamanho de instalação do systemd é o maior problema no Linux embarcado

    • Em dispositivos com 64M de RAM e 128M de flash NAND, 5M de systemd é ineficiente
  • O systemd causa problemas no Linux embarcado por usar 250 MB de RAM

    • Em sistemas que não consideram distribuições mainstream, isso não é um grande problema
  • O SysVInit depende de utilitários externos para iniciar e parar processos

    • Mesmo no caso mínimo, é necessário um shell para executar scripts de init