bk99.de entertain the web since 1997

systemd between integration and the Unix philosophy

Summary

Johannes Findeisen criticises systemd as a complex, tightly coupled Linux suite and contrasts it with OpenRC, runit and s6 as more modular alternatives. The version examined was last updated on 25 July 2026. systemd uses units and cgroups for service and resource management.

Ideas

  • systemd bundles service management, logging, sessions, networking and other system tasks.
  • Strong integration simplifies shared processes but makes it harder to swap individual components.
  • In Johannes’ view, declarative units hide more execution details than shell scripts.
  • Binary journals need special tools for viewing, checking and recovery.
  • OpenRC, runit and s6 distribute responsibility across smaller, interchangeable building blocks.
  • Linux-specific cgroups enable control but limit portability.

Insights

  • Integration and modularity optimise different forms of operational complexity.
  • Transparency depends as much on the administrator’s knowledge as on the file format.
  • Tool dominance turns technical preferences into long-term ecosystem decisions.

Quotes

  • Do one thing and do it well. – Unix maxim quoted by Johannes

Habits

  • The text does not describe any personal routines or recurring ways of working of the author.

Facts

  • The version examined was last updated on 25 July 2026.
  • systemd uses units and cgroups for service and resource management.
  • The comparison treats OpenRC, runit and s6 as alternatives.

References

Critique

  • The polemical framing weighs disadvantages more heavily than systemd’s advantages in integration and management.
  • The text does not always cleanly separate the PID 1 program from suite components that run separately.

Remarks

  • systemd is at the same time an init system, a service manager and a collection of optional components.
  • Which components actually run is determined by the distribution, packaging and local configuration.

Recommendations

  • Compare init systems by concrete operational requirements rather than by their philosophy alone.
  • Practise diagnosis and recovery with journalctl, systemctl and rescue environments.
  • Test alternative init systems on non-critical or virtual machines first.

Read the original article on hanez.org

Search the Web Archive