Mozilla Firefox OS: Das kann der Fuchs für Smartphones

 2/6
Nicolas La Rocco
57 Kommentare

Was ist Firefox OS?

Firefox OS erblickte im Sommer 2011 unter dem Namen „Boot to Gecko“ das Licht der Welt, als Dr. Andreas Gal, Director of Research der Mozilla Corporation, über die Mailingliste mozilla.dev.platform das Projekt ankündigte. In dem Beitrag erklärt Gal, dass Mozilla davon überzeugt sei, dass das Web die proprietären Lösungen einzelner Anbieter im Bereich Anwendungsentwicklung ersetzen könne. Um offene Web-Technologien als bessere Grundlage für Anwendungen auf mobilen Geräten und dem Desktop-PC zu verwirklichen, müsse man mit dem Web an die Grenzen des Machbaren gehen. So möchte Mozilla mit konkurrierenden Systemen nicht nur gleichziehen, sondern diese in gewissen Bereichen sogar übertrumpfen.

Mozilla Developer Network
Mozilla Developer Network

Dafür brauche es neue Web-APIs, also Programmierschnittstellen, für Dinge wie Telefonie, SMS und Ähnliches; ein Rechte-Modell, sodass diese neuen Fähigkeiten sicher von Webseiten und Anwendungen angesprochen werden können; eine bootfähige Grundlage entwickelt für Android-kompatible Geräte; und die entsprechenden Anwendungen, um die Fähigkeiten des Systems zu erproben. Zu dieser Zeit stecke das gesamte Projekt noch in den Kinderschuhen, erst ein Jahr später, im Juli 2012, erfolgte die Umbenennung zu Firefox OS, abgeleitet von Mozillas Browser.

Gonk, Gecko und Gaia

Firefox OS ist in die drei Kernkomponenten Gonk, Gecko und Gaia unterteilt, wobei besonders Gecko dem ein oder anderen als Rendering- oder auch Layout-Engine von Firefox und anderen Browsern bekannt sein könnte.

Den Anfang macht allerdings Gonk, ein Betriebssystem auf sehr niedriger Ebene, das sich aus einem Linux-Kernel und der Hardwareabstraktionsschicht, die den Kernel und weitere Software von der Hardware trennt, zusammensetzt. Nur diese Schicht kann direkt auf die Hardware zugreifen, Anfragen anderer Software werden über die Abstraktionsschicht geregelt.

Der Kernel und verschiedene Programmbibliotheken bestehen aus geläufigen Open-Source-Projekten wie Linux, libusb oder bluez. Andere Elemente der Hardwareabstraktionsschicht teilt sich Firefox OS mit Android. Dazu gehören zum Beispiel GPS und die Kamera. Mozilla beschreibt Gonk als extrem einfache Linux-Distribution und als sogenanntes „porting project“ von Gecko, das neben den Portierungen von Gecko für OS X oder Android existiert. Im Gegensatz zu anderen Betriebssystemen hat Gecko für Gonk Zugriff auf bestimmte Schnittstellen, wie etwa auf die Telefonie oder den Display-Framebuffer, den die HTML-Rendering-Engine üblicherweise nicht hat.

Aufbau Mozilla Firefox OS
Aufbau Mozilla Firefox OS

Gecko ist die bereits angesprochene Rendering-Engine, wobei Mozilla Gecko als Applikations-Laufzeit von Boot to Gecko beziehungsweise Firefox OS versteht. Die Rendering-Engine implementiert die offenen Standards HTML, CSS und JavaScript. Gecko setzt sich unter anderem aus einem Netzwerkstack, Grafikstack, der Layout-Engine, einer virtuellen Maschine für JavaScript und mehreren Portierungsschichten zusammen. Gecko stellt die benötigten „Open-Web-APIs“ zur Verfügung, die als einzige Schnittstelle zwischen dem darunterliegende Betriebssystem und der grafischen Oberfläche Gaia dienen.

Die grafische Oberfläche von Boot to Gecko wird vollständig in HTML, CSS und JavaScript umgesetzt. Alle Anzeigen auf dem Bildschirm sind Bestandteil von Gaia. Gaia ist gleichzeitig eine Ansammlung von Web-Applikationen, die die Präsentationsschicht von Firefox OS ausmachen. Das Wählfeld, der Lock- und Homescreen, der Kalender oder auch die Bildergalerie sind also allesamt bereits Web-Applikationen, die im Zusammenspiel die Oberfläche von Firefox OS darstellen. Durch die Nutzung von standardisierten Web-APIs funktioniert Gaia auch auf anderen Systemen und Browsern, wenn auch nur mit einer verminderten Funktionalität.

Firefox OS setzt sich zusammenfassend aus der minimalistischen Linux-Distribution Gonk, der Rendering-Engine Gecko und der Oberfläche Gaia zusammen, wobei groß im Vordergrund die Themen Web-Applikationen und offene Standards stehen.