Nachdem OpenBSD-Entwickler bereits im August 2013 das Jahr-2038-Problem — der klassische 32-bittige UNIX-timestamp wird am 19. Januar 2038 überlaufen — gelöst haben, legt ein Jahr später auch das nicht gerade für seine Innovationskraft bekannte Linux nach, für das es dann auch irgendwann — vielleicht noch dieses Jahr — eine Lösung geben soll. Beeindruckend.
Aber um Entwicklungsgeschwindigkeit geht es im Land der Softwarefreiheit eben nicht, sondern vorrangig darum, nicht Windows zu sein. Als Linuxnutzer sei man mündig und frei, und wenn was nicht passe, könne man ja gehen.
Nun hat Linux aber einige wenige Menschen unter seinen Unterstützern, die den Fehler machen, nur das Beste für alle Linuxnutzer erreichen zu wollen. Zu diesen Menschen zählt Lennart Poettering, der maßgeblich die Entwicklung von PulseAudio — eine Sound-Middleware, die sich im Vergleich mit ALSA dadurch auszeichnet, dass sie nicht funktioniert — vorangetrieben hat und nun im Auftrag seines Arbeitgebers Red Hat eine tolle neue Idee umgesetzt hat, die ebenfalls nicht funktioniert: systemd.
Um zu verstehen, was systemd ist, muss man zunächst einmal verstehen, wie ein UNIX-System oder eines, das sich (wie Linux) dafür hält, eigentlich gestartet wird. Im Gegensatz zu den 70-er Jahren dauert der Startvorgang eines solchen zwar üblicherweise nicht mehr Stunden und bedarf meist keiner händischen Eingriffe mehr, aber es passiert doch jede Menge. Die Steuerung der Geschehnisse übernimmt meist ein “init-System”, etwa SysVinit, Upstart (Ubuntu), OpenRC (Gentoo Linux) oder launchd (OS X); es startet zum Beispiel weitere Systemdienste wie sshd, protokolliert den Startvorgang und gibt gelegentlich kryptische Fehlermeldungen aus. Die Älteren von euch kennen so etwas noch von Windows, die Jüngeren von Linux.
Da die verschiedenen unter Linux benutzten Init-Systeme aber zueinander inkompatibel sind und obendrein zu einem nennenswerten Teil das altbewährte SysVinit nachbilden, dessen Architektur auf heutige Rechnerkapazitäten nicht vorbereitet ist, wurde angeregt, ein neues init-System zu entwerfen und umzusetzen, das die verschiedenen Ansätze zusammenführen soll. Das Schlagwort heißt “One Linux”, ein gemeinsames Linux. Schluss mit der Wahlfreiheit, systemd soll der kleinste gemeinsame Nenner werden. Bereits vor Jahren wurde in Blogs angeregt, dem Wildwuchs der miteinander inkompatiblen Linuxdistributionen ein Ende zu setzen und sich auf eine gemeinsame Distribution zu konzentrieren. Es sieht aus, als wäre das demnächst der Fall.
systemd — “system daemon” — also ist ein Systemdienst, der, grob gesagt, Windows’ svchost.exe nachahmt, indem er nicht nur den Startvorgang, sondern auch den laufenden Betrieb steuert. Er wird damit sozusagen zum Flaschenhals des gesamten Systems, was sowohl auf Servern als auch auf Desktops sehr schnell sehr schmerzhaft werden kann. An Sicherheitslücken mangelt es nicht (wobei die Entwickler Fehlermeldungen gar nicht mögen), entscheidend sind aber die konzeptionellen Probleme. Diese beginnen keinesfalls damit, dass die systemd-Entwickler immer wieder versuchen, ihren eigenen kaputten Code von den Kernelentwicklern beheben zu lassen.
Die vielgerühmte Portabilität von Linux ist mit systemd Geschichte, zu alte Hardware hat Pech gehabt. Natürlich interessiert das den typischen Linuxnutzer, der sich von allem beeindrucken lässt, was irgendwie neu ist, nicht; man kann also davon ausgehen, dass mit ausreichender Verbreitung von systemd Ressourcenverschwendung Alltag sein wird. Dazu passt, dass die Entwickler von systemd kontinuierlich die Fähigkeiten des Dienstes erweitern, der längst nicht mehr nur den Systemstart regeln, sondern das Netzwerk steuern, die Uhrzeit synchronisieren, cron ersetzen und demnächst wahrscheinlich Kaffee kochen können soll.
Für Serverbetreiber besonders lustig: systemd bringt systemd-tmpfiles mit, einen Dienst, der standardmäßig alle 10 Tage das /tmp- und alle 30 Tage das /var/tmp-Verzeichnis leert. Es soll ja Server geben, die länger als 10 Tage am Stück mit den gleichen Daten arbeiten, aber mit systemd ist das wahrscheinlich bald Vergangenheit. Das ist wahrscheinlich ein feature zugunsten des Umweltschutzes. Da systemd mit dem eigenen journalctl auch einen Ersatz für syslogd mitbringt, der Laufzeitprotokolle nicht mehr in einfach durchsuchbaren separaten Textdateien ablegt, wird auch eine einfache Fehlersuche unnötig erschwert.
Hat systemd überhaupt irgendeinen Vorteil? Ja: Es beschleunigt angeblich den Systemstart, weil es Dienste verzögert startet. Dass das Gros der Startzeit die Initialisierung der Hardware betrifft, die durch systemd auch nicht zu schnellerer Hardware wird, wird dabei außer Acht gelassen. Schnell sind Alternativen wie runit zwar auch, aber die haben ein ganz anderes Problem: Weil systemd immer mehr Systemkomponenten absorbiert, wird es zwangsläufig auch zu einer wichtigen Voraussetzung für immer mehr Anwendungen. Der GNOME-Desktop zum Beispiel ist zwar weitgehend portabel, unter Systemen ohne systemd aber fehlen einige Funktionen, und es dürften künftig wohl nicht weniger werden. Wenigstens die KDE-Entwickler wollen vorerst systemd nicht voraussetzen.
Mit systemd macht Linux also einen weiteren Schritt zur Monokultur. Einfachheit und vermeintliche Freiheit werden dem Anschein des Modernen geopfert, die Verzahnung von systemd mit sämtlichen Bestandteilen des Systems lässt nur wenig Entscheidungsfreiheit. OneLinux = zero-choice. Die meisten “großen” Linuxdistributionen (mit Ausnahme von Gentoo Linux und Slackware Linux) sind mittlerweile auf den systemd-Zug aufgesprungen, auch Debian, das sonst eher konservative Entscheidungen getroffen hat, leistete keinen Widerstand. Inwieweit den UNIX-Prinzipien folgende neue Linuxdistributionen wie Void Linux eine Chance haben, sich dauerhaft zu etablieren, bleibt abzuwarten.
Als Alternative wird selbst auf der Linux-Kernel-Mailingliste ausgerechnet OpenBSD empfohlen, dessen Entwickler bereits verkündet haben, API-kompatible Alternativen zu den verschiedenen systemd-Komponenten zu planen.
Vor vielen Jahren machte sich “die Linux-Gemeinschaft” darüber lustig, dass Microsoft seine Betriebssysteme nur wenig flexibel gestaltet. Mittlerweile hat sich der Wind gedreht. Der Linuxdesktop ist längst tot, auf Servern ist Linux aber noch immer verbreitet. Das hat sich demnächst wohl erledigt.

Bis auf dass BSD-Typische Rumgehate auf Linux, gebe ich dir im Bezug auf systemd total recht — es ist Müll, es ist voller Lücken, es ist schlecht designt, und dagegen sieht mein altes geliebtes SysV noch gut aus. Guter Artikel(Wenn wir das ganze gehate streichen)
Linux wäre auch ohne BSD scheiße.
BSD ist ohne Linux scheiße. Die gucken mehr ab, als dir LIeb ist.
Zum Beispiel?
Primär für Linux:
X11, X.org, NM, sysv, GRUB, LILO, yum, LUKS…
X11 (die erste Version stammt von 1984) ist älter als Linux, X.org ein Fork davon, NM kann ich gerade nicht zuordnen, SysV steht für System V und bezeichnet eine UNIX-Version, grub wurde für HURD entwickelt, LILO benutzt kein mir bekanntes BSD, yum und LUKS ebenfalls nicht.
Aber netter Versuch.
NM = network-manager.
dm-crypt wurde von DragonflyBSD aus dem Linux-Kernel übernommen. LUKS ist nur eine Erweiterung dessen, keine Ahnung, ob das auch von DragonflyBSD übernommen wurde.
Ah, danke.
Hm, steht doch alles auf der DragonFly-Website. Ich korrigiere mich: LUKS doch. aber DragonFly BSD ist auch eher untypisch. Quasi Amiga BSD.
scheisse… das gleiche hab ich alles schon vor ewigkeiten gelesen… arch benutzt system jetzt schon sehr lange und da haben auch alle geheult…
hast angst das du in deinem bsd land jetzt auch von systemd gepeinigt wirst?
Das wird eher nicht passieren, höchstens bei PC-BSD oder so …
Was für ein selten bescheuerter Beitrag.
Du hast vollkommen recht!
Sagt wer? Den meisten Entwicklern unter Linux zum Beispiel dürfte Windows herzlich egal sein. Genauso wie mir als Linux-Nutzer BSD herzlich egal ist.
Was funktioniert denn bei PulseAudio nicht? Unter Arch macht es bei mir das was es soll. Die gleiche Frage stelle ich mir bei systemd. Es macht ebenfalls was es soll.
Weiterhin sollte man vielleicht auch einmal anmerken, dass zum Beispiel einige der Probleme mit PulseAudio in dessen Anfängen an fehlerhaften ALSA-Treibern lagen. Diese wurden dann in zusammenarbeit beider Projekte behoben.
Kann es sein, dass du gerade den Dienst systemd mit dem Projekt systemd in einen Topf wirfst?
Wäre nett, wenn du die ganzen Aussagen belegen würdest.
Möglich, dass ich hier auf dem Schlauch stehe, aber was hat systemd mit alter Hardware und deren Unterstützung zu tun?
Viele Funktionen des Projekts systemd, wie die Cron-Funktion sind optional. Ich nutze zum Beispiel cronie, was mit systemd recht wenig zu tun hat. Und wenn ich mich auch wiederhole. Es gibt einmal den Dienst systemd und einmal das Projekt systemd.
Wer ein anderes Verhalten haben möchte oder benötigt, editiert eben /usr/lib/tmpfiles.d/tmp.conf. Was war jetzt noch gleich das Problem?
Systemd biete so einiges mehr:
Service-Dateien sind klein und leicht verständlich.
Der Status eines Dienstes kann zuverlässig erfasst und somit zuverlässig heruntergefahren und (automatisch) neu gestartet werden.
Automatische Berücksichtigung von Abhängigkeiten
Usw.
Mit systemd macht Linux also einen weiteren Schritt zur Monokultur. Einfachheit und vermeintliche Freiheit werden dem Anschein des Modernen geopfert, die Verzahnung von systemd mit sämtlichen Bestandteilen des Systems lässt nur wenig Entscheidungsfreiheit. OneLinux = zero-choice. Die meisten „großen” Linuxdistributionen (mit Ausnahme von Gentoo Linux und Slackware Linux) sind mittlerweile auf den systemd-Zug aufgesprungen, auch Debian, das sonst eher konservative Entscheidungen getroffen hat, leistete keinen Widerstand.
Natürlich hat man weiterhin eine Entscheidungsfreiheit. Man kann auf Distributionen setzen, die systemd nicht nutzen werden. Man kann zu BSD wechseln. Oder man kann übernimmt “einfach” die Weiterentwicklung von sysvinit oder entwickelt etwas das besser ist als systemd. Gerade die letzen beiden Punkte sind aber scheinbar nicht so einfach. Vielleicht gibt es aber einfach auch nicht genug Leute die gegen systemd sind.
Vor vielen Jahren machte sich „die Linux-Gemeinschaft” darüber lustig, dass Microsoft seine Betriebssysteme nur wenig flexibel gestaltet. Mittlerweile hat sich der Wind gedreht. Der Linuxdesktop ist längst tot, auf Servern ist Linux aber noch immer verbreitet. Das hat sich demnächst wohl erledigt.
Gott ist auch schon längst tot. Opel ebenfalls. BSD ist vermutlich noch weniger verbreitet als Linux und bietet keine cgroups. Also auch tot.
Was dieses Gebashe von systemd betrifft, habe ich vor ein paar Tagen auf Reddit einen meiner Meinung nach treffenden Beitrag gelesen:
…I’m a sysadmin, lots of my friends are sysadmins, lots of my acquaintances are sysadmins. Most of them are looking forward to systemd, and the rest don’t seem to have an opinion. There’s a small, vocal minority on the Internet that would prefer we live in the 70s and don’t take advantage of all the features Linux offers in an easy manner.
Das mit der lauten Minderheit trifft es vermutlich ganz gut. Systemd setze ich zum Beispiel sehr gerne ein. Nur muss ich das nicht immer und überall verkünden.
Mal auf meine Links geklickt?
Was an PulseAudio nicht geht, steht zum Beispiel auf
Auch, was die alte Hardware betrifft: das Blaue sind Links.
Toller Stil, einfach zu behaupten, weder PulseAudio noch Systemd würden funktionieren. Ich kann bestätigen, dass beide seit ~ einem Jahr hier brav Dienst tun und mehr leisten als ihre Vorgänger. Wird euch nicht langsam langweiig, Systemd zu bashen. Hört doch endlich mal auf, die Zeit der Leute zu verschwenden, die gerne in Ruhe mit den Mitteln ihrer Wahl arbeiten wollen. Danke.
Wer hat dich gezwungen, deine Zeit mit diesem Artikel zu “verschwenden”?
Naja. Ich als Nutzer von ca. 5 GUI Äpps (Browser, Skype, Quassel, Java-IDE und Pavucontrol) bin auch von OpenRC auf Systemd umgestiegen und sehe das nicht so verbissen. Fakt ist, dass auch OpenRC ziemlich suckt. Es läuft (noch) auf meinem Router und regelmäßig stürzen Services (aiccu grr) ab und OpenRC weiß das auch – aber tut nichts. Ich habe keine Lust, mich zwischen drei Syslogs zu entscheiden, um dann noch zusätzlich Regeln zu definieren, weil manche Programme trotzdem ihre Logs nach stdout/stderr kotzen. Eigenen NTP-Client? Ok, ich habe eh keine großen Anforderungen daran. Eigener Crond? Nö, mir ist
dcronlieber. Meine Wahlfreiheit.Systemd ist zwar eine größere Software, allerdings lässt sich die zumindest unter Gentoo sehr modular bauen und wenn ich kein chron/resolved/etc haben will, dann bau ich den nicht mit. Wahlfreiheit unter Lunix geht auch mit Systemd. Wenn irgendeine ranzige Desktop-Umgebung nun zwangsläufig Systemd benötigt, dann kann ich diese nicht benutzen. Wenn ich in den Abhängigkeitsgraph von meinen Paketen schaue, wird mir nicht wegen Systemd schlecht. Sondern eher wegen glibc. Aber das interessiert niemanden.
Und zu Pulseaudio: ALSA ist gut, solange man über ein Ausgabegerät abspielt. Ich habe drei (Bluetooth, USB-Headset und Lautsprecher/Klinke). Das geht ohne Software-Mixer nicht ohne endlosen Schmerzen. Das Konzept von PA ist ziemlich cool, allerdings ist die Bedienung außerordentlich schlecht und bedarf eine dämlichen GUI mit ungefähr 100 Abhängigkeiten.
Außerdem: Jehova! Jehova!
Danke für den Artikel, er bestätigt meine Eindrücke.
Mit Manjaro lief Pulseaudio nicht richtig und der Ton ging weg, wenn ich ein Gerät an den Klinkenstecker ansteckte. ALSA funktioniert.
Bis vor kurzem konnte ich den Rechner nur mit “sudo shutdown ‑h now” stoppen, nicht per Button in der GUI.
Der Hochlauf dauert deutlch länger mit Manjaro als mit Xubuntu.
Aber die Manjaro-Entwickler haben wahrscheinlich keine Ahnung, wie das richtig konfiguriert wird, sind zu dumm…
Für was und wen ist eigentlich systemd da ?
Große Software ist immer verdächtig. Ich will ein kleines System, das vielleicht nicht alles komfortabel kann, aber absolut zuverlässig und sicher ist!
(ok dann hätte ich Debian als Distro nehmen müssen, aber das befriedigt nicht mein Bastelbedürfnis ;-). Und wenn ich bastele, will ich mich auf alles Andere verlassen können und es sollte einfach sein, also besser Upstart oder Ähnliches als systemd)
Bastle doch runit (siehe Artikel) in Debian rein. Ist das dann genug gebastelt?
Zuviel Gebastel!
Dieses Void Linux z.B. läuft ja auch mit runit…ich verstehe nicht, was daran “Monokultur” sein soll. Wer hält denn Voidlinux davon auf, runit weiterzubenutzen? Wer hält die Entwickler von runit an der Arbeit an ihrem Projekt auf? Wir haben bisher eine Fragmentierung in viele Systeme, es wird wohl irgendwann eine Fragmentierung in ein paar Systeme weniger sein, wenn Forks dazukommen, nicht einmal das. Welchen Anspruch dieses OneLinux erhebt, ist doch völlig egal. Mit freier Software kann jede Distribution machen, was sie will.
Es geht keine Freiheit verloren, es geht auch kein Komfort verloren. Es gibt genug Alternativen, diese scheinen auch nicht zu verschwinden.
Wenn ich nun irgendeinen Code bastle und verlange, dass dieser in jedes *BSD reinkommt: Haben *BSD-Nutzer dadurch die Freiheit verloren, meinen Code nicht zu benutzen? Jedes *BSD darf weiterhin gerne auf meine Errungenschaft pfeifen. Wo ist da der Unterschied zu OneLinux?
Wir haben mehrere große Desktops verfügbar, für die Fans neuartiger, “schlanker” (klickibunti) Konzepte, also die Gnome-Zielgruppe, wächst das Angebot sogar aktuell, z.B. durch den Budgie Desktop. Klassische Systeme gibt es genug, und kleine Alternativen wie i3 werden wohl kaum systemd als Abhängigkeit mitbringen. Wen interessiert es also, ob Gnome und 1–2 andere Desktops sich für diese Abhängigkeit entscheiden? Die Freiheit ist weiterhin da.
Insbesondere Gentoo und damit auch Sabayon (und viele andere Systeme mit source-basiertem Paketsystem) bietet doch meines Wissens die Möglichkeit, Software nur mit den Funktionen der eigenen Wahl zu installieren. Void Linux sollte das auch können, bei Arch, Parabola und Chakra können über das ABS bzw. deren Äquivalente leicht angepasste Pakete erstellt werden. Da kann sich dann jeder erfahrene Nutzer ein angepasstes systemd ohne die Feautures bauen, die er vermurkst ansieht. Wer das nicht kann, muss auch heute schon das nehmen, was er bekommt.
Wenn wir schon auf diesem Niveau diskutieren: *BSD ist auf jeder Hardware tot!
http://en.wikipedia.org/wiki/Usage_share_of_operating_systems#Servers_on_the_Internet
1% Marktanteil bei Servern, fangen wir lieber gar nicht erst vom Desktop an. Auf dem es für Linux übrigens aber auch gar nicht so schlecht aussieht: Linux = Linux-Kernel, da gehören alle Android-Systeme, alle Chromebooks und (meines Wissens nach) Firefox OS dazu.
Sind sicher alles nur ahnungslose User, die noch nicht die Erleuchtung von *BSD erhalten haben. Die leiden sicher alle Höllenqualen, wenn die erfolgreich ihre Server warten, sonstwie produktiv sind oder auf Ubuntu ein Spiel spielen. Bekommt FreeBSD eigentlich endlich Nvidia Optimus auf die Reihe? Dieses total lahme Linux hat da PRIME und bumblebee entwickelt.
runit sieht nach einem interessanten Projekt aus. Ich frage mich, was da demnächst noch alles an Alternativen auf uns zukommt. (Dieses LSD Linux zum Beispiel.) Void Linux ist aber auch “neu”, so weit ich das sehe, und versucht “UNIXig” zu sein. Ich bin gespannt, wie lange die durchhalten. Ich bin noch nicht dazu gekommen, es mal selbst auszuprobieren, aber werde das wahrscheinlich noch nachholen.
Unter Linux wird mit der Zeit alles Wichtige von systemd abhängig sein, jedenfalls Desktopanwendungen. GNOME ja jetzt schon, KDE wohl (über logind) auch demnächst. Da bleibt nicht viel übrig. Ja, ich nutze am Liebsten awesome wm, aber es gibt ja noch mehr als nur den Desktop selbst auf dem Desktop.
Das iPhone stirbt nicht! (Leider.) Und Marktanteile, naja. Wie viel hat Linux auf dem Desktop? 1,9 Prozent?
Versteh’ mich nicht falsch, ich halte *BSD auch nicht für der Weisheit letzter Schluss. Mein Hauptdesktop ist ein Windows und bleibt das wohl auch noch eine Weile. Ich glaube nicht, dass es ein “Allheilmittel” in Form eines Betriebssystems gibt.
Ich kann mir nicht vorstellen, dass XFCE, LXDE, MATE und die vielen kleinen Desktops von systemd abhängig sein werden. Welchen technischen Grund gäbe es denn dafür? Von Gnome gibt es ja mittlerweile genug Forks (Deepin, Cinnamon etc.), keine Ahnung ob diese dann eben die Nachfolge von Gnome auf Systemen ohne systemd antreten. KDE wäre aber wirklich ein Verlust, da gibt es keine adäquate Alternative.
Diese Desktops gibt es ja auch für *BSD. Wird es dann dort ebenfalls keinen Gnome und kein KDE mehr geben? Falls doch, sollte es doch auch unter Linux ohne systemd lauffähig bleiben. Gnome macht ja sowieso alles, um nur auf relativ neuer Hardware mit 0815-Konfiguration (=Ubuntu) lauffähig zu sein…ansonsten verstehe ich wirklich nicht, wieso sich ein Desktop an systemd binden soll.
Das ist ziemlich leicht zu beantworten: Wenn ein Teil der Abhängigkeiten, die diese Desktops schon jetzt haben (Stichwort: dbus), nur noch als systemd-Modul weiterentwickelt wird, bleibt nicht viel übrig. Und ja, KDE würde ich auch vermissen.
PC-BSD (traditionell KDE-freundlich) hat ja sicherheitshalber mit der Entwicklung von Lumina (momentan quasi LXQt mit weniger Funktionen) begonnen, GNOME dürfte sich unter BSD bald erledigt haben. Der Maintainer für OpenBSD hat vor einer Weile schon mitgeteilt, es sieht düster aus; und OpenBSD war immer eines der ersten BSDs mit neuen GNOMEs (mit M:Tier steckt eine Firma da einige Kapazitäten rein).
Gruselig. Hoffentlich verweigern sich die Entwickler der anderen Projekte einer solchen Übernahme durch systemd.
Auf diese Idee bin ich gar nicht gekommen, so ein Schwachsinn. Über den Egoismus von Canonical mosern und sich gleichzeitig den Launen eines einzelnen Projekts unterwerfen…mal schauen, ob es dazu kommt. Solange PC-BSD sich nicht zu einem boot auf meiner Hardware überreden lässt, bleibe ich gezwungenermaßen optimistisch. Oder bis Kolibri OS den Durchbruch schafft.
Vergiss nicht: Es gibt auch OpenBSD und NetBSD. Außerdem verschiedene weitere Desktop-FreeBSDs, darunter GhostBSD. Du musst dich nicht auf eines versteifen. ;-)