Zum Hauptinhalt Zur Navigation

Canonical: Ubuntu Touch noch nicht ohne Android

Canonicals mobiles Betriebssystem Ubuntu Touch verwendet in der Entwicklerversion noch zahlreiche Funktionen aus Android. Wir haben uns das mobile Linux auf einem Galaxy Nexus genauer angesehen.
/ Jörg Thoma
25 Kommentare News folgen (öffnet im neuen Fenster)
Ubuntu Touch nutzt bislang noch viel Android. (Bild: Canonical)
Ubuntu Touch nutzt bislang noch viel Android. Bild: Canonical

Noch befindet sich Ubuntu Touch in einer frühen Entwicklungsphase. Canonical-Entwickler dokumentieren bereits fleißig, an welchen Einzelpaketen sie für das mobile Betriebssystem arbeiten(öffnet im neuen Fenster) . Wir wollten die Änderungen selbst entdecken und haben uns angesehen, welche Neuerungen an dem Linux-basierten Betriebssystem schon sichtbar sind.

Nach der Installation lässt sich Canonicals Ubuntu Touch nicht nur über Googles Android Debugging Bridge ansehen, sondern auch über SSH erreichen. Damit erhält der Anwender eine Linux-Shell, in der sich herkömmliche Linux-Befehle absetzen und nutzen lassen. So konnten wir den Unterbau von Ubuntu Touch recht gut analysieren.

Ubuntu for Phones (Preview) - ausprobiert
Ubuntu for Phones (Preview) - ausprobiert (02:25)

Ganz ohne Android kommt Ubuntu Touch noch nicht aus. Spätestens beim Start des Smartphones fällt der Android-Anteil auf - auf dem Startbildschirm prangt der Google-Schriftzug.

Vom jüngst angekündigten Display Server Mir gibt es bislang keine Spur in den Daily Builds; von Wayland hingegen schon. Die in Ubuntu Touch enthaltenen Bibliotheken libwayland-client, libwayland-server und libwayland-cursor tragen allesamt das Erstellungsdatum 29. September 2012. Sie kommen allerdings nicht zum Einsatz. Zunächst meldet die Webseite Phoronix, dass Ubuntu Touch stattdessen den Compositing Manager Surfaceflinger von Android nutzt.

Cyanogenmod lässt grüßen

Dabei belässt es Ubuntu Touch aber nicht. Auch auf andere Komponenten greift es noch zu. Genauer gesagt, verwendet Ubuntu Touch Cyanogenmod, und zwar in der Version 10.0, wie die entsprechende Changelog-Datei verrät. Genutzt wird der Linux-Kernel 3.0.31, der seit Android 4.1 alias Jelly Bean im Einsatz ist. Allerdings hat Canonical laut seinem Porting Guide(öffnet im neuen Fenster) den Kernel geringfügig angepasst, um eigene Funktionen zu nutzen.

Die meisten von Ubuntu Touch genutzten Android-Komponenten sind Systemanwendungen, darunter das bereits erwähnte Surfaceflinger. Der Compositing Manager sorgt für die Darstellung von Inhalten auf der Benutzeroberfläche. Auch die OpenGL-ES-2.0-Schnittstelle und Grafiktreiber sowie das Radio Interface Layer (RILD), mit dem das GSM-Modem angesprochen wird, stammen von Android. Ubuntu Touch nutzt Ofono(öffnet im neuen Fenster) als Schnittstelle für seine Telefon-App.

Libhybris für Bionics

Außerdem nutzt Ubuntu Touch Androids Multimedia-Framework samt Codecs. Langfristig soll aber Gstreamer als Multimedia-Framework dienen. Die Canonical-Entwickler diskutieren bereits auch über ein eigenes DRM-System(öffnet im neuen Fenster) . Audio wird in Ubuntu Touch von Pulseaudio verarbeitet.

Um auf die Android-Komponenten zuzugreifen, verwendet Canonical die Bibliothek Libhybris, die Android-Bibliotheken lädt und deren Bionic-Symbole mit denen von Glibc überschreibt, damit sie unter Linux genutzt werden können. Libhybris stammt von Carsten Munk, der sie für das Mer-Projet entwickelt hat. Libhybris soll auch künftig verwendet werden, das zumindest legen die Grafiken nahe, die Canonical zu seinem Display Server Mir veröffentlicht hat.

Im Container

Ubuntu läuft in einem Container unter Android. In der Ordnerstruktur von Ubuntu liegen die von Ubuntu Touch genutzten Android-Komponeten im Verzeichnis /system. Aufgefallen ist uns auch das Verzeichnis /data, in dem sich weitere Android-Komponenten befinden, darunter die Dalvik-Engine. Da wir hier einen Hinweis auf von uns installierte Apps entdeckt haben, gehen wir davon aus, dass es sich um ein Backup des Originalsystems handelt.

Ubuntu liegt im Root-Verzeichnis und weist die klassische Unix-Struktur auf. Die Kommandozeilenwerkzeuge stammen von Busybox. Uns ist es auch gelungen, weitere Anwendungen per apt-get zu installieren, etwa den Midnight Commander.

Prozesstabelle

In der Liste der laufenden Prozesse, die wir mit dem Befehl ps ax ausgelesen haben, erhielten wir einen Überblick über die Komponenten, die von Ubuntu Touch verwendet werden, etwa der Networkmanager oder Teile des Evolution-Frameworks, dessen Adressbuch-Komponente wir entdeckten.

Aufgefallen ist uns das offensichtlich als Messaging-Framework verwendete Chewie. Dabei handelt es sich um eine Eigenentwicklung Canonicals, die auf Launchpad als System Settings Menu Service gelistet wird. Zwei weitere laufende Instanzen mit Chewie haben wir noch entdeckt: Chewie-Network-Menu-Server und Chewie-Sound-Menü-Server.

Spracherkennung und Webkit-Browser

Für die Spracherkennung verwendet Canonical die Engine Julius(öffnet im neuen Fenster) , die auch als Backend in der weit verbreiteten Software Simon zum Einsatz kommt. Spracheingaben werden lokal verarbeitet und nicht an einen Server übermittelt. Die Texteingaben werden über das Maliit-Framework(öffnet im neuen Fenster) verarbeitet, die virtuelle Tastatur namens Nemo stammt aus dem Mer-Projekt(öffnet im neuen Fenster) .

Die Dalvik-Engine kommt nicht zum Einsatz. Stattdessen setzt Canonical auf Qt5/QML. Die Shell von Ubuntu Touch (Qml-Phone-Shell) ist in QML geschrieben. Sie setzt auf die APIs der Qt Plugins, die in der Bibliothek Qtubuntu vereint sind. Dazu gibt es auch die Bibliothek Qthybris, die für die Anbindung an die Android-Komponenten sorgt. Sie werden beispielsweise von den Sensoren verwendet, für die es das Paket Qtubuntu-Sensors gibt.

Browser mit V8

Der Browser stammt von Canonical, basiert auf Webkit und nutzt Googles V8-Javascript-Engine. Der Browser absolviert den Javascript-Benchmark Octane erfolgreich, derzeit aber erwartungsgemäß langsam .

Zugang zum System erhielten wir nach der Anleitung im offiziellen Ubuntu-Touch-Wiki: Zunächst verschafften wir uns über die Android Debugging Bridge Zugang und installierten per apt-get den OpenSSH-Server nach. Wir banden das virtuelle Dateisystem Proc ein, um die IP-Adresse des Galaxy Nexus mit ifconfig auslesen zu können. Darüber loggten wir uns dann von unserem Arbeitsrechner ein.

Es gibt sicherlich noch mehr in Ubuntu Touch zu entdecken. Tägliche Builds lassen sich inzwischen mit der Befehlszeile phablet-flash -l installieren(öffnet im neuen Fenster) . Kleine Unterschiede sind tatsächlich täglich zu beobachten. Welche Pläne Canonicals Entwickler tatsächlich umsetzen, bleibt abzuwarten. Bis Mai 2013 soll zumindest eine erste funktionierende Version des Display Servers Mir eingebaut werden.


Relevante Themen