1 Next Generation Mobile Phone Platforms Stephan Zeisberg Computer Systems and Telematics Institute of Computer Science Freie Universität Berlin, Germany [email protected]

Zusammenfassung—In der Mobilfunkbranche waren Symbian OS setzte sich schnell als ein System durch, lange Zeit Hersteller wie RIM oder Nokia alleinige Markt- welches dies leisten konnte. Marktführende Unterneh- führer und technologische Spitzenreiter. Meine Arbeit be- men wie Nokia, Motorola oder Sony Erricson erkannten schäftigt sich mit den Next Generation Mobile Phones und das und nutzten die Plattform für ihre Geräte. Dadurch wird diese aus technischer Sicht miteinander vergleichen. erhielt das Symbian OS, bis heute, eine Vormachtstellung Es werden sowohl die Hardware als auch die System- Architekturen behandelt. Einleitend werde ich die drei auf dem Markt für mobile Betriebssysteme. zu vergleichenden Betriebssysteme iPhone OS, Android, Doch der immer noch zu geringe Funktionsumfang OpenMoko und die dazugehörigen Mobiltelefone, vorstel- des Symbian OS, lässt das Betriebssystem seine Gren- len. Dazu ist eine spezielle Sicht auf die Hardware Spezi- zen erreichen. Das auf einen basierende fikationen, welche einen tieferen Einblick in den Aufbau Betriebssystem, findet man in verschiedene Version für der Systemarchitekturen ermöglichen, nötig. Die jeweili- unterschiedliche Mobiltelefone. gen Kernel und System-Bibliotheken werden weitreichend Das andauernde Wachstum der Branche sowie der erläutert. Anschließend werden die spezifizierten Architek- Drang dazu, etwas neues zu entwickeln, ist wahrschein- turen miteinander verglichen und bewertet. Darauf folgt lich der Grund, weshalb sogennante Next Generation eine inhaltliche Zusammenfassung sowie ein Ausblick auf Mobile Phones Platforms auf den Markt auftreten. die zukünftigen Entwicklungen in der Mobilfunkbranche. Unternehmen wie Apple oder Google setzen sich das Ziel mit neuen Konzepten zu überzeugen und somit Anteile vom Symbian OS beherrschten Markt für sich I.EINLEITUNG zu gewinnen. Vor nicht allzu langer Zeit, war der Erwartungswert Next Generation bedeutet, dass etwas bereits existie- an ein Mobiltelefon nicht sehr hoch angelegt. Alles was rendes, in dem Fall das Mobiltelefon, neue Funktionen man wollte, war ein Gerät mit dem man mit anderen erhält. Das Unternehmen Apple machte dabei mit der Menschen telefonisch kommunizieren konnte. Entwicklung des den Anfang. Heutzutage rufen Mobilfunkhersteller wie Sony Er- Google und die Open Handset Alliance zogen 2008 ricson und Nokia oder auch Netzwerkbetreiber wie T- mit dem T-Mobile G1 und der, sich darauf befindenden, Mobile immer mehr Kunden dazu auf, Mobiltelefone zu Android Plattform nach. kaufen, welche eine größere Bandbreite an Funktionen Es stellt sich die Frage, was Mobiltelefone, wie das anbieten. Diese Geräte sollen Digitalkamera, persönli- T-Mobile G1 oder das iPhone von anderen unterscheidet, cher Organizer und internetfähig in einem sein. vorallem in Bezug auf deren Systemarchitektur. Ebenso Der Antrieb dafür ist eine Kombination von immer gilt es die Ansätze anderer Hersteller, beispielsweise weiterentwickelteren Hardwarekomponenten, welche ei- Samsung, RIM oder Nokia, herauszuarbeiten. ne bessere Prozessor- und Speicherkapazität bieten sowie ständige Geschwindigkeitsverbesserungen im Bereich II.GRUNDLAGEN der drahtlosen Verbindungen. Dies eröffnet den Herstellern von Mobilfunkgeräten A. Begriffserklärungen für diesen Abschnitt viele Möglichkeiten bessere Produkte auf den Markt zu 1) Kernel: Der Systemkern (engl. kernel) stellt die bringen. wichtigsten Funktionen eines Betriebssystems bereit. Aus dem Grund, dass sich Hardware immer schneller Alle auf dem Kernel aufbauenden Softwarebestandteile entwickelte, erreichten die Betriebssysteme der mobilen unterliegen dem im Systemkern festgelegten Prozess Endgeräte ihre Limits. Diese mussten also einen weitaus und Dateimanagement. größeren Funktionsumfang unterstützen können. Das 2

Abbildung 1. Das Apple iPhone 3G[1], das T-Mobile-G1[2], der Neo Freerunner[3]

2) Library: Ein Software Library bezeichnet eine die Lautstärkeregler und ein Schalter für den Stummmo- Programmbibliothek in der Programmfunktionen dus sind die physischen Bedienelemente. [4] zusammengefasst werden. Die Libraries dienen dem Durch Sensortechnik macht Apple es dem Gerät mög- Zweck bestimmte Aufgaben zu erfüllen. Allerdings sind lich, energiesparend zu arbeiten. Zum Beispiel wird die diese Funktionen als eine Art Hilfsmodul zu verstehen Bildschirmhelligkeit automatisch verringert, wenn man und nicht eigenständig lauffähig, im Gegensatz zu das Gerät zum Ohr hin bewegt. einem Programm. Des Weiteren verfügt das iPhone 3G über eine Zwei-Megapixel-Kamera, ebenso wie über einen 8 oder 3) Framework: Ein Framework fungiert als Gerüst 16 GByte großen Speicher. Auf dem iPhone läuft das für den Softwareentwickler, welcher eine Applikation iPhone OS, ein von Apple entwickeltes Betriebssystem, erstellt. Der Aufbau der Anwendung unterliegt also der welches ausschließlich in Zusammenhang mit dem vorgegebenen Struktur des Frameworks. iPhone erhältlich ist. Es stammt von dem Betriebssystem Mac OS X ab. [5]

B. Apple iPhone 3G Beschreibung Das iPhone ist ein Produkt der Apple Inc. und wurde C. iPhone 3G Systemarchitektur am 9. Januar 2007 auf der Macworld Conference & Expo Das iPhone OS, oder auch OS X iPhone, ist das offiziell vorgestellt. Die Firma aus Cupertino entwickelte Betriebssystem des Apple iPhone. Dieses basiert auf der das iPhone, da die Zahl der Mobilfunknutzer stetig an- Software Mac OS X und ähnelt ihr in Aufbau und Kon- stieg und die Apple Software, wie zum Beispiel iTunes1, zeption. Die grundlegenden Strukturen des iPhone OS nur auf Mobiltelefonen lief, die nicht Apples Produklinie werden anhand eines System-Stack-Diagramms (Fig.2) entsprachen. erläutert und beschrieben. Am 29. Juni 2007 begann der Verkauf des iPhones Das System-Stack-Diagramm besitzt vier Layer: Core der ersten Generation offiziell in den USA. Ein Jahr OS, Core Services, Media und Cocoa Touch. später folgte das iPhone der zweiten Generation mit Die Core OS und Core Services Layer beinhalten alle der Bezeichnung iPhone 3G, welches nun zum 3G Netz fundamentalen Schnittstellen, welche das iPhone kompatibel war. OS benötigt. Darunter versteht man Interfaces Das iPhone 3G lässt sich über einen 3.5-Zoll großen für Netzwerkdienste, Bonjour Services2, low-level Touchscreen bedienen und verfügt über keine physische Datentypen und weitere. Diese Schnittstellen sind C- Tastatur. Allein eine Home-Taste, ein Standby-Schalter, 2Technik zur automatischen Erkennung von Netzwerkdiensten in 1Eine Software zur Wiedergabe von Multimediainhalten IP-Netzen 3

Abbildung 2. Die iPhone 3G System Architektur [6] und Objective-C basiert und beinhalten Technologien, rufen werden. Chat- und E-mail-Anwendungen können wie zum Beispiel SQLite oder CFNetwork. [5] [6] zum Beispiel die Adressbuchinformationen nutzen. Zu den Adressbook Framework gehört auch ein User Infer- 1) Core OS: Unter dem Core OS versteht man die face Framework, welches eine Graphische Schnittstelle Kernelumgebung, worin sich die Treiber und Basis- für ein Adressbuch bereitstellt. [9] schnittstellen des Betriebssystems befinden. Der im OS Dateimanagement und Servicefunktionen stellt das X iPhone verwendete Kernel ist ein hybrid Kernel, Core Foundation Framework bereit. Diese API ist C- genannt XNU ( X is Not ). basiert und beispielsweise zuständig für das Einstel- XNU ist bekannt aus dem Open Source Betriebs- lungsmanagement. [10] system Darwin, welches die Grundlage von Mac OS Das CFNetwork Framework bietet die Funktion mit X bildet. Der XNU Kernel besteht aus den monolithi- Netzwerkprotokollen zu arbeiten. Dies ermöglicht die schen FreeBSD3 Kernel und den Mach-3.0-Kernel. Das Kommunikation über FTP oder HTTP Server. [11] Rechte- und Multiusermangement, sowie die Prozessauf- Um die Sicherheit des Gerätes zu gewährleisten, steht teilung, TCP/IP und Synchronisierung, übernimmt der das Security Framework zur Verfügung, welches die sich FreeBSD-Teil des Kernels. Für Speichermanagement, im iPhone OS befindlichen Daten möglichst gut schützen Debugging und Multitasking ist der Mach-Teil zuständig. soll. [7] [8] Ein interessantes Framework ist das Core Location Eine der Hauptaufgaben des Core OS ist die Verwal- Framework, dieses benutzt die, in der Hardware befind- tung des virtuellen Speichersystems und der Threads4. lichen GPS-Sensoren, um Längen- und Breitengrade zu Die Verwaltung des Dateisystems und des Netzwerks, bestimmen. Maps, eine standartmäßig installierte Appli- sowie die interne Prozesskommunikation, unterliegen kation auf dem iPhone 3G, benutzt dieses Framework ebenfalls dem Core OS. zur Positionsbestimmung. [12] Auf die sich im Kernel befindenden Treiber, besteht Das SQLite Library ermöglicht die Einbettung einer eingeschränkter Zugriff. Ausschließlich bestimmte SQL Datenbank in eine Anwendung und ist optimiert System-Frameworks und Applikationen können darauf für den schnellen Datenbankzugriff. [6] zugreifen. [6] 3) Media: In dem Media Layer befinden sich sogen- 2) Core Services: Der Core Services Abschnitt des nante high-level Frameworks. Diese sollen ein möglichst Betriebssystems stellt die fundamentalen Systemdienste einfaches Erstellen von Animationen ermöglichen. Des für die Applikationen bereit. Alle sich in der Software Weiteren befinden sich Frameworks für den Audio Be- befindenden Systemtechnologien beruhen auf der Grund- reich in diesem Layer. lage der Core Services, welche sich in verschiedene Eines der Graphic Frameworks ist das Core Graphics Frameworks untergliedern. Framework oder auch Quartz, welches vektorbasiertes Das Adressbook Framework beinhaltet alle Informa- Zeichnen ermöglicht. Dieses bildet das grundlegende tionen über Kontakte. Diese Daten können von Applika- Darstellungsmodell des iPhone OS. tionen, welche die nötigen Zugriffsrechte besitzen, abge- Das CoreAudio Framework stellt Informationen über Audiotypen und Dateiformate bereit. CoreAudio basiert 3frei erhältliches Unix Betriebssystem aus der BSD-Familie auf OpenAL. Diese Bibliothek dient zur Erstellung von 4Ausführungsreihenfolge in der Abarbeitung eines Programms. Ein dreidimensionalen Soundeffekten und Raumklang. [13] Thread ist Teil eines Prozesses Das AudioToolbox Framework ist ein Teil von Co- 4 reAudio und beinhaltet Playback-, sowie Aufnahmefunk- erläutert. Dieser Stack besteht aus genau fünf Ebenen: tionen für Streams, als auch Audio-Dateien. der Kernelebene, den Libraries, der Android Runtime, Dazu kommt noch das AudioUnit Framework, wel- den Application-Framework und den Applications. ches Funktionen für den Einsatz von Audiodateien bein- Im folgenden werden wir die unteren vier Layer, haltet. also die Kernelebene, die System-Libraries, die Des Weiteren besitzt das iPhone OS ein Android Runtime sowie die Application Frameworks MediaPlayer Framework, das für die Unterstützung der betrachten.[17] Filmwiedergabe verschiedenster Formate zuständig ist. [6] 1) Linux Kernel: Die Android Systemarchitektur wur- de auf der Grundlage eines Linux Kernels entwickelt. 4) Cocoa Touch: Der Cocoa Touch Layer stellt das Hierbei ist zu beachten, dass Android kein Linux ist. UIKit und das Foundation Framework bereit. Diese Der verwendete Kernel 2.6.24 wurde weitreichend modi- bilden die Basiswerkzeuge und Infrastruktur um graphi- fiziert. Der Android-Linux Systemkern hat zum Beispiel sche, eingabegesteuerte Applikationen zu implementie- keine Unterstützung der GNU C-Bibliothek, der glibc6. ren. Der Grund dafür, das System auf der Grundlage eines Das UIKit ist ein Objective-C basiertes Framework, Linux-Kernels aufzubauen, war der immense Funkti- welches jeder Applikation im iPhone OS ein bestimm- onsumfang und die Tatsache, dass Linux Open-Source tes Set an Funktionen liefert, beispielsweise ein User ist. Die bereits vorhandenen Eigenschaften, wie das Interface Management oder auch eine Unterstützung für ausgreifte Speicher- und Prozessmanagement, machten Text- und Webinhalte. die Entwicklung um ein vielfaches einfacher. Ein wei- Alle Software-Entwickler die Anwendungen für das terer Grund sich für einen Linux-Kernel zu entscheiden, iPhone OS schreiben müssen auf die objektorientierte war, das auf Benutzerrechte ausgelegte Sicherheitsmo- Programmiersprache Objective-C zurückgreifen. [6] dell. Des Weiteren bietet der Systemkern ein bewährtes Treibermodell, das eine hohe Funktionalität in Bereichen von Audio und Video leistet, sowie die Unterstützung D. T-Mobile G1 von Shared-Libraries. Weitere Modifizierungen waren nötig um den Das T-Mobile G1 von HTC5 und Google wurde am Android Kernel als eingebettetes System7 nutzen 22. Oktober 2008 in den USA veröffentlicht. Es ist das zu können. Es wurden z.B. Erweiterungen wie eine erste Mobiltelefon, welches das Betriebssystem Android Alarmfunktion, ein Low Memory Killer8, ein Kernel unterstützt. [14] Debugger und ein erweitertes Energiemanagement Es verfügt über einen 3.2-Zoll großen Touchscreen hinzugefügt. Da mobile Endgeräte aufgrund ihrer und lässt sich über ihn bedienen. Anders als beim Größe eine geringe Kapazität aufweisen und eine Apple iPhone wird dieser durch eine herausschiebbare Batterie benötigen, wurden sogenannte wake-locks und vollständige QWERTY-Tastatur unterstützt. andere energietechnische Funktionen eingeführt. Die Das Gerät verfügt außerdem über eine 3.2-Megapixel- wake-locks erhöhen oder verringern die Leistung des Kamera und einen 1 GByte microSD Speicher, welcher Displays, um energieeffizienter arbeiten zu können. [18] bis auf 8 GByte erweiterbar ist. [15] [19] [20] Das darauf laufende Betriebssystem Android ist ein Projekt der Open Handset Alliance. Zu der OHA 2) Libraries: Alle sich in der Android Systemarchi- gehören 48 Unternehmen wie Intel, Google, T-Mobile tektur befindlichen Libraries wurden in der Program- oder auch Motorola [16]. Die Android Plattform basiert miersprache C oder C++ geschrieben. auf einem Linux Betriebssystemkern und ist teilweise Die sogenannte Bionic Libc Bibliothek ist eine Er- quelloffen. weiterung der C-Standart Bibliothek. Diese wurde mo- difiziert für eingebettete Systeme und ist nicht kom-

E. Android Systemarchitektur 6Freie Implemtierung der Standart C-Bibliothek 7Ein eingebettes System (engl. embedded system) bezeichnet einen Die Android Systemarchitektur wird in diesem Ab- elektronischen Rechner, der in einem technischen Kontext eingebun- schnitt anhand eines System-Stack-Diagramms (Fig.3) den ist. Diese Systeme unterliegen gewissen Rahmenbedingungen, wie z.B. geringem Energie- und Platzbedarf 5High Tech Computer Corporation, Taiwanesischer Mobiltelefon- 8Klassifiziert die Prozesse ihrer Priorität nach in Gruppen, und hersteller beendet ,bei Aufruf, den Prozess in der schwächsten Gruppe 5

Abbildung 3. The Android System Architecture[17] patibel zu der GNU Libc. Allem voraus wurde die Webkit. Der grösste Vorteil der Bibliothek liegt jedoch Geschwindigkeit verbessert, sodass auch ein kleiner CPU darin, dass auch auf embedded systems die volle Größe schnell darauf zugreifen kann. Dies ist ausschlaggebend, der Webseite angezeigt und hohe Geschwindigkeit im da die Bibliothek in jedem Prozess geladen wird. Die Webseitenaufbau gewährleistet werden kann. Entscheidung für eine eigene Libc Implementation hat Zusätzliche Bibliotheken sind Surface Flinger und auch Lizensgründe. Die Entwickler wollten so die GPL Audio Flinger. aus dem User-Space raushalten. Die Surface Flinger Bibliothek ermöglicht den Ap- Zu den Function Libraries zählt man SQLite, das plikationszugriff auf das Display. Die Oberflächen ei- Media Framework und Webkit. ner Applikation können dadurch kombiniert werden. SQLite ist die Programmbibliothek, welche ein Daten- Kombinationen von 2D- und 3D-Inhalten sind ebenfalls banksystem enthält. Die Datenbank wurde speziell für möglich. Audio Flinger ist das Pendant nur für Audio den embedded-Einsatz entwickelt. Bei einer solchen Art Output Geräte, also z.B. Kopfhörer, Bluetooth oder Laut- von Datenverwaltungssystem wird keine Server-Software sprecher. benötigt. Die Applikation kann direkt in die Anwendung integriert werden. SQLite hat auch nur eine Größe von Für die sichere Datenübertragung im wurde wenigen hundert . Des Weiteren ist die Mög- SLL eingefügt. Dieses hybride Verschlüsselungsproto- lichkeit gegeben, die Datenbanken verteilt auf mehreren koll hat den Vorteil jedes höhere Protokoll auf Basis Dateien zu speichern. Dies erleichtert den Austausch des SSL-Protokolls implementieren zu können. Somit ist zwischen Verschiedenen Systemen. [21] eine System- und Anwendungsunabhängigkeit gewähr- Die Media Framework Bibliothek dient zur Handha- leistet. bung von Audio- und Videodateien und basiert auf der Die Hardware-Abstraction-Libraries bilden einen PacketVideo Open Core Plattform. Durch die Bibliothek komplett neuen Layer im System Stack Diagramm. Diese werden alle gängigen Audio- und Videoformate unter- C/C++ Bibliotheken definieren weitere Schnittstellen, stützt. welche Android verpflichten, für z.B WiFi, GPS oder Als Webkit bezeichnet man eine Open Source Biblio- eine Kamera, Hardwaretreiber zu implementieren. thek, die eine Grundlage bildet, auf der man einen Web- Dadurch wird die Portierung auf reelle Hardware Browser entwerfen kann. Android benutzt genau so ein erleichtert. Die Hardware-Abstraction-Libraries haben 6 quasi den Zweck eines SDK9 nur für Hardware. [18] [20] Der Neo Freerunner wurde am 3. Juli 2008 vorgestellt. Das Gerät verfügt über einen Touchscreen mit einer 3) Android Runtime: Die Core Libraries bestehen aus Auflösung von 480x640 Pixel, des Weiteren ist ein GPS- Programmierschnittstellen für Java Programme. Diese Modul, Bluetooth und Wireless Lan integriert. [23] Bibliotheken unterstützen leistungsfähige, einfache und Auf dem Neo Freerunner läuft das Betriebssystem bekannte Entwicklungshilfen für zum Beispiel Daten- Openmoko. Diese Software ist noch unausgereift, beruht strukturen, Datenzugriff, Netzwerkzugriff und Graphi- aber auf einem interessanten Konzept. Als Telefon ist es ken. nur begrenzt einsetzbar, da die Entwicklung nicht genug Alle Applikationen laufen auf der Dalvik Virtual Ma- vorangeschritten ist. Diese Software steht zwar noch chine(DVM). Auf ihr werden Java Anwendungen ausge- nicht für Stabilität, aber dafür hinter einer kompletten führt, welche vorher in das kompakte Dalvik Executable Open Source11 Philosophie. [24] Format, kurz .dex, umgewandelt wurden. Das konver- tierte Format ist embedded-optimiert. Es nutzt also die geringe Speicher- und Prozessorkapazität bestmöglich aus. Im Bereich der Programmierung setzt Android also G. Openmoko Systemarchitektur auf die Sprache Java. Die Openmoko Systemarchitektur basiert auf Open Die DVM unterstützt des Weiteren mehrere virtual Source Technologien. Diese Technologien wurden meist machine Prozesse pro Gerät. Die Datenstrukturen sind nicht direkt von der Openmoko Inc. entwickelt, sondern wiederum für embedded systems optimiert. [20] [22] existierten bereits.

4) Application Framework: Das Application Frame- 1) Kernel: Der Openmoko Kernel basiert auf den work beinhaltet die Klassen und Services, welche be- Vanilla12 2.6.21.3 Linux Kernel. Dieser wurde ebenfalls, nötigt werden, um Applikationen zu erstellen. All diese für eingebettete Systeme erweitert. Jene Erweiterung wurden in der Programmiersprache Java geschrieben. umfasst zum Beispiel Unterstützung für USB, SD und Das Activity Manager Framework ist für die Verwal- Touchscreen. tung der Applikationen konzipiert. Es stellt Funktionen Der Kernel wird mit Hilfe des Bootloaders uBoot bereit, um das Wechseln zwischen den Anwendungen zu geladen, der ebenso Einsatz in anderen Linux ermöglichen. Unterstützt wird dieses durch das Package embdedded systems findet. Der Bootloader initialisiert Manager Framework, welches eine Art Hilfe für den die Hardware, übergibt dann die Boot-Parameter an den Activity Manager darstellt. Es hat die Aufgabe Packete Kernel und startet ihn. [26] und Informationen für den Activity Manager zu laden. Die Hardware Services liefern Zugriff auf low-level 2) Linux Core services: In diesem Layer 10 Hardware API’s . Diese werden den Entwicklern zur befinden sich bestimmte Systemdienste. GPS- und Verfügung gestellt, um Anwendungen zu entwerfen. GSM-Daemons13 und -Module gewährleisten die Dadurch kann man in seinen Applikationen zum Beispiel Kommunikation über GSM und GPS. Des Weiteren WiFi-Services oder Bluetooth-Services integrieren. [17] befindet sich ein Dbus System, welches Applikationen [18] erlaubt miteinander zu kommunizieren, kurz IPC(inter process communication), in diesem Bereich. Ein Gerätemanager und ein Dienst für Bluetooth sind F. Neo Freerunner ebenfalls implementiert. Der Neo Freerunner ist der Nachfolger des Neo 1973 und unterstützt das Betriebssystem Openmoko. Die Ent- 3) The : Das in Openmoko verwendete wicklung des neuen Telefons unterlag dem Ziel, eher den UI verfügt über einen Windowmanager namens Match- Massenmarkt zu erreichen, als dies sein Vorgänger tat. box. Dieser fand bereits Verwendung bei Produkten an- Allerdings ist auch der Freerunner, sowie das Neo 1973 derer Hersteller. Matchbox ist optimiert für den Einsatz kein Telefon für den allgemeinen Handy-Nutzer, sondern auf eingebetteten Systemen. eher für fortgeschrittene Computer-User und Entwickler gedacht. 11eine Lizensansammlung für Programme, deren Quelltext öffent- lich zugänglich ist 9Packetsammlung zur Softwareerstellung(engl. Software Develop- 12von umgangssprachlich engl. vanilla für einen Standard Kernel ment Kit) ohne Extras(wie zum Beispiel ein Distributionskernel) 10Programmierschnittstelle (engl. Application Programming Inter- 13Programme, welche im Hintergrund Dienste zur Verfügung stel- face len 7

Abbildung 4. The openmoko System Architecture [25]

Die Audiofunktionalität wird gewährleistet durch das III.VERGLEICH Advances Linux Sound Architecture, kurz ALSA, wel- ches standartmäßig im Linux Kernel vorhanden ist. Bei allen drei Systemarchitekturen handelt es sich um neu entwickelte Konzepte. Man kann viele Gemeinsam- Ein Teil des User Interface ist das GTK, das Gimp- keiten, aber auch Unterschiede entdecken. Toolkit. Dies ist eine freie Komponentenbibliothek, mit deren Hilfe man eine GUI14 erstellen kann. [27] Beim Vergleich der Kernel fällt auf, dass bei Openmo- ko, sowie bei Android aktuelle Linux Kernel verwendet werden. Dadurch wollen beide Hersteller gewährleisten, 4) Application framework: Das Applikationsframe- die Hardware effizienter anzusprechen und Leistungen work unterteilt sich in die folgenden vier Frameworks. zu steigern. Der Linux Kernel 2.6 wird immer mehr in Das Core oder auch libmokocore ist zuständig für das Bezug auf den embedded Nutzen verbessert, somit wird Senden von Nachrichten zwischen Applikationen. Des er immer attraktiver für Hersteller, die Mobilfunkpro- Weiteren liest und speichert es Konfigurationsdaten. Für dukte entwickeln. Des Weiteren spielt die Tatsache, dass das einheitliche Aussehen der Applikationen sorgt das der Kernel Open Source ist, einen außschlaggebenden 15 sogenannte UI oder libmokoui . Zuständig für Kon- Punkt in der Philosophie des Openmoko- und Android- taktdaten ist der Personal Information Manager, kurz projektes. Der Linux Kernel bietet außerdem eine sehr PIM. Das .NET oder libmokonet dient als einheitliche gute Grundlage. Die vorhandenen Treiber für WLAN, Schnittstelle für Netzwerkverbindungen über Bluetooth Bildschirm, Kamera, Tastatur, Audio, Flash Speicher und oder GPRS. viele mehr sind bereits integriert. Die Tatsache, dass der Programmiertechnisch stehen für Openmoko Software Linux Systemkern 2.6 ein auf Benutzerrechte ausglegtes Entwickler prinzipiell alle in der Linuxwelt bekannten Sicherheitsmodell bereitstellt, war ein ausschlaggebender Programmiersprachen zur Verfügung, darunter zum Punkt bei der Entscheidung für den Kernel. [28] Beispiel Java, C oder auch Perl. [26] Openmoko und Android haben allerdings den Be- triebssystemkern noch optimiert und für ihre eigenen Bedürfnisse angepasst. 14graphische Benutzerschnittstelle(engl. ) Das iPhone 3G hingegen verwendet einen hybriden 15High Level API für das graphische Userinterface Systemkern, einen XNU Kernel. Apple entschied sich 8 aus Geschwindigkeitsgründen für die hybride Variante. drei Hersteller setzen auf Komponenten mit ähnlicher Die modulare Struktur des Betriebssystemkerns lässt sich Leistung. Die Tabelle in der Grafik Nr. I erläutert dies. sehr leicht erweitern, und hat dadurch Vorteile gegenüber Vergleicht man die Ziele der drei Systeme, so lassen rein monolithischen Kerneln. Ebenso werden Geschwin- sich große Differenzen erkennen. Openmoko ist daran digkeitseinbußen vermieden, die ein reiner Mikrokernel, interessiert dem Kunden vollkommene Offenheit zu ge- wie ein purer Mach, verursachen würde. währen. Alle Bestandteile sollen Open Source sein. Alle Beide Kernelsysteme sind sehr ausgereift und bieten Lizenzen sind so ausgerichtet, den User selbst an dem viele Möglichkeiten. Jedoch muss ein Linux Kernel auf Projekt teilhaben lassen zu können. Es wurden sogar die Vorteile eines Mikrokernels verzichten, zu denen bei- Schaltpläne des Gerätes unter der Creative Common spielsweise gehört, dass Betriebssystem-Dienste in den Lizenz veröffentlicht. So können Ingenieure nun frei Benutzeradressraum verschoben werden können. Gegen- über die nötigen Informationen verfügen, um beliebige teilig dazu ist der Mikrokernelteil des XNU-Kernels Funktionen und Hardware hinzufügen zu können. So langsamer als ein rein monolithischer Kernel. Dies liegt erleichtert sich Openmoko auch die Fehlersuche am daran, dass Betriebssysteme, welche auf einem Mikro- eigenen Mobiltelefon. Der Fokus des Gerätes liegt dar- kern basieren mehr Kontextwechsel benötigen als rein auf, es sich nach eigenem Ermessen zu konfigurieren. monolitische. Softwareentwicklern ist es frei überlassen in welcher Somit enstanden bei allen drei Systemen Betriebs- Programmiersprache sie Applikationen für Openmoko systemkerne die Funktionen mitbringen, das jeweilige entwerfen. System energieeffizient und doch leistungsstark zu un- Android hingegen scheint auf den ersten Blick ein terstützen. ähnliches Ziel wie die Openmoko-Plattform zu verfol- Im Bereich der Programmierung bietet Openmoko gen. Doch die grenzenlose Offenheit, die ein Openmoko- die größte Kompatibilität. Es stehen quasi alle in der System bietet, besitzt es nicht. Für Softwareentwickler Linuxwelt bekannten Programmiersprachen zur Verfü- bietet Android eine nicht so riesige Bandbreite an Pro- gung. Allerdings werden primär C/C++ und Phython grammiersprachen wie Openmoko. Es wird allein auf eingesetzt. die Sprache Java zurückgegriffen, in Verbindung mit Für das iPhone 3G lassen sich Applikationen in der der Dalvik Virtual Machine[26]. Unter dem sogenannten relativ unbekannten Sprache Objective-C schreiben. Dies Android Open Source Project veröffentlichte die Open stößt bei vielen Programmierern auf Kritik, da wenige Handset Alliance am 22. Oktober 2008 den Android Ker- diese Sprache kennen. Objective-C oder auch ObjC, nel und bietet so den Entwicklern eine bessere Einsicht erweitert die Programmiersprache C mit objektorientier- in das System. Der Grund für die Veröffentlichung von ten Sprachmitteln. Die Syntax von dieser Erweiterung Android ist nicht allein der, dem User ein offenes Sys- trennt sich von C Syntax komplett ab und ist an die tem anzubieten, sondern Google und die Open Handset Programmiersprache Smalltalk angelehnt. [29] Alliance verfolgen das Ziel, ihre Online Applikationen Android hingegen lässt den Entwickler in Java pro- über die Android-Plattform publik zu machen. grammieren, allerdings produziert die VM keinen Java Das Apple iPhone 3G ist der absolute Gegenpart zu Bytecode, sondern seinen eigenen Dalvic Bytecode. Dies den doch sehr offenen Plattformen Android und Open- spaltet die Android Plattform von Java ab. Jedoch ist moko. Die Entwicklung des Systems unterliegt allein dieser Bytecode optimiert für den Einsatz von Android. Apple. Das iPhone 3G ist zusätzlich nur in Verbin- Da der verwendete ARM16 Prozessor und die Dalvik dung mit einem Apple Computer programmierbar. Auch Virtual Machine nicht wie die Java VM, als Stapelma- die Programmiersprache Objective-C, in Verbindung mit schine arbeiten, sondern als Registermaschine, benötigt dem Cocoa Touch Framework, ist weitreichend unbe- man weniger Schritte um den Bytecode auszuführen. kannt. Diese Tatsachen machen es schwierig, eine große Die Hersteller oder Entwickler liefern Hilfsmittel wie Entwickler Community aufzubauen. [26] [30] zum Beispiel ein Software Development Kit, mit dessen Hilfe neue Anwendungen erstellt werden können. Solche IV. ZUSAMMENFASSUNG Hilfsmittel unterscheiden sich nicht sonderlich in ihren Funktionen voneinander. Das iPhone 3G und die Plattform iPhone OS wird mit Hardwaretechnisch unterscheiden sich der Neo Fre- aller Wahrscheinlichkeit durch den Namen Apple und erunner von Openmoko, das T-Mobile G1 von HTC der Produktvermarktung bestehen bleiben. Das iPhone und das Apple iPhone 3G nur in geringem Maße. Alle ist ein Designprodukt mit fortschrittlicher Technik. Es bietet dem Kunden viele Features, jedoch grenzt sich 16RISC-Konzept-, 32-Bit Mikroprozessor Apple ab und herrscht über die Entwicklung. Das iPhone 9

Tabelle I HARDWAREVERGLEICH DES NEO FREERUNNERMITDEM T-MOBILE G1 UNDDEMIPHONE 3G

Abbildung 5. Weltweite Smartphone Verkaufszahlen

OS ist ein Übertrag des Betriebssystems Mac OS X auf in Zukunft auf mehreren Mobiltelefonen finden. Die ein embedded system. Daraus resultieren sehr ähnliche Systemarchitektur ist so ausgelegt, hohe Hardwarekom- Applikationen und Funktionen für das OS X iPhone. Es patibilität zu gewährleisten. Die Open Handset Alliance wurde also, das bereits vorhande Betriebssystem modi- verschließt sich nicht, sondern bietet Einblick in die Ent- fiziert und angepasst. Zum Beispiel wurde der Kernel wicklung. Diese Tatsachen können das Betriebssystem weitreichend optimiert, um die hohe Kapazitätsbeschrän- Android weit verbreiten. kung eines Smartphones besser ausnutzen zu können. Apple, die OHA und Openmoko veröffentlich- Diese Modifizierungen nahmen auch Openmoko und ten Software-Development-Kits. Dadurch geben sie Android vor, um ihren Kernel zu verbessern. Ebenfalls Software-Entwicklern eine vereinfachte Möglichkeit, zu erkennen ist, dass die Libraries optimiert wurden. Anwendungen für die jeweiligen Plattformen zu schrei- Diese erhielten Geschwindigkeitsverbesserungen sowie ben. verbesserte Zugriffsgeschwindigkeiten um den kleinen CPU und Speicher gerecht zu werden. Openmoko wird es wahrscheinlich nicht so leicht haben wie die beiden anderen Betriebssysteme, hinter In der Softwarearchitektur sieht man ebenfalls ähn- denen große Namen wie Apple oder Google stehen, liche Strukturen. Auf allen Palttformen findet man wenn das System nicht ausgereifter wird. Das Konzept zum Beispiel die SQLite Bibliothek, welche sich durch ist gelungen. Openmoko könnte theoretisch auf jedem embedded-optimierte Eigenschaften auszeichnet. Die linuxfähigen Mobiltelefon laufen. Für Softwareentwick- Softwarearchitektur wurde also ebenfalls verbessert und ler ist Openmoko gut geeignet. Ein weiterer Vorteil ist an die gegebenen Hardwareverhältnisse angepasst. das große Angebot an freier Software, was Openmoko Android wird man, im Gegensatz zum iPhone OS, auch für den allgemeinen Telefonnutzer attraktiv machen 10 kann. [17] “What is android?” zuletzt besucht - 01.2009. [Online]. Alles in allem, verbergen sich hinter den Next- Available: http://code.google.com/android/what-is-android.html [18] P. B. (Google), “Anatomy & physiology of an android,” Generation-Mobile-Phones kleine Computer, welche 2008. [Online]. Available: http://sites.google.com/site/io/ fortschrittliche embedded system Technik in sich tra- anatomy--physiology-of-an-android gen. Dazu kommen Funktionalität, Benutzerfreundlich- [19] “Linux kernel - neuerungen im 2.6 kernel,” zuletzt besucht keit und gute Ideen. Die Hersteller versuchen durch die - 01.2009. [Online]. Available: http://de.wikipedia.org/wiki/ Linux_(Kernel)#Neuerungen_im_Kernel_2.6 Entwicklung der Systeme neue, rasant wachsende Märk- [20] G. Printemps, “Deep inside android,” Tech. Rep., te zu erschließen. Auf der Grafik Nr. 5 von Canalys fällt 2008. [Online]. Available: http://www.openexpo.ch/fileadmin/ stark ins Auge, dass die Mobilfunkbranche weiterhin documents/2008Zuerich/Slides/33_Printemps.pdf stark wächst. Das weitverbreitetste Betriebssystem ist [21] “About sqlite,” zuletzt besucht - 12.2008. [Online]. Available: http://www.sqlite.org/about.html eindeutig das Symbian OS. Durch die Einführung der [22] “Dalvik virtual machine - introduction,” zuletzt besucht beiden Linux Betriebssysteme Openmoko und Andro- - 12.2008. [Online]. Available: http://www.dalvikvm.com/ id, kann diese Statistik in den nächsten Jahren etwas #Introduction [23] J. Ihlenfeld, “Neo freerunner - freies mobiltelefon für den weiter zu Gunsten der Linux-Betriebssysteme ausfallen. massenmarkt,” 2008. Allerdings lassen Hersteller wie RIM oder Nokia diese [24] “Neo freerunner,” zuletzt besucht - 12.2008. [Online]. Entwicklung nicht an sich vorbeigehen. Sie erweiterten Available: http://wiki.openmoko.org/wiki/Neo_FreeRunner/de längst ihre Produktpaletten um zum Beispiel das Black- [25] “Neo software stack,” zuletzt besucht - 01.2009. [Online]. Available: http://wiki.openmoko.org/images/7/7b/Software1.jpg berry Storm oder die neuen N-Series Telefone. [26] T. Schmidbauer, Mechtler, Tech. Rep., 2008. [Online]. Available: stderror.at/docu/moko_wp.pdf [27] “Why openmoko,” zuletzt besucht - 12.2008. [Online]. LITERATUR Available: http://wiki.openmoko.org/wiki/Why_Openmoko [28] A. R. Deshpande, “Linux kernel 2.6: the future of embedded [1] [Online]. Available: http://www.apple.com/iphone computing,” 2004. [Online]. Available: http://www.linuxjournal. [2] [Online]. Available: http://www.portel.de/fileadmin/pics/T-Z/ com/article/7477 T-Mobile-G1-1-09.jpg [29] “Introduction to the objective-c 2.0 programming [3] [Online]. Available: http://mobile-place.info/home/images/ language,” zuletzt besucht - 01.2009. [Online]. stories/vijesti/openmoko/neo-001.jpg Available: http://developer.apple.com/documentation/Cocoa/ [4] “Apple ,” zuletzt besucht - 12.2008. [Online]. Available: Conceptual/ObjectiveC/Introduction/chapter_1_section_1.html http://de.wikipedia.org/wiki/Apple_iPhone [30] “Der kernel von mac os x,” zuletzt besucht - 01.2009. [5] “iphone os,” zuletzt besucht - 01.2009. [Online]. Available: [Online]. Available: http://www.macmark.de/osx_xnu.php http://en.wikipedia.org/wiki/IPhone_OS [6] iPhone OS Overview. [Online]. Available: http://developer. apple.com/iphone/gettingstarted/docs/iphoneosoverview.action [7] “Mac os x - xnu the kernel,” zuletzt besucht - 01.2009. [Online]. Available: http://www.kernelthread.com/mac/osx/arch_xnu.html [8] “Xnu,” zuletzt besucht - 12.2008. [Online]. Available: http://en.wikipedia.org/wiki/XNU [9] “Adress book programming guide,” zuletzt besucht - 01.2009. [Online]. Available: http://developer.apple.com/documentation/ UserExperience/Conceptual/AddressBook/AddressBook.html [10] “About core foundation,” zuletzt besucht - 12.2008. [Online]. Available: http://developer.apple.com/DOCUMENTATION/ CoreFoundation/Conceptual/CFDesignConcepts/Concepts/ AboutCF.html [11] “Introduction to cfnetwork programming guide,” zuletzt besucht - 01.2009. [Online]. Available: http://developer.apple.com/DOCUMENTATION/Networking/ Conceptual/CFNetwork/Introduction/chapter_1_section_1.html [12] “iphone os core location,” zuletzt besucht - 01.2009. [Online]. Available: http://en.wikipedia.org/wiki/IPhone_OS# Core_Location [13] “Core audio,” zuletzt besucht - 01.2009. [Online]. Available: http://en.wikipedia.org/wiki/Core_Audio [14] U. Hannemann, “Das google handy im praxistest,” Focus Digital, 2008. [Onli- ne]. Available: http://www.focus.de/digital/internet/google/ t-mobile-g1-das-google-handy-im-praxistest_aid_335417.html [15] J. Topolsky, “T-mobile g1 review,” engadget, 2008. [16] “Open handset alliance - members,” zuletzt besucht - 12.2008. [Online]. Available: http://www.openhandsetalliance.com/oha_ members.html