GENIVI-konformes Fahrzeug-Infotainment-System Android und Linux nutzen

»Linux« ist als Betriebssystem für Fahrzeug-Infotainment-Systeme weitgehend anerkannt. Aber was wäre, wenn »Android« als zweites Betriebssystem benötigt wird? Lassen sich beide auf Multicore-SoCs kombinieren, um Systemressourcen für »In-Vehicle Infotainment«-Anwendungen gemeinsam zu nutzen?

Auch im Jahr 2013 dürfte die Popularität des Betriebssystems »Android« weiter steigen. Es gibt mittlerweile über 700  000 Apps und über 25 Milliarden Downloads von Googles Android-Online-Store. Android wird weitgehend mit Smartphones und Tablets assoziiert, aber dieses Betriebssystem etabliert sich sehr schnell in angrenzenden Märkten wie Fahrzeug-Infotainment und Set-Top-Boxen, möglicherweise demnächst auch in medizinischen Handheld-Geräten und tragbaren industriellen Steuerungen.

Dieses sich schnell entwickelnde, eigenständige Betriebssystem hat eine große Entwicklergemeinde. Doch wo gleichen sich Linux und Android, und worin unterscheiden sie sich? Ein guter Ausgangspunkt ist es, einen Blick auf die Historie und die Funktionen der beiden Betriebssysteme zu werfen. Das Unternehmen Android wurde 2003 als Startup gegründet.

Ziel war es, neue Software für Smartphones zu entwickeln. 2005 wurde das Unternehmen von Google für eine ungenannte Summe übernommen. Im Jahr 2007 kündigte die Open Handset Alliance, eine Organisation, die Google zusammen mit anderen Telefonherstellern und Halbleiteranbietern gegründet hat, Android als Betriebssystem an. Dieses richtete sich speziell an Entwickler von Mobiltelefonen.

Die erste Version hieß »Cupcake«, und es folgte eine Reihe weiterer Versionen mit Dessertnamen als Bezeichnung. Mit der »Honeycomb«-Version veröffentlichte Google sein erstes Tablet-spezifisches Betriebssystem und das »Ice Cream Sandwich«-Release kombinierte im Jahr 2012 die Anforderungen für Smartphone- und Tablet-Betriebssysteme auf einer Plattform. Durch seine Popularität hat Android den Consumer-Bereich technisch maßgeblich beeinflusst.

Laut Gartner waren im zweiten Quartal 2012 etwa 37 Prozent aller verkauften Mobiltelefone Smartphones, eine Steigerung von 43 Prozent im Vergleich zum gleichen Drei-Monats-Zeitraum in 2011. Auf der Betriebssystemseite baute Android seine Führung als weltweit populärste Mobiltelefonplattform weiter auf 64 Prozent aus, während Apples »iOS« bei etwa 19 Prozent liegt (Bild 1).

Android basiert auf Linux

Jedes Android-Gerät basiert auf einem Linux-Kernel. Genau genommen ist Android eine Teilmenge des »richtigen« Linux-Kernels. Die Architektur von Android besteht aus fünf Hauptkomponenten: Linux-Kernel, Bibliotheken, Android-Runtime, Anwendungs-Framework und der eigentlichen Android-Anwendung (Bild 2). Als Android das erste Mal auf den Markt kam, verfügte es über eine vollständige Software-Entwicklungsumgebung, welche die Entwicklergemeinde in Schwung brachte.

Bis zum Auftauchen von Android waren Organisationen, die Mobiltelefone entwickelten auf teure kommerzielle Software-Entwicklungswerkzeuge angewiesen. Diese garantierten professionelle Unterstützung und langfristige Verfügbarkeit. Der Wechsel zu Android erfolgte bei vielen Smartphone-Entwicklern daher zunächst sehr vorsichtig.

Fragen rund um die Lizenzierung, Eigentumsverhältnisse, Kontrolle und Mängelbeseitigung machten kommerzielle Organisationen vorsichtig. Doch mit den umfangreichen Entwicklungswerkzeugen, die Quellcode-Konfigurationsmanagement, Integration mit Build- und Testprozess-Werkzeugen sowie eine »Eclipse«-basierte Umgebung umfassten, wurden die Entwickler in sehr kurzer Zeit äußerst produktiv.

Da die Android-Entwicklungsumgebung zudem über eine Grafik- Managementumgebung verfügt, können Entwickler ihre gewünschte Benutzeroberfläche schnell und einfach aus einer vordefinierten Bibliothek entwerfen. Diese umfasst Low-Level-Grafikwerkzeuge wie Leinwände, Farbfilter, Punkte und Rechtecke, mit denen der Entwickler Bilder direkt auf dem UI-Bildschirm (User Interface) zeichnen und managen kann.

Deshalb haben alle Android-Apps auch ein ähnliches »Look & Feel« (Bild 3). Android-Apps sind relativ einfach zu erstellen. Es gibt dazu nicht nur eine Vielzahl von Werkzeugen, sondern auch viele Entwickler mit Programmierkenntnissen in Java/C++. Durch leichte Überarbeitung der grafischen Schnittstelle und der Betriebssystemaufrufe lassen sich Android-Apps auf andere Umgebungen portieren.

Nutzer von anderen Betriebssystemen haben großes Interesse an Android-Apps gezeigt, und es sind Virtualisierungsmethoden verfügbar, welche die Portabilität ermöglichen. Ein Anbieter von Virtualisierungslösungen namens OpenMobile liefert mit dem »Android Compatibility Layer« (ACL) ein Produkt, durch das Android-Apps auf anderen Betriebssystemen wie Microsoft Windows ablaufen können.

Linux-Server sind überall

Wenn Android bei Smartphones dominiert, so kann Linux für sich beanspruchen, das De-facto-Betriebssystem auf dem Backend-Server-Markt zu sein. Zudem ist es die größte gemeinschaftliche Softwareentwicklung aller Zeiten. Seit 2005 waren über 8000 Entwickler aus 800 verschiedenen Unternehmen daran beteiligt. Linux hat sich als sicheres und zuverlässiges Betriebssystem für nahezu alle Marktsegmente bewährt.

Erwähnenswert ist beispielsweise, dass 90 Prozent aller Finanztransaktionen an der Wall Street auf Linux-Servern durchgeführt werden. Dieses Betriebssystem steuert die Webseiten bekannter Unternehmen wie Amazon, Facebook, Google und Twitter. Da es keinem einzelnen Unternehmen gehört, profitierte Linux nicht von stark fokussierten Marketingkampagnen, seine Popularität ist stetig gewachsen.

Der Facebook-Server, der mittlerweile über eine Milliarde Nutzer pro Monat hat, ist beispielsweise auf einem Open-Source-»LAMP«-Stack mit Linux-Betriebssystem in seinem Kern aufgebaut. Heute gibt es für kommerzielle und private Nutzer über hundert Linux-Varianten. Zu den bekanntesten gehören »Mint«, »Debian«, »Ubuntu« und »Mageia«.

Laut Hub Pages (Juni 2012) ist Ubuntu die beliebteste kommerzielle Linux-Variante, die treu an den Prinzipien freier und Open-Source-Software festhält. Die Entwicklung von Ubuntu wurde vom englischen Distributor Canonical angeführt. Dieser fordert, dass dieses Betriebssystem in fünf Prozent aller 2013 verkauften PCs enthalten sein soll, ein Markt, den derzeit Microsoft Windows dominiert. Diese Entwicklung wird weitergehen, um Linux als Mainstream-Lösung für Business-Anwendungen und Endverbraucher zu etablieren.

Linux-Varianten fürs Automobil

Um spezielle Linux-Varianten auf den Markt zu bringen, haben verschiedene Industriezweige eine Vielzahl von Allianzen gebildet. In der Automobilwelt wurde zum Beispiel im Jahr 2009 die GENIVI-Allianz gegründet. Diese besteht aus über 170 Automobilherstellern und Zulieferern, die bei der Entwicklung eines einheitlichen Linux-Betriebssystems für Fahrzeuginformationssysteme zusammenarbeiten.

GENIVI veröffentlicht zirka alle sechs Monate eine neue Linux-IVI-Spezifikation, und Mitglieder wie Mentor Graphics bieten Entwicklern von IVI-Systemen Linux-Distributionen, die diesen Spezifikationen entsprechen. Derzeit haben mehrere Automobil-OEMs GENIVI-Linux-basierte Infotainment-Produkte in der Entwicklung. Diese sollen in den nächsten zwei Jahren in Produktion gehen.

Android ist auch für Fahrzeug-Infotainment-Systemdesigns geeignet. Viele der in einem Android-Smartphone oder -Tablet verfügbaren Funktionen sind genau die, die auch Anwender von Infotainment-Systemen suchen: Navigation, Musik-Player, Internet-Verbindung, Telefonanschluss und viele mehr. Autofahrer machen die IVI-Funktionen eines Autos zu einem wichtigen Kaufkriterium.

So hören Automobilhersteller immer öfter: »Sorge dafür, dass das Fahrzeug-Infotainment-System das gleiche Look & Feel wie mein Smartphone hat«. Die Verwendung von Android als Infotainment-Betriebssystem hat den Vorteil, dass dem Anwender unmittelbar eine vertraute Benutzeroberfläche zur Verfügung steht. Neueste Entwicklungen bei Embedded-Architekturen erlauben die Koexistenz der beiden Betriebssysteme.

So kann das Android-Betriebssystem in einem »Linux Container« oberhalb von Linux gehostet werden (Bild 4). Die Ressourcen, die Zugangskontrolle und die Sicherheit des Android-Clients werden vom Linux-Betriebssystem des Hosts gemanagt. Für Systemdesigner, die auf die Sicherheit von Android bedacht sind, bietet dies eine gute Möglichkeit, um den Zugriff auf Android-Apps zu ermöglichen und andere Systemfunktionen auf einer Standard-Linux-Plattform zu belassen.

Multicore-SoC-Plattformen (System-on-Chip) machen diese Architektur noch attraktiver. Denn sie bieten ausreichende Ressourcen, um Linux- und Android-Domänen gleichzeitig auszuführen. Die CPU-Ressourcen können zusammen mit Speicher-, Grafikverarbeitungs- und vielen anderen Peripherie-Ressourcen gemeinsam genutzt werden.

Die Ausgaben der beiden Domänen lassen sich in einer gemeinsamen Mensch-Maschine-Schnittstelle wieder kombinieren, damit der Nutzer Funktionen aus beiden Domänen auswählen kann. Sowohl Android als auch Linux haben sich als äußerst vielseitige und leistungsfähige Betriebssysteme mit gemeinsamen Wurzeln bis hinunter zur Kernel-Ebene bewährt. In einigen Fällen werden sie zusammen ablaufen, sie sollten deshalb nicht unbedingt als Alternativen angesehen werden.

Über den Autor:

Andrew Patterson ist Business-Development-Direktor für den Automobilmarkt bei der Embedded-Software-Division von Mentor Graphics.