Möchte ein Entwickler sein Programm präsentieren, trägt er meist ein Smartphone und ein Notebook bei sich. Letzteres macht Maru OS überflüssig, indem es ein Desktop-Debian auf das Smartphone bringt.
Heutige Android-Geräte verfügen über viel RAM und brauchbare Prozessoren: Wie schön wäre es, die Software direkt auf dem Smartphone vorzuführen, auf einem echten Debian-System? Maru OS [1] macht’s möglich.
Das System des amerikanischen Entwicklers Preetam D’Souza vereint zwei Betriebssysteme in einer Firmware. Sein Custom-ROM für das Nexus 5, denn nur auf diesem Gerät läuft es bislang, soll bis zum Erscheinen dieser Magazin-Ausgabe unter einer freien Lizenz stehen, wenn alles nach Plan läuft. Es bietet sowohl Android 5.1 in der AOSP-Version als auch Debian 8 “Jessie” zur Nutzung an und ist auf der DELUG-DVD zu finden. Das Debian-System tritt nur dann in Aktion, wenn der Nutzer das Nexus 5 über einen Adapter mit einem HDMI-fähigen Monitor verbindet.
Diese Lösung bietet gegenüber dem klassischen Android-System gleich mehrere Vorteile: Debian lässt sich auf einem größeren Monitor deutlich besser nutzen als Android, das vor allem für kleine Displays und Touchscreens optimiert ist. Zudem starten auf dem Debian-System nahezu alle Anwendungen, die das Debian-Projekt für die ARM-Plattform anbietet. Dazu gehören neben Libre Office (in Version 4.3) auch praktische Helfer wie Gimp oder der beliebte Webserver Apache. Sogar einige eher exotische Programme wie Blender oder Latex laufen auf dem Android-Smartphone.
Der Fokus liegt aber eher auf dem Einsatz leichtgewichtiger Anwendungen. Das überrascht nicht. Zwar verfügt das Nexus 5 mit 2 GByte RAM über genügend Arbeitsspeicher, doch erweist sich die verbaute Snapdragon-800-CPU als etwas schwach auf der Brust, wenn es um rechenintensive Tasks geht.
Zum Vergleich: Um eine 60 Sekunden lange WAV-Datei (16 Bit, 44,1 kHz) mit dem Encoder-Aufruf »oggenc -q 10« ins Ogg-Vorbis-Format zu konvertieren, benötigt ein Intel-i5-5200U-Prozessor rund 1,2 Sekunden. Der Snapdragon 800 arbeitet sich hingegen mehr als 6 Sekunden lang an dieser Aufgabe ab (Abbildung 1).
Download und Installation
Maru steckt noch in einer (geschlossenen) Betaphase, doch auf dem Nexus 5 lässt sich das System schon sehr gut nutzen. Wer es täglich mit Maru verwenden will, muss aber ein paar Hürden nehmen. So lässt sich der Android-Teil von Maru OS (Abbildung 2) aktuell nur über eine Neuinstallation des Systems aktualisieren. Androids übliche OTA-Updates kann der Entwickler nicht bereitstellen. Da sich das System schnell weiterentwickelt, muss der Nutzer flexibel sein.
Ein weiterer Nachteil: Maru setzt auf Android 5.1, für das Nexus 5 gibt es aber bereits seit Oktober 2015 Android 6 “Marshmallow”. Außerdem scheint das Audio-Routing auf dem Debian-System noch nicht zu funktionieren. Im Test lieferte das Nexus 5 kein Audiosignal über den HDMI-Ausgang. Unter Android arbeitet die Audio-Ausgabe wie gewohnt. Maru gibt es aktuell nur in englischer Sprache. Wer will, stellt das Android- und das Debian-System nachträglich auf Deutsch um, minimale Englischkenntnisse sind aber von Vorteil.
Zwar stand der angekündigte Quellcode zu Redaktionsschluss noch nicht zum Download bereit. Aber wer Maru testen möchte, findet unter [1] einen »Sign me up!« -Button, um an den Betatests teilzunehmen. Nach einer erfolgreichen Registrierung erhält der Nutzer per Mail einen Link zum Download des rund 700 MByte großen Zip-Archivs. Das enthält nicht nur alle notwendigen Systemabbilder, sondern auch die zur Installation benötigten Tools wie die Android Debug Bridge (»adb« ) und »fastboot« .
Im besten Fall schaltet der Anwender auf dem Nexus 5 die Entwickleroptionen frei, entpackt die Zip-Datei »maru -v0.2-hammer-head.zip« in einen Ordner und ruft das »install.sh« -Skript auf. Das entsperrt – wenn nötig – auch den Bootloader des Smartphones. Vorsicht: Beim Überspielen löscht es alle Daten auf dem Nexus 5.
Im Zip-Paket steckt neben dem Installer auch ein »uninstall.sh« -Skript, welches das Nexus 5 auf Wunsch wieder mit der Original-Firmware von Google bestückt [2]. Dazu muss auf dem eigenen Rechner lediglich eine beliebige Version der Original-Firmware im entpackten Zustand vorliegen. Das Skript erwartet noch den absoluten Pfad zur Nexus-5-Firmware, um anschließend dort die Installation zu starten. Diese löscht einmal mehr sämtliche Daten auf dem Smartphone.
Wie funktioniert das?
Während frühere Versuche von Motorola, Ubuntu und anderen Herstellern mit Virtualisierung oder Emulation arbeiteten und in den meisten Fällen an zu wenig RAM scheiterten [3], benutzt Maru das schlanke Containersystem LXC von Linuxcontainers.org [4]. Das Debian-System greift somit direkt auf den Kernel 3.4 von Android zu, anstatt den Standardkernel von Jessie (3.16) zu benutzen. Dieser Kernel zeigt sich dann auch allein verantwortlich für die komplette Virtualisierung. Er gaukelt dem Debian-System einen auf der ARM-Architektur basierenden PC vor.
Die Trennung vom Android-System erfolgt über spezielle Kernel-Kontrollgruppen (Cgroups), die alle Prozesse des LXC-Containers hierarchisch einem Linux-Prozess zuordnen. Oder einfacher formuliert: LXC ist ein Mittelding zwischen einem simplen »chroot« und einer kompletten Virtualisierung wie Xen oder KVM. Es braucht weniger Ressourcen, kann aber zum Beispiel kein anderes Betriebssystem simulieren, da der Kernel eben ein Linux-Kernel bleibt.
Praxistauglichkeit
Das Android-System ist zunächst einfach ein pures Android (Abbildung 3). Wer zudem die typischen Google-Apps benötigt, etwa den Play Store oder Google Maps, sollte zusätzlich eines der Images für die ARM-Plattform und Android 5.1 unter [5] herunterladen und auf das Nexus 5 spielen. Die dort angebotenen Images bringen unterschiedlich viele Google-Apps mit. Als alternative Softwarequelle bietet sich F-Droid [6] an, ein freier Appstore für Android-Apps. Damit installiert der Nutzer wenigstens einen brauchbaren E-Mail-Client und eine Handvoll praktischer Tools.
Auch beim Debian-System handelt es sich um ein reines Debian mit Xfce als Desktop. Im Unterschied zu einer Desktop-Installation fehlen sehr viele Tools, die Debian-Kundige aber per »apt-get« nachrüsten. Das schlanke System erweist sich als Vorteil. Beschränkungen gibt es nur dort, wo kein Debian-Paket für ARMv7 vorliegt. Da es sich beim Snapdragon 800 des Nexus 5 um keinen gewöhnlichen x86- oder x86_64-Prozessor handelt, akzeptiert dieser auch keine i386- oder x64-Befehlssätze.
In den Tests traten beim Einsatz von Libre Office, Gimp, Imagemagick und einigen weiteren Tools keine nennenswerten Probleme auf. Auch das eingangs erwähnte Blender lässt sich tatsächlich nutzen (Abbildung 4), das Rendern sollte aber doch ein kräftiger PC übernehmen.
Für unterwegs eignet sich Maru nur in Verbindung mit ausgesuchtem Zubehör. Nutzer brauchen eine Bluetooth-Tastatur und/oder eine Bluetooth-Maus sowie einen speziellen Adapter, um den Micro-USB-Ausgang des Nexus 5 in einen HDMI-Port zu verwandeln. Diese Geräte stets mit sich herumzutragen ist fast so umständlich oder noch umständlicher, als ein kleines Netbook mitzunehmen. Wer allerdings über ein Bluetooth-Keyboard mit integriertem Touchpad und über den Slimport-Adapter verfügt, bekommt mit Maru ein sehr brauchbares Werkzeug an die Hand.
Bleibt noch die Frage nach dem Einsatzzweck. Monitore mit HDMI-Eingang gibt es inzwischen wie Sand am Meer, fast jedes moderne Hotelzimmer hält einen bereit. Auch Meetingräume verfügen häufig über einen Projektor mit HDMI-Eingang. Das ermöglicht es zum Beispiel, eine in Libre Office verfasste Präsentation nativ zu starten (vorausgesetzt, dass sie keinen Sound braucht). Ein anderes Szenario besteht darin, diverse Arbeiten auf der Shell oder Programmierarbeiten zu verfassen. Egal ob Emacs oder Vim, unter Debian lässt sich damit per Keyboard besser arbeiten als auf dem Android-System (Abbildung 5).
Sensible Daten sollten Maru-Nutzer ihrem System allerdings nicht ohne Weiteres anvertrauen, denn es gibt keine Sicherheitsvorkehrungen, um den Debian-Container vor unbefugtem Zugriff zu schützen. Wird das Nexus 5 an einen HDMI-fähigen Monitor angeschlossen, startet das Linux-System ohne Passwortabfrage oder Ähnliches. Wer möchte, kann aber unter Debian einen Truecrypt-Container anlegen oder zum Beispiel mit Mutt und GNU PGP verschlüsselte Mails verschicken.
Fazit
Maru OS ist ein spannendes Projekt. Im Unterschied zu vielen Vorgängern gefällt die Performance von Debian auf dem Nexus 5. Mit dem zusätzlichen Linux-System absolviert der Besitzer zudem viele Aufgaben, die er mit einem Android nicht lösen kann.
Aktuell mangelt es Maru noch an Multimedia-Fähigkeiten sowie einer umfassenden Lokalisierung. Veröffentlicht das Projekt aber wie angekündigt seinen Quellcode, dürfte sich das schnell ändern. Für erste Tests eignet sich schon mal das Image auf der Heft-DVD.
Infos
- Maru OS: http://maruos.com
- Nexus-Firmware-Dateien: https://developers.google.com/android/nexus/images
- Motorola Atrix Lapdock im Test: https://www.android-user.de/im-test-motorola-atrix-mit-lapdock/
- LXC: https://linuxcontainers.org/lxc/introduction/
- Google-Apps-Image: http://opengapps.org
- F-Droid: https://f-droid.org










