systemd
siehe auch englische Version der Seite
Argumente gegen Systemd
ideologische
- systemd ist monolitisch
- widerstrebt der Unix-Philosophie („do one thing and do it well“) * Kontrollsucht
- gewollte Dominanz gegenüber anderen Projekten, also wieder eigene Formate, obskures Verhalten etc.
- tötet andere Projekte durch Bindung von Entwicklerressourcen
- Poettering ist ein arrogantes Arschloch
- Kay als Positivbeispiel
- komisches Kleinkindverhalten bei Bugs, die ihn nicht interessieren
- PID-1/0 sollte so sparsam wie möglich, stabil wie möglich, und änderungsarm wie möglich sein. Alles darüber kann ein Daemon machen
praktische / sachliche
- DNS
- Google war default DNS in systemd-networkd
- NTP
- Die wollten nicht, das systemd den allgemeinen NTP benutzt, sondern einen eigenen sub-ntp anlegt(for free, also ohne probleme, nur ein "Ja" entfernt und es läuft), und Poettering wollte das partout einfach nicht
- Abwärtskompatibilität
- mangelnde Kompatibilität mit anderen Tools
- udev
- Format der Logs
- binär. Checksumme kaputt → Datei kaputt.
- Lösung: zusätzlich in syslog loggen
- Logging in Syslog heißt doppelte Logs
- Lösung: Journal ausschalten
- nicht mit Text-Tools durchsuchbar, journald wird benötigt
- Checksummen gingen auch mit Textdateien
- sehr viele Codezeilen
- schlechtere Wartbarkeit
- schlechtere Verständlichkeit
- der Code, um Bash-Scripts mit systemd zu starten, ist größer als sysvinit
- einzelne Komponenten von systemd (journald, networkd) funktionieren nicht ohne systemd-init
- Komplexität
- Größe
- Abhängigkeiten der einzelnen Komponenten untereinander
- systemd mit PID1 hängt nicht nur von PID0 sondern auch von PID2 und PID>2 ab
- die unersetzbarkeit des einen Modules durch das andere, weil alle untereinander derart Abhängig sind, das jede Änderung durch alle abhängigen Module getragen wird und werden muss
- Höherer Bedarf an Systemressourcen
- INI-Dateien als Frankenprogrammiersprache (Alternative: openRC)
- man muss mehr tippen, wenn man sehr viele Services oder Timer anlegt muss man sich eventuell ein Grundgerüst kopieren
Argumente für systemd
- es ist in C geschrieben und u.a. daher recht schnell und effizient in dem, was es tut
- es kann mehrere Services gleichzeitig starten (nicht wie bei sysv)
- man kann tatsächliche Abhängigkeiten definieren (die nicht wie bei sysv in Shellscripts überprüft werden)
- die meisten Distributionen nutzen es (Debian, Ubuntu, CentOS, Fedora, Arch Linux)
- es funktioniert