ubuntuusers.de

Ubuntu Touch: Unter der Haube & Fazit

ubuntu_touch_logo.png

Nach den beiden Artikeln über die Bedienung, den Scopes sowie einen ausführlichen Blick auf die Core & System Apps schließt die Artikel-Reihe mit einem Artikel über die technischen Details von Ubuntu Touch.

Unter der Haube

Geräte-Unterstützung

Mit dem ersten stabilen Release von Ubuntu Touch 13.10 Saucy Salamander ist das System für offiziell zwei Geräte verfügbar. Canonical unterstützt neben dem Google Nexus 4 noch das Galaxy Nexus. Weiterhin werden noch zwei weitere Builds für Geräte zur Verfügung gestellt, die aber explizit nicht zum Release von Saucy Salamander gehören und somit nicht zum Stable-Zweig gehören. Dies wäre zum einen das Nexus 7 (2012) sowie das Nexus 10. Für das erste Release von Ubuntu Touch wurde ein großer Wert auf die Smartphones gesetzt und somit weniger auf die Tablets, weshalb für die beiden Tablets kein stabiles Release erfolgte.

Neben den oben genannten Images gibt es noch weitere, die auch auf anderen Geräten laufen. Diese werden allerdings nicht offiziell von Canonical unterstützt, sondern sind Arbeiten aus der Community. Die Liste der funktionierenden Geräte findet sich im Ubuntu Wiki 🇬🇧. Darunter sind viele aktuelle High-End-Geräte, aber auch Geräte, die ein bis zwei Jahre alt sind. So gibt es zwar Builds für das Samsung Galaxy S2 und S3, allerdings nicht für das S4.

Für die Entwicklung auf den vier Nexus-Geräten pflegt das Ubuntu-Touch-Team eine Tabelle in Google Docs 🇬🇧, welches die aktuelle Unterstützung der Hardware auf den verschiedenen Geräten übersichtlich darstellt. Aktuell wird das Nexus 4 am besten unterstützt; das Galaxy Nexus folgt als Nächstes. Bei einigen Sensoren wurde allerdings die Arbeit noch gar nicht begonnen, sodass diese nicht funktionieren. Als Beispiel seien hier das Gyroskop oder der Kompass genannt.

„Flipped“ vs. „unflipped“

Bei den Ubuntu-Touch-Images wird zwischen „flipped“ und „unflipped“ unterschieden. „Unflipped“ Images sind stark Android-basierend. Auf diesen Systemen läuft als Hauptbetriebssystem Android. Zunächst startet Android komplett und anschließend wird Ubuntu mittels chroot gestartet. Diese Variante wurde allerdings nur zu Beginn der Entwicklung angewandt. Im Laufe der Zeit wurde dann allerdings ein „flip“ durchgeführt. Das bedeutet, dass nun nicht mehr Android komplett bootet und dann Ubuntu gestartet wird, sondern zunächst Ubuntu gestartet wird und im Anschluss einige Android-spezifischen Tools in einem Container gestartet werden. Da hier die Funktionsweise vertauscht bzw. „gedreht“ wurde, bekamen die entsprechenden Images den Namenszusatz „flipped“. In den Community-Builds sind viele Images weiterhin „unflipped“, wie man aus der entsprechenden Tabelle entnehmen kann. Die offiziell unterstützten Geräte von Canonical sind schon sehr früh in der Entwicklung von Saucy auf die neue Methode umgeschwenkt.

Display-Server

Ubuntu Touch nutzt als Display-Server bereits jetzt standardmäßig Mir. Mir wurde allerdings erst knapp eine Woche vor dem Release von Saucy zum Standard erhoben. Vorher war stets SurfaceFlinger als Display-Server im Einsatz, welches von Google entwickelt wird und unter Android zum Einsatz kommt.

Einfluss von Android

Android hat aktuell immer noch großen Einfluss auf Ubuntu Touch. Sowohl aus Kompatibilitätsgründen zu spezifischen Geräten, als auch an der einfacheren Umsetzung werden viele Android-Services unter Ubuntu Touch ausgeführt. Die Services laufen dabei innerhalb eines LXC-Container und sind somit vom restlichen System abgeschottet.

Der Linux-Kernel wird weitestgehend von Android übernommen; dort werden nur wenige Ubuntu-spezifische Änderungen implementiert. Ein Beispiel ist die Nutzung von AppArmor.

Zusätzlich werden OpenGL ES 2.0 HAL sowie Treiber von Android übernommen. Weiterhin wird ebenfalls der Media-HAL übernommen, womit im Wesentlichen die Hardware-Video-Dekodierung ermöglicht wird. Zuletzt sei auch noch RILD erwähnt. Dies ist ein Interface, um die Mobilfunkverbindung zu einem Provider aufzubauen und aufrecht zu erhalten.

Die Kommunikation zwischen Ubuntu und dem Android Linux-Kernel wird mittels Binder, Sockets und libhybris realisiert. Binder ist für die Interprozess-Kommunikation zuständig, während libhybris dafür zuständig ist, Bionic-Code unter einer gängigen Linux-Distribution auszuführen.

Fazit

Die Veröffentlichung der ersten Version von Ubuntu Touch ist erst wenige Tage her. Viele Dinge funktionieren entweder gar nicht oder nur bedingt. Andere Dinge sind wiederum gut umgesetzt und funktionieren.

In der Bedienführung wurden einige sehr interessante Ideen implementiert, womit sich ein Ubuntu-Touch-Gerät schnell und einfach bedienen lassen. Einige dieser Ideen sind allerdings auch etwas sehr umständlich, etwa das Bedienen des „Zurück“-Buttons innerhalb von Anwendungen, wofür sowohl eine umständlich zu erreichende Geste, als auch ein normaler Tastendruck notwendig sind.

Je mehr Anwendungen man startet, desto häufiger passiert es, dass das System ziemlich träge und langsam wird. Es tummeln sich weiterhin noch viele Bugs, die hin und wieder auftreten, etwa ein plötzliches Verschwinden der Tastatur. Nach dem Beenden von Apps lässt sich das System dann aber wieder ordentlich schnell nutzen.

Einige Core & System Apps sind noch stark beschnitten, sodass man Ubuntu Touch kaum auf produktiven Geräten nutzen kann, wenn man auf mobile Datenverbindung, Kalender-Synchronisation oder einer nativen E-Mail-Client angewiesen ist. Man darf also noch etwas abwarten, bis man Ubuntu Touch produktiv einsetzen kann. Möglicherweise gibt es dann auch schon Geräte, bei denen Ubuntu Touch als System standardmäßig ausgeliefert wird. Laut Canonical soll dies bereits Anfang nächsten Jahres der Fall sein.