Original-URL des Artikels: https://www.golem.de/news/hands-on-sailfish-os-intelligenter-baukasten-zum-basteln-und-portieren-1312-103351.html    Veröffentlicht: 16.12.2013 16:03    Kurz-URL: https://glm.io/103351

Hands on Sailfish OS

Intelligenter Baukasten zum Basteln und Portieren

Auf dem Jolla läuft eine moderne Linux-Distribution mit Systemd, Btrfs, Qt5 und Wayland. Dank eingebauter Terminals und Root-Zugriff kann das System entdeckt, erweitert und leicht verändert werden. Zudem wird klar, wie es Sailfish OS auf Android-Telefone schaffen kann.

Binnen weniger Minuten lässt sich das Jolla-Smartphone vom gleichnamigen Hersteller in den Entwicklermodus versetzen. Anwender können dadurch eine eingebaute Terminal-App verwenden oder via SSH auf das Gerät zugreifen. Das ermöglicht Einblicke in die Funktionsweise des Betriebssystems Sailfish OS, was einerseits für Verwunderung sorgt, aber auch einige geniale technische Ideen offenlegt, wie die Kombination aus Android und Linux-Distribution.

Android oder Linux-Distribution?

Klassischerweise wird unter dem Begriff Linux-Distribution die Kombination aus Linux-Kernel und GNU-Userspace verstanden, weshalb die FSF und Richard Stallman auch auf die Bezeichnung GNU/Linux für Betriebssysteme dieser Art bestehen. Wegen starker Veränderungen am Kernel, eines eigens erstellten Userspaces und des massiven Einsatzes von Java wird Android jedoch meist als etwas anderes angesehen.

Sailfish OS schafft es dennoch, eine Verbindung zwischen diesen beiden Welten herzustellen. Das liegt hauptsächlich an der Arbeit des Mer-Projektes, das als Middleware zwischen Hardware-Adaption und Benutzeroberfläche fungiert. Mer fasst viele wichtige Programme wie Standardbibliotheken, Compiler oder auch Paketverwaltung zu einer Distribution zusammen, der lediglich der Kernel fehlt.

Libhybris verbindet

Der Kernel kann aus dem Linux-Hauptentwicklungszweig erstellt werden, wenn die vorhandene Hardware unterstützt wird, wie bei Community-Ports für Nokias Entwicklerhandy N950 oder seinem kommerziellen Ableger N9. Darüber hinaus kann aber auch ein Android-Kernel samt Treibern mit Mer verwendet werden. Möglich macht das Libhybris, die Aufrufe zwischen Googles Bionic- und der GNU-Standard-C-Bibliothek Glibc übersetzt. Auf ähnliche Weise können mit Libhybris auch die EGL-Aufrufe zwischen Android-Grafikstack und Wayland übersetzt werden. Der Libhybris-Erfinder Carsten Munk ist Mitbegründer von Jolla und Technikchef des Unternehmens.

So lässt sich auch verstehen, warum Jolla-Chef Tomi Pienimäki verkündet, Sailfish OS könne auf jedes Android-Gerät portiert werden. Denn technisch ist das prinzipiell kein Problem, schließlich arbeitet auch auf dem Jolla ein Android-Kernel. Ob dazu aber alle Dateien bis auf den Kernel gelöscht werden müssen oder ob ein Dual-Boot möglich sein wird, ist noch nicht bekannt.

Gewöhnlicher Android-Kernel und Alien Dalvik

Der auf dem Jolla eingesetzte Kernel trägt die Versionsnummer 3.4.0 und basiert damit auch auf dem aktuell von Google für Kitkat verwendeten Kernel. Anwender, die über das Terminal auf Sailfish OS darauf zugreifen, bemerken dies aber auf den ersten Blick nicht. Lediglich die nur drei Einträge umfassende Modul-Liste, die Lsmod liefert, die Android-typischen Ordner /data und /system im Wurzelverzeichnis und die zahlreich vorhandenen Wakelocks deuten darauf hin.

Um auch Android-Apps auf dem Jolla auszuführen, kommt das wenig bekannte Alien Dalvik der Myriad Group zu Einsatz. Dieser proprietäre Ersatz für Googles Dalvik ist bereits vor fast drei Jahren vorgestellt worden. Präsentiert wurde Alien Dalvik damals auf einem N900 mit Maemo mit der Aussicht, dies auch auf Meego zu portieren. Beide Systeme sind direkte Vorläufer von Mer.

Mer für Konsolenfreaks

Nutzer, die die Arbeit an der Konsole gewöhnt sind, werden sich sehr schnell mit Mer anfreunden können. Neben der Terminal-App lässt sich auch per SSH auf das System zugreifen: die Verbindung erfolgt dabei via WLAN über einen Router oder direkt via USB, wobei hier die notwendigen Einstellungen für das Routing auf dem Host-Rechner selbst vorgenommen werden müssen.

So lassen sich die Standardkomponenten von Mer schnell ausfindig machen. Als Startumgebung wird etwa Systemd 187 verwendet, samt der darin enthaltenen Programme wie Udev, Journald als Logdienst oder auch Systemd-Analyze, um den Bootvorgang näher zu studieren.

Viele bekannte Pakete

Mittels Terminalzugang lassen sich auch die RPM-Pakete, aus denen Sailfish OS zusammengesetzt ist, durchsuchen und verwalten. Standardmäßig ist dies mit Packagekit und dessen Werkzeug Pkcon möglich. In den Repositories steht aber auch das aus dem Opensuse-Projekt stammende Zypper zur Verwaltung bereit. Root-Zugriff erhalten Jolla-Besitzer zudem über den Befehl devel-su.

Ein kurzer Blick auf die verfügbaren Pakete zeigt viel Bekanntes und Vorhersehbares. So ist für die Multimediaunterstützung das Gstreamer-Framework 0.10.36 zuständig, für den Sound wird Pulseaudio 4.0 verwendet, die grafische Oberfläche wird mittels Wayland dargestellt. Für Instant-Messaging wird das Telepathy-Framework genutzt, die Dokumente-App baut auf der KDE-Office-Suite Calligra auf und die Netzwerkverbindungen werden von Connman gesteuert, das für Embedded-Linux-Systeme gedacht ist.

Jolla als Entwicklerboard

In Jolla ist ein Snapdragon S4 Plus (MSM8930) von Qualcomm verbaut. Der Dual-Core ist mit 1,4 GHz getaktet und kann auf 1 GByte Arbeitsspeicher zugreifen. Damit verfügt das Jolla über eine vergleichbare Hardware wie einige aktuelle ARM-Entwicklerboards, etwa das ebenfalls mit Mer betriebene Improv.

Damit das Jolla auch tatsächlich für Softwarebasteleien genutzt werden kann, stehen die GNU Complier Collection (GCC) 4.6, LLVM 3.1 sowie der Editor Vim bereit. Neben den Standardbibliotheken für C-artige Sprachen stehen für C++-Entwickler Boost 1.51 sowie Qt 5.1 zur Verfügung. Außerdem können Python 2.7, Perl oder auch Ruby direkt genutzt werden.

Proprietäre Oberfläche

Trotz der vielen aus der Linux-Welt bekannten und freien Software, mit der das Jolla aufwartet, ist zumindest bis jetzt ein Großteil der grafischen Oberfläche nach wie vor proprietär. Auch wenn Jolla angekündigt hat, dies zu ändern, sind die Quellen noch nicht zugänglich, ebenso wenig wie der Bugtracker. Zwar finden sich in den Paketbeschreibungen Hinweise auf einen Bitbucket-Account von Jolla, dieser ist derzeit aber nicht öffentlich.

Neben den Jolla-eigenen Apps und den Sailfish-QML-Components, die eventuell frei verfügbar werden, ist aber davon auszugehen, dass einige Bestandteile proprietär bleiben werden. Dazu zählen vermutlich der Adreno-Grafiktreiber, der Yandex-Android-Appstore oder auch das von Nokia lizenzierte Kartenmaterial samt App.  (sg)


Verwandte Artikel:
Neue Sailfish-Geräte angeschaut: Jolla bringt Sailfish OS auf Feature Phones   
(26.02.2018, https://glm.io/132996 )
Jolla im Test: Das Smartphone, das Nokia nicht wollte   
(02.12.2013, https://glm.io/103048 )
Zipper: Neue Blockchain-Plattform für Smartphones   
(01.12.2017, https://glm.io/131451 )
Improv: Eine Platine - nicht nur - für Mer-Entwickler   
(25.11.2013, https://glm.io/102953 )
Libhybris: Glibc statt Bionic auf Android-Hardware   
(27.09.2012, https://glm.io/94797 )

© 1997–2019 Golem.de, https://www.golem.de/