Gnome-Projekt setzt auf Sandboxes

Das Gnome-Projekt möchte seine Anwendungen in Sandboxes stecken. Nun erklärt Gnome-Entwickler Matthias Clasen die Gründe für diesen Schritt und informiert über den Stand der Dinge.

Clasen nennt in seinem Blog drei Hauptgründe, die diesen Schritt rechtfertigen. Drittanbieter können Anwendungen entwickeln und auf verschiedenen Distributionen verteilen. Indem Anwendungen zudem so wenig wie möglich auf die Host-Ressourcen zugreifen, muss der User ihnen nicht vollständig vertrauen. Nicht zuletzt möchten es die Entwickler einfacher machen, Anwendungen zu schreiben, Jhbuild sei nützlich, aber auch ein Quell endloser Frustration und eine hohe Hürde für Einsteiger.

Die klassische Lösung über statisch gelinkte Executables weise verschiedene Nachteile auf, darunter der Umfang und die nicht geteilten Bibliotheken. Auch Updates seien ein Problem, was die Sicherheit der Executables gefährde. Das Gnome-Projekt will daher Sandboxes einsetzen, die allerdings nicht per se besser seien. Der Gnome-Ansatz besteht darin, Runtimes anzubieten, die für Apps festlegen, was für eine Art Umgebung diese benötigen, um zu laufen. Es ginge also um eine Art “/usr”-Verzeichnis mit festgelegten Inhalten.

Dabei lassen sich nicht nur verschiedene Runtimes nebeneinander, sondern auch unterschiedliche Versionen derselben Runtime installieren. Apps benötigen unter Umständen noch Zusatzsoftware, welche die Runtimes nicht anbieten. Die Apps stecken in einem je eigenen Verzeichnis, das die Metadaten und zugehörigen Dateien enthält, dem App Bundle. Eine Hilfsanwendung ebnet der Sandbox den Weg, indem es Kernel Namespaces einrichtet und Bind Mounts realisiert, um das App Bundle vom Host zu isolieren. Die App Bundle mountet sie unter “/self”, die Runtime hängt sie unter “/usr” ein. Entwickler erhalten dieselbe Runtime, jedoch zusätzlich mit Entwicklerpaketen versehen, als SDK.

Man orientiere sich tatsächlich an kommerziellen App Stores, gibt Clasen zu, könne aber das auf Konsum ausgelegte Modell in eines verwandeln, das den Nutzer beteiligt. So könne dieser per Klick das passende Runtime SDK zu einer App herunterladen, um diese zu verändern. Den Neubau dieser App könnte Gnome Builder übernehmen, das gerade einen erfolgreichen Fundraiser führt.

Der Stand der Dinge ist, dass sich Runtimes und App Bundles pro Nutzer und systemweit installieren lassen, dabei aber mit bestehenden Anwendungen koexistieren. Das ermöglicht graduellen Wandel. OS-Tree verteilt die Anwendungen und Runtimes, andere Tools wären denkbar. Das Build-Tool verwendet “rpmbuild” und RPMs, um Runtimes und Apps zu bauen und ähnelt stark dem “rpm-ostree”-Projekt.

Für Gnome 3.15 gibt es bereits ein Repository mit Beispielanwendungen und einer Yocto-basierten Laufzeitumgebung. Eine grobe Marschrichtung für die weitere Sandbox-Entwicklung, die auch mit den Plänen der Entwickler um Lennart Poettering korrespondiert, gibt Clasen auch an: Eine Referenz-Runtime ist für Gnome 3.16 geplant, zudem will man dafür sorgen, dass Gnomes Softwareverwaltung neben den traditionellen Paketen auch mit den Bundles zurechtkommt.

E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben