Mozilla: Multiprozess-Architektur für Firefox

Internet Explorer, Chrome und mittlerweile auch Safari machen es vor, sie spalten den Browser in mehrere Prozesse auf, um dessen Geschwindigkeit, Stabilität und Sicherheit zu erhöhen. Bei Mozilla hatte man einen entsprechenden Umbau im Jahr 2011 zunächst eingestellt und sich mit dem Projekt Snappy(öffnet im neuen Fenster) darauf konzentriert, gezielt die Reaktionsgeschwindigkeit des Browsers kurzfristig zu verbessern. Seit Januar 2013 wurden die Arbeiten aber wieder aufgenommen, mittlerweile steht das Grundgerüst, das mit den aktuellen Nightly Builds von Firefox auch schon ausprobiert werden kann.
Der Umstieg auf eine Multiprozess-Architektur soll Firefox schneller, stabiler und sicherer machen. Allerdings sind die zu erwartenden Geschwindigkeitssteigerungen eher gering, denn viele einfache Maßnahmen wurden im Rahmen des Projekts Snappy bereits umgesetzt, was bleibt, ist eher kompliziert. Es erlaubt, Javascript und Layout getrennt von der Ereignisschleife des Browsers abzuwickeln, ohne dass Rücksicht auf Locking oder Thread-Sicherheit genommen werden muss.
Mehr zu gewinnen ist in Sachen Sicherheit: Gelingt es einem Angreifer heute, eine Sicherheitslücke in Firefox zu nutzen, ist es möglich, den Rechner des Nutzers zu übernehmen. Eine Multiprozess-Architektur macht es recht einfach, ein Sandboxing umzusetzen, da die einzelnen Prozesse in ihren Möglichkeiten stark eingeschränkt werden können. Das soll es schwerer machen, über Sicherheitslücken das gesamte System zu übernehmen.
Die Aufspaltung in mehrere Prozesse soll zudem die Stabilität erhöhen, denn bringt eine Website einen einzelnen Prozess zum Absturz, so läuft der Browser selbst weiter.
Da die Arbeiten an der Multiprozess-Architektur von Firefox in dessen Hauptentwicklungszweig vorgenommen werden, können die Neuerungen schon heute in den Nightly Builds von Firefox ausprobiert werden. Dazu muss dort unter about:config die Variable "browser.tabs.remote" auf "true" gesetzt werden. Firefox wird dann die Titel einzelner Tabs unterstrichen darstellen, was anzeigt, dass dieses Tab in einem eigenen Prozess gerendert wird.
Dabei soll die Multiprozess-Architektur nur minimal mehr Arbeitsspeicher benötigen als der bisherige Ansatz. In einem Test mit 50 offenen Tabs lag der Unterschied laut Mozilla bei nur 10 MByte, wobei Firefox insgesamt knapp 1 GByte Speicher belegte.
Wann Firefox offiziell mit einer Multiprozess-Architektur veröffentlicht werden soll, steht noch nicht fest. Noch haben die Entwickler auch einiges an Arbeit vor sich. Details zur Multiprozess-Architektur von Firefox haben Bill McCloskey(öffnet im neuen Fenster) und David Rajchenbach-Teller(öffnet im neuen Fenster) in Blogbeiträgen erläutert.



