Login
Newsletter
Werbung

Fr, 6. Dezember 2013, 12:10

Software::Desktop

Multiprozess-Firefox: Stand der Dinge

Seit Jahren arbeitet Mozilla daran, die Darstellung von Webseiten in Firefox in eigene Prozesse auszulagern. In seinem ersten Blogbeitrag liefert Firefox-Entwickler Bill McCloskey einen Überblick über den aktuellen Stand.

Mozilla Foundation

Die ersten Browser, die separate Prozesse für die Darstellung von Webseiten verwendeten, waren Internet Explorer 8 und Chrome. Zu diesem Zeitpunkt startete Mozilla ein groß angelegtes Projekt namens Electrolysis, um mit Firefox gleiches zu erreichen und die Interaktivität zu verbessern. Dies trug insbesondere in Firefox OS Früchte, das stark auf die Verwendung mehrerer Prozesse und die im Rahmen von Electrolysis entwickelte Interprozesskommunikation aufbaut.

Für Firefox selbst wurde die Prozessaufteilung jedoch seit November 2011 zurückgestellt, um andere Verbesserungen der Interaktivität schneller voranbringen zu können. Das Resultat dieser Verbesserungen ist für jeden deutlich spürbar: Der Speicherverbrauch und die Verzögerungen bei Aktionen haben abgenommen, Geschwindigkeit und Interaktivität sind höher. Inzwischen sind alle »leichteren« Optimierungen vorgenommen, besser werden kann es jetzt nur noch durch die Aufteilung des Browsers in mehrere Prozesse.

Seit Januar 2013 arbeitet der Firefox-Entwickler Bill McCloskey zusammen mit David Anderson an der Prozessaufteilung von Firefox. In seinem ersten Blogbeitrag gibt er nun einen ausführlichen Überblick über den Stand der Dinge. Weitere Details kann man im Projekt-Wiki finden.

Das Ziel ist ein Browser, dessen Hauptprozess mit dem Betriebssystem interagiert, und Prozesse für jeden einzelnen Tab, die sich gegenseitig nicht blockieren können. Die Vorteile liegen neben der Interaktivität in mehr Stabilität, da ein abgestürzter Tab nicht den Browser zum Absturz bringt, und mehr Sicherheit, da sich separate Prozesse besser isolieren lassen. Ein Nachteil ist, dass der Hauptprozess keinen Zugriff mehr auf das DOM der Tabs besitzt. Ein solcher ist aber nicht oft nötig und müsste gegebenenfalls über Interprozesskommunikation (IPC) realisiert werden. Ein weiterer Nachteil ist der höhere Speicherbedarf.

Gerade bei der Sicherheit bringt die Prozessaufteilung große Vorteile. Jeder Tab kann in eine echte, vom Betriebssystem überwachte Sandbox gelegt werden. Sicherheitslücken könnten kaum noch ausgenutzt werden, da diese Prozesse nur über den Hauptprozess Zugriff auf Dateien und andere Ressourcen erhalten. Dagegen ist die bisher verwendete Sandbox in Firefox größtenteils unwirksam.

Wer Multiprozess-Firefox bereits ausprobieren will, kann sich die täglich aktualisierte Firefox-Version von nightly.mozilla.org herunterladen. Nach Angaben der Entwickler sind die grundlegenden Funktionen vorhanden, aber Entwicklerwerkzeuge, Drucken, Abspeichern von Seiten und Unterstützung von Erweiterungen fehlen noch weitgehend. Zur Zeit wird nur ein Prozess für alle Tabs verwendet, statt ein Prozess für jeden einzelnen Tab. Dies soll wohl die Entwicklung vereinfachen und Speicher sparen. Der Overhead für einen einzelnen Prozess ist nicht groß; er liegt wohl bei 10 MB. Werden mehr Prozesse verwendet, gibt es allerdings Möglichkeiten, einige Daten gemeinsam zu verwenden. Das alles muss noch untersucht werden, wie McCloskey ausführt. Dies und die noch ausstehende Untersuchung, wie Multiprozess-Firefox mit den meisten Erweiterungen kompatibel gemacht werden kann, macht es derzeit noch unmöglich, einen Termin anzugeben, wann diese langerwartete Änderung in eine veröffentlichte Firefox-Version einzieht.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung