Der Fuchs ist in den letzten Monaten immer lauter durch den Busch gerannt, und spätestens seit der Bekanntgabe von Nightly Builds stolpert man immer wieder über "Servo". Servo ist der Codename eines Mozilla Forschungsprojekts, welches die Vorstellungen

an eine moderne, schnelle und sichere Browser-Engine vereinen soll. Und diese Generalüberholung unter der Haube ist auch zwingend notwendig.

 

Old Kids on the Block

Denn der Browser als Anwendung ist mittlerweile nicht nur aus Anwendersicht die meist genutzte und damit kritischste IT-Anwendung, alle modernen Browser vereinen auch die Tatsache, dass sie auf jahrzehntealten Engines basieren. Die großen drei Engines WebKit (veröffentlicht 2005, aber als Abspaltung des KDE-Projekts KHTML, welches im Jahr 1998 veröffentlicht wurde), Gecko (veröffentlicht im Jahr 2002) und Trident (veröffentlicht 1997) waren in den letzten Jahren die Grundpfeiler für die dominierenden  Browser Apple Safari, Mozilla Firefox und Microsoft Internet Explorer. Doch dieses Dreiergespann scheint sich jetzt endgültig aufzulösen. Der erste Ansatz war von Google zu erkennen, als im Jahr 2013 die Abspaltung von Webkit bekanntgegeben wurde. Grundlage des Chrome Browsers sollte die neue Engine Blink sein. Der nahezu in der Versenkung verschwundene Browser Opera setzt ebenfalls auf die Google Engine Blink. Auch wenn Blink zu den neueren, modernen Engines gehört, hat auch dieser Wurf etwas mit den drei großen gemeinsam. Alle genannten Engines sind in C++ geschrieben, und das ist laut Aussage der Mozilla-Entwickler die grundlegende Ursache der Sicherheitsproblematik.

 

Geschaffen, um zu bestehen

Was seinerzeit als moderne Programmiersprache galt, wird heute zunehmend als Risiko betrachtet, nicht zuletzt nach dem Heartbleed Bug ist es einfach zu erkennen, dass das Speicher-Management der Programmiersprache C und C++ durchaus verbesserungsfähig ist. Wenn man darüber hinaus durch den Mozilla Firefox Bugtracker liest, fällt es sehr leicht, die alten Zöpfe abzuschneiden und die Anwendung Browser komplett neu zu erfinden. Grundlage der neuen Engine ist die Programmiersprache Rust, welche ebenfalls aus der Mozilla Research Schmiede stammt. Der Kernansatz bei der Entwicklung dieser Programmiersprache lag auf dem Punkt Sicherheit. Es sollte ausgeschlossen werden, dass Pufferüberläufe oder nicht erlaubte Speicherzugriffe überhaupt möglich sind. So sind die beiden Entwicklungsstränge Rust und Servo stark identisch und am Endes des Tages eine Symbiose. Ist Servo doch in Rust geschrieben (und damit u. E. die einzig bekannte Implementierung), um damit Geschwindigkeit und Parallelität zu erreichen, ohne dabei besonders aufgebläht zu sein.

 

Geschwindigkeit durch Parallelität

Der Siegeszug des Webs und damit auch des www ist unbestritten. Die Job-Beschreibung „Web-Worker“ manifestiert die Tatsache, dass in einem Browser heutzutage eigentlich keine Web-Seiten sondern Web-Anwendungen angezeigt werden. Um für diese weitere Entwicklung vorbereitet zu sein, soll die Servo Engine nahezu alle Prozesse parallelisieren können, um damit Mehrkernsysteme besser ausnutzen. Von rein technischer Betrachtung her bezieht sich die Parallelisierung nicht nur auf Mulit-Core-CPU's sondern auch auf die GPU's. Auch wenn das Projekt Servo noch sehr jung und die weitere Entwicklung schwer abzusehen ist, so kann man bereits jetzt das Potential erkennen. Der Google-Entwickler Jake Archibald hat die Servo Engine mit einigen anderen Engines verglichen, indem er immer die gleiche Seite gerendert hat. Die Ergebnisse sind beeindruckend:

Chrome Canary - 15 FPS

Mozilla Firefox Developer - 9 FPS

Apple WebKit Nightly - 5 FPS

Mozilla Servo - 60 FPS

Auch wenn diese Kennzahl nichts zu Stabilität oder Sicherheit aussagt, ist die grundlegende Performance dieses völlig neuen Engine Ansatzes sehr interessant und macht Lust, die weitere Entwicklung des Projekts zu verfolgen. Nach aktueller Aussage soll Servo in Zukunft die Gecko Engine erweitern bzw. ersetzen und somit ein Bestandteil von Firefox sein. Eine weitere sehr spannende Entwicklung des Projekts ist, dass die Darstellung der Browser-Engine ebenfalls mit Webtechnologien umgesetzt wurde.

Wir sind sehr auf die weitere Entwicklung dieses Open-Source-Projekts gespannt!

Weitere Informationen finden sich hier: Servo