ZitatAlles anzeigen
Der Initialisierungsdämon Systemd legt ab sofort das Verzeichnis /run im Dateibaum an. Das ist zwar nur eine kleine technische Änderung, kommt jedoch einer politischen Revolution für Linux gleich.Die neue Version des Initialisierungsdaemons Systemd legt das Verzeichnis /run in dem Wurzelverzeichnis einer Linux-Distribution an. Das hat der Red-Hat-Angestellte Lennart Poettering in einem Eintrag auf der Mailingliste der Fedora-Entwickler bekanntgegeben. Der Daemon systemd soll unter anderem den Bootvorgang beschleunigen. Unter dem Titel "Was macht das /run-Verzeichnis auf meinem System und wo kommt es her?" erklärt und begründet Poettering die Änderung.
Die Änderung sei zwar technisch eher klein, allerdings sei die politische Reichweite sehr groß. Immerhin wird ein neues Verzeichnis auf oberster Ebene im Dateibaum angelegt. Von nun an liegen im /var-Verzeichnis bleibende Laufzeitdaten, im /run-Verzeichnis die veränderlichen Laufzeitdaten.
Wohin gehören Laufzeitdaten?
Zur Erklärung schreibt Poettering, dass viele Programme im frühen Bootprozess ihre Daten versteckt in das /dev-Verzeichnis ablegten. Darunter waren zum Beispiel udev, mount oder systemd. Der Grund dafür sei einfach: /dev ist ein temporäres Dateisystem (Tmpfs) und deshalb frühzeitig im Bootprozess erreichbar. Allerdings seien Laufzeitdaten keine Geräte und gehörten deshalb nicht in das Verzeichnis, so die Meinung des Entwicklers. Auch werde /var/run häufig zu spät eingehängt, da /var ein anderes Dateisystem sein könnte. Das Verzeichnis /run, soll diese Lücken schließen. Ein im Bootprozess frühzeitig erreichbares Tmpfs für Laufzeitdaten soll so das Starten des Systems beschleunigen.
Auch sei nicht klar, warum bestimmte Daten in /var/run und andere in /dev abgelegt würden. Viele Distributionen hätten dies bis heute unterschiedlich gehandhabt. So wurde bei Ubuntu zum Beispiel das Verzeichnis /var/run als Tmpfs eingehängt, noch bevor /var selbst eingehängt wurde. In den vergangenen Wochen diskutierten unter anderem Entwickler der Distributionen Debian, Ubuntu, Suse und Fedora miteinander, um das Problem mit den Laufzeitdaten in den Griff zu bekommen. Schließlich einigten sie sich, dass nur ein Verzeichnis auf oberster Ebene im Dateibaum eine zufriedenstellende Lösung darstelle.
Keine politischen Debatten, einfach umsetzen
Statt eine große Debatte zu führen, implementierte Poettering kurzerhand die Neuerung. Das /run-Verzeichnis wird ab sofort in den Entwicklerversionen von Fedora und Suse zur Verfügung stehen. Debian und Ubuntu werden in zukünftigen Versionen nachziehen. Die Vorteile des neuen Verzeichnisses sind laut Poettering offensichtlich. Es gibt nur ein Tmpfs für die Laufzeitdaten, die nicht mehr vor dem Admin versteckt werden. Die Entwickler hätten sich ebenso distributionsübergreifend auf einen Standard geeinigt.
Sich der riesigen Änderung bewusst, beendete Poettering die Ankündigungs-E-Mail mit den Worten "Flame Away!". Die Antworten teilen sich wie erwartet in zwei Lager. Dabei bleiben große Flame-Wars oder Beleidigung unter der Gürtellinie außen vor und es wird eher sachlich diskutiert. Der größte Einwand gegen /run ist, dass es nicht standardkonform sei. Es verstoße zum Beispiel gegen die Richtlinien des Filesystem Hierarchy Standard. Dieser ist allerdings bereits seit sieben Jahren nicht mehr verändert oder aktualisiert worden.
Die Befürworter hingegen überschlagen sich mit Lob für Poettering. Diese reichen von einfachen Danksagungen bis zu Sätzen wie: "Das ist kein Feature, das ist Evolution!" Der Grundtenor bei den Befürwortern ist vor allem Lob für die rationale Herangehensweise Poetterings. Statt sich politischen Streitereien hinzugeben, habe er eine einfache Lösung für viele Probleme implementiert.
Experimentierfreudige Linux-Nutzer können das neue Systemd in der Preview von Fedora 15 ausprobieren. Der Quellcode von Systemd steht auf den Webseiten des Projekts zur Verfügung und kann via Git oder HTTP heruntergeladen werden.
ZitatAlles anzeigenDistributionen führen neues Verzeichnis /run ein
Fedora wird schon in der im Mai kommenden Version 15 das Verzeichnis /run einführen. Nachdem /var/run als problematisch erkannt wurde und die Distributionen diverse Workarounds erfinden mussten, soll damit /var/run allmählich verschwinden. Debian, Ubuntu und openSUSE wollen sich dem Vorhaben anschließen.
Von Hans-Joachim BaaderLennart Poettering kündigte auf der Fedora-Mailingliste an, dass das Verzeichnis /run schon in Fedora 15 Einzug halten wird. Es wird von Poetterings sytemd ebenso genutzt wie von diversen anderen Programmen zur Systemverwaltung. Was der Grund für die beginnende Umstellung von /var/run auf /run ist, erläutert Poettering in seiner Ankündigung.
/var/run ist für Programme gedacht, die Laufzeitdaten vorübergehend speichern wollen, beispielsweise ihre Prozess-ID, Sockets oder Named Pipes. Nach einem Neustart des Systems haben diese Daten keine Bedeutung mehr und werden neu angelegt. Ein Problem dabei ist, dass /var auf einer separaten Partition liegen kann und daher am Anfang des Bootvorgangs noch nicht zur Verfügung steht. Aus diesem Grund implementierten die Distributionen verschiedene Workarounds. Fedora und andere platzierten die Daten teilweise in unsichtbaren Verzeichnissen unter /dev, weil dieses Verzeichnis meist als RAM-Disk implementiert ist. Allerdings ist es unerfreulich, dass /dev auf solche Weise zweckentfremdet wird, und die Verteilung der Daten auf mehrere Verzeichnisse ist aus Administratorsicht ebenfalls nachteilig.
Auch Debian und Ubuntu erfanden Workarounds: Debian legte ein Verzeichnis /lib/init/rw an, Ubuntu mountete eine RAM-Disk auf /var/run, unter Umständen noch bevor /var selbst gemountet wurde. Für Poettering ist klar, dass die Laufzeitdaten weder nach /dev noch nach /var/run gehören. Mit der Verschiebung nach /run werden alle Workarounds überflüssig, und die Einheitlichkeit wird wieder hergestellt. openSUSE, Debian und Ubuntu und andere Distributionen unterstützen laut Poettering die Änderung.
Technisch ist die Änderung simpel. In Fedora 15 wird /run als RAM-Disk implementiert, und /var/run ist lediglich ein alternativer Name (Bind Mount) dafür. Zudem wird /var/lock zu einem Bind Mount auf /run/lock. Die Bind Mounts sollen in Fedora 16 durch symbolische Links ersetzt werden. Anwendungen, die dem aktuellen Filesystem Hierarchy Standard (FHS) von Linux entsprechen, können unverändert laufen.
Poetterings Vorschlag wurde fast einhellig begrüßt. Ein Kommentator meinte allerdings, dass das den FHS verletze, was jedoch falsch ist. Der über sechs Jahre nicht aktualisierte FHS soll außerdem angepasst werden. Dies warf am Rande der Diskussion die Frage auf, wie relevant FHS und die Linux Standard Base noch sind und ob nicht aktuelle Distributionen wie Fedora den Standard definieren. Das ist allerdings ein anderes Thema, das von den Gruppen, die die LSB und FHS (als Teil der LSB) definieren, angegangen werden muss.