Ausarbeitungen zum Seminar Handy-Betriebssysteme

Wintersemester 2012/13 18. Februar 2013

Fakult¨at II – Informatik, Wirtschafts- und Rechtswissenschaften Department fur¨ Informatik Abt. Systemsoftware und verteilte Systeme

www.svs.informatik.uni-oldenburg.de Inhaltsverzeichnis

1 Die historische Entwicklung der Telefonie von den Anf¨angen bis heute (Grunau)1

2 Prozessorarchitekturen moderner Handies (Wessels)7

3 HW-Sensoren und -aktoren moderner Handies (Auf dem Berge) 13

4 Android – Grundlagen und Programmierung (Wagner) 19

5 Handy-Betriebssystem iOS (S¨oker) 24

6 Smartphone Operating System Maemo (Reichel) 30

7 Maemo – Special Applications and Programming (Luhr)¨ 37 Die historische Entwicklung der Telefonie von den Anfangen¨ bis heute

Hendrik Grunau Universitat¨ Oldenburg Deutschland [email protected]

Zusammenfassung—In dieser Arbeit wird die Entwicklung der Telefonie von der ersten Technologie bis zur heutigen Mobilfunktechnologie beleuchtet.

I.URSPRUNGDES TELEFONS A. Die Anfange¨ der Technologie Die erste Stimmubertragung¨ wurde 1861 durch den Phy- siklehrer Phillip Reis ermoglicht.¨ Hierzu verwendete er eine Abbildung 1. Telefonmodell nach Peirce [1] Schweinsblase, welche einen Hebel zu einem Kontakt bewe- gen konnte. Dadurch wurden akustische Schwingungen in einen Strom umgesetzt. Zur Ruckwandlung¨ war am anderen sechsten Oktober vorstellte. Mit diesem Modell begann die Ende des Drahtes eine Stricknadel befestigt, welche den Geschichte des Fernsprechens am 26.10.1877 in Deutsch- Boden einer Zigarrenkiste zum horbaren¨ Schwingen brachte. land. Mit diesem Fernhorer¨ waren gleichzeitig auch der erste Laut- Bells Konstruktion des Fernsprechers konnte aufgrund der sprecher und das erste Kontaktmikrofon entwickelt. Der ers- schwachen erzeugten Strome¨ Schall nur uber¨ relativ geringe te Ubertragene¨ Satz mit diesem Telefon lautete: Das Pferd ” Distanzen ubertragen.¨ Deswegen versuchte Werner von Sie- frisst keinen Gurkensalat.“, da man hier fehlende Worte nicht mens die eintreffenden Schwingungen zu verstarken.¨ Dies aus dem Rest des Satzes ableiten konnte. Jedoch war dieser gelang ihm durch zwei Veranderungen¨ des Ursprungsdesigns Apparat durch Erschutterungen¨ und Temperaturanderungen¨ von Bell. Zum einen verbaute auch er einen Hufeisenma- leicht zu storen,¨ wodurch er nur selten funktionierte und gneten statt des Stabmagneten. Zusatzlich¨ dazu wurde die nicht alltagstauglich war. schwingenden Eisenplatte durch eine trichterformigen¨ Mem- Graham Bell stellte 1874 eine Weiterentwicklung des bran ersetzt, an der eine leichte Drahtrolle zum schwebenden Fernhorers¨ vor, welcher nun aus einer Metallmembran be- Schwingen in einem starken Magnetfeld befestigt war. So stand, die direkt durch einen elektrischen Strom und magne- wurden in der Drahtrolle kraftige¨ Wechselstrome¨ induziert. tische Induktion beeinflusst wurde. Zwei Jahre spater,¨ 1876, Siemens stelle seine Entwicklung 1878 als Elektrodynami- ließ er sein verbessertes Telefon patentieren, welches nun auf sches Telefon vor. Lautsprecher und Mikrofon aus Induktionsspulen basierte, Fur¨ die nachsten¨ neun Jahre war das Mikrophon meist und schaffte damit den Durchbruch zur praktischen Relevanz fest, aber hohenverstellbar¨ in den Wandapparat mit Ein- der Erfindung. Bell verwendete fur¨ seine Erfindung einen sprechtrichter installiert. Lautsprecher waren an einer Schnur Stabmagneten, der die Schwingungen einer Metallmembran befestigt, damit sie an das Ohr gehalten werden konnten. uber¨ eine Spule in Wechselstrom umgewandelte. Dieses Da die Lautstarke¨ bei Geraten¨ der Anfangszeit noch gering Prinzip war auch umzukehren, sodass uber¨ die Spule durch war, waren einige Gerate¨ mit zwei Fernhorern¨ ausgestattet, Wechselstrom hervorgerufene Induktion die Metallmembran welche dann an beide Ohren gehalten wurden. Mit den zu Schwingunen anregte, und so Tone¨ erzeugte. Durch laufenden Verbesserungen der Gesprachsqualit¨ at¨ wurde der Verwendung eines Hufeisenmagneten statt eines Stabmagne- zweite Horer¨ weggelassen, oder fur¨ einen weiteren Zuhorer¨ ten konnten großere¨ Lautstarken¨ erzeugt werden. Noch im verwendet. 1887 wurde dann von der Firma Mix und Genest selben Jahr wurde hiermit das erste Ferngesprach¨ uber¨ eine ein neuartiger Fernhorer¨ mit integriertem Mikrofon, der zwei Meilen lange Telegrafenleitung von Cambridge nach Telefonhorer,¨ der Offentlichkeit¨ vorgestellt. Boston durchgefuhrt.¨ Der Weltweite Durchbruch des Bellschen Telefons gelang B. Die ersten Fernsprechnetze 1877, nachdem Benjamin Osgood Peirce, ein Freund und Die ersten Fernsprechnetze wurden in Deutschland ab Mitarbeiter Bells, das Gerat¨ zu einer handlichen Form (vgl. 1881 installiert. So begann das Projekt am zweiten Januar Abb. 1) verkleinerte und im Scientific American“ vom mit einer Versuchsanlage in Berlin, welche acht Teilnehmer ” 1 umfasste. Vier Monate spater¨ wurden bereits 48 vermittelt, Verbesserung des Dampfungsverlaufs¨ besaß. In den darauf darunter neun Borsensprechstellen.¨ Weitere vier Monate folgenden zwolf¨ Jahre wurden Leitungen zwischen den spater¨ erschien das erste Telefonbuch fur¨ Berlin. Es um- großeren¨ deutschen Stadten¨ gelegt, wodurch einige Ortsnetze fasste neben 94 Netzteilnehmern auch eine Anleitung des nun miteinander verbunden waren. Zusatzlich¨ existierte ab Fernsprechers. August 1900 die erste Fernverbindung zwischen Berlin Die Kosten eines einfachen Telefonanschlusses bis zu und Paris. Das erste Untersee-Fernsprechbabel wurde 1906 einer Lange¨ von zwei Kilometern betrugen 200 Reichsmark, im Bodensee verlegt. Dieses 12,6 Kilometer lange, mit was fur¨ damalige Verhaltnisse¨ sehr viel war. Fur¨ jeden Ki- einer Papierisolation und einem Bleimantel versehene Kabel lometer uber¨ dieser Strecke wurden weitere 50 Reichsmark war mit 22 Pupinspulen bestuckt,¨ welche sieben Aderpaare veranschlagt. Dadurch war das Telefon ein Statussymbol der ermoglichten.¨ Wohlhabenden. Nach einem ahnlichen¨ Verkaufsmodell wur- Bis zum Jahr 1912 wurden in Deutschland die Fern- den die Fernsprechgebuhren¨ berechnet. Fur¨ alle Gebuhren¨ verbindungen fast ausschließlich uber¨ Oberflachenleitungen¨ im Orts- und Ferndienst wurde ein Pauschaltarif verlangt. hergestellt. Diese Freileitungen wurden in Wintermonaten Fur¨ Gesprache¨ in der Nacht oder außerhalb der normalen durch Eis und Schnee oft beschadigt,¨ teilweise wurden die Dienstzeiten der Vermittlungsstellen wurden Zuschlage¨ auf Masten durch Sturme¨ umgeknickt. Deswegen wurde Mitte den Tarif erhoben. des Jahres 1912 der Auftrag fur¨ ein unterirdisches Fernkabel, das Rheinlandkabel, an die Firma Siemens & Halske“ C. Das erste Wahlverfahren ” ¨ vergeben, welche bereits das Unterseekabel verlegt hatte. Bisher war nur die Verbindung von genau zwei End- Im ersten Bauabschnitt 1913/1914 wurde begonnen auf der geraten¨ moglich.¨ Deswegen mussten in den Vermittlungs- Strecke von Berlin nach Hannover ein mit Pupinspulen ver- zentralen der ersten Netze die Verbindungen manuell durch sehenes, verdrilltes Kabel zu legen. Da die 1912 erfundenen Angestellte gesteckt werden. Fur¨ kurze Zeit waren nur Leitungsverstarker¨ noch nicht genugend¨ erprobt waren, war Manner¨ in Vermittlungszentralen tatig.¨ Diese wurden aber diese Fernleitung fur¨ eine verstarkungslose¨ Verbindung bis schnell durch Frauen ersetzt, da die hohere¨ Stimmfrequenz ins Rheinland konstruiert. Die Bauarbeiten wurden 1914 bei schlechterer Leitungsqualitat¨ besser verstandlich¨ war. durch den ersten Weltkrieg unterbrochen. Dennoch wurden Damit war das Fraulein¨ vom Amt“ geboren. ” im gleichen Jahr durch steigend Nachfrage und mangeln- Bis zur Automatisierung des Wahlverfahrens¨ wurden de Kabelressourcen Untersuchungen angestellt um mehrere in Vermittlungsstellen Fernsprechhandvermittlungseinrich- Kanale¨ im Tragerfrequenzverfahren¨ uber¨ eine Leitung zu tungen, besser bekannt als Klappenschranke,¨ verwendet. Fur¨ ubertragen.¨ Auch wurden erstmals Telegrafie und Telefonge- jeden Netzteilnehmer war hier eine Klinke und eine Fallklap- sprache¨ zeitgleich auf der selben Leitung ubertragen.¨ Dieses pe vorgesehen. Diese Klappe wurde durch einen Elektroma- Prinzip der Unterlagerung wurde in den folgenden Jahren gneten ausgelost.¨ Bei einem Gesprachswunsch¨ wurde an den zur wirtschaftlichen Nutzung der Kabel verstarkt¨ ausgebaut. Fernsprechapparaten der Zeit uber¨ einen Kurbelinduktor ein Die erste Ubertragung¨ im Tragerfrequenzverfahren¨ uber¨ Wechselstrom erzeugt, welcher den entsprechenden Elektro- 100 Kilometer Freileitung gelang nach Erfindung der Elek- magneten des Schrankes anregte, wodurch die zugehorige¨ tronenrohre¨ im Jahr 1918. Zwei Jahre spater¨ entstanden Klappe herunterfiel und so den Verbindungswunsch anzeig- die ersten Verstarker¨ amter.¨ Durch die wahrend¨ des Krie- te. Nun verband das Fraulein¨ vom Amt ihren Sprechapparat ges erfundene Gabelschaltung konnte auf Doppelleitun- mit der Klinkenbuchse des Teilnehmers, um zu erfahren mit gen die Sprache richtungsgetrennt verstarkt¨ werden. Vor- wem dieser Verbunden werden wollte. Das Ende des Ge- aussetzung war jedoch eine Verringerung der Bespulung sprachs¨ wurde durch erneutes Erregen des Elektromagneten der Kabel. Da die Pupinspulen in Spulenkasten¨ langs¨ der uber¨ den Kurbelinduktor durch den anrufenden Teilnehmer Kabelstraßen untergebracht waren, stellte dies allerdings angezeigt. Beendet wurde die Verbindung dann uber¨ die Ver- kein großes Problem dar. 1932 gelang es schließlich das mittlungskraft, welche die Klinkenstecker entfernte und die Tragerfrequenzverfahren¨ auf Fernkabeln einzusetzen. Hierzu Klappe manuell wieder in Ausgangsposition brachte, damit musste die Bespulung der Kabel vollstandig¨ entfernt werden. der nachste¨ Verbindungswunsch erfasst werden konnte. B. Die Automatisierung des analogen Netzes II.NETZENTWICKLUNG Das erste Patent fur¨ eine automatische Vermittlungstecho- A. Die Anfange¨ des analogen Netzes logie wurde bereits 1879 in den USA vergeben. Die ers- Im Jahr 1883 wurde das erste Fernamt Berlins in Betrieb te technisch durchfuhrbare¨ Losung¨ eines automatisierten genommen. Zu diesem Zeitpunkt waren 1652 Anschlusse¨ Wahlverfahrens¨ folgte allerdings erst zwolf¨ Jahre spater,¨ mit 35 Handvermittlungsstellen verzeichnet. Von hier wurde 1891, durch Almon Strowger. Sein Patentantrag fur¨ den noch im selben Jahr uber¨ eine Strecke von 150 Kilometer weltweit erfolgreichen Strowger Wahler¨ wird heute als die erste Fernleitung nach Magdeburg gelegt. Dieses Kabel die Geburtsstunde der automatisierten Vermittlungstechnik war eine Doppelleitung, welche erstmals Pupinspulen zu bezeichnet. Das Funktionsprinzip des Strowger Wahlers¨ 2 orientierte sich stark an der Arbeitsweise der Handvermitt- auf den Leitungswahler¨ als letztes Glied der Kette abge- lungsschranke.¨ Es waren mehrere Reihen von je zehn halb- bildet. Dieses Freiwahlverfahren stellte einen bedeutenden kreisformig¨ angeordneten Schleifkontakten, die zu den ent- Fortschritt fur¨ die Anfange¨ der Informatik dar, da hier die sprechenden Teilnehmerleitungen gehorten,¨ untereinander Verbindungsmoglichkeit¨ vor der Herstellung zuerst gepruft¨ angebracht. So konnten durch einen Wahler¨ 100 Ausgange¨ wurde. vermittelt werden. Im Gegensatz zur Handvermittlung wurde Die Implementierung des automatisierten Verfahrens war bei Verbindungswunsch kein Klinkenkabel verwendet, son- nur uber¨ den Zwischenschritt einer halbautomatischen Ver- dern ein beweglicher Kontaktarm, welcher sich vertikal und mittlung moglich,¨ welche 1914 in Dresden fur¨ rund 14000 horizontal bewegen konnte, um alle Kontakte zu erreichen. Teilnehmer eingerichtet wurde. Hier wurden Anrufer zuerst Die Steuerung eines Hebdrehwahlers¨ erfolgte durch elektri- mit einer Vermittlungskraft verbunden, welche dann die sche Impulse, welche beim Strowger Wahler¨ jeweils einen Teilnehmernummer tippte und automatisch verbinden ließ, von zwei Elektromagneten erregten. So konnten nachein- da die Anzahl der benotigten¨ Wahltelefone¨ nicht bereitge- ander zwei Koordinaten fur¨ eine Heb- und eine Drehbe- stellt werden konnte. Der nachste¨ Entwicklungsschritt wurde wegung verarbeitet werden. Ein dritter Magnet stellte nach durch den ersten Weltkrieg verzogert.¨ 1923 wurde dann Gesprachsende¨ die Ausgangslage des Kontaktarms, wieder in Weilheim die erste automatische Fernvermittlungsstelle her. Bis zur Erfindung der Wahlscheibe¨ wurde ein von mit mehreren Knotenpunkten in Betrieb genommen. Da Almon Strowger erfundenes Vermittlungssystem verwendet. hier alle Teilnehmer zuerst uber¨ eine teure Fernleitung Dazu besaß das Telefon fur¨ jede zu wahlende¨ Stelle der mit der Zentralstelle verbunden wurden, wurde spater¨ ein Nummer eine eigene Taste, welche entsprechend des Wertes Umsteuerwandler in die Wahltelefone¨ eingebaut, welcher der Stelle gedruckt¨ werden musste. Fur¨ die Nummer 042“ die Ortskennung der ersten Ziffern der Nummer parallel zur ” folgte so ein viermaliges drucken¨ der 10er-Taste und ein Zentralstelle abglich und bei Ubereinstimmung¨ direkt mit doppeltes drucken¨ der 1er-Taste. Die vorhandene 100er- der Vermittlungsstelle vor Ort verband, wobei die Fernlei- Taste wurde in diesem Fall ausgelassen. Mit dem System tung bereits nach Sekunden wieder freigegeben wurde. 1925 folgte, dass neben der fur¨ das Gesprach¨ benotigten¨ Doppela- wurde in Berlin das letzte große handvermittelte Fernamt der fur¨ jede dieser Wahltasten¨ ein weiteres Verbindungskabel eroffnet,¨ stillgelegt wurde die letzte Handvermittlung aller- zur Vermittlungsstelle vorhanden sein musste. Ab 1898, dings erst im Jahr 1966. mit Anerkennung des Patentes von Keith und Erickson auf die Wahlscheibe,¨ wurden die Kontaktunterbrechungen direkt C. Das Digitale Netz durch die gewahlten¨ Nummern erzeugt. Dadurch war es Mit fortschreitender Computertechnologie in den 1960er wieder moglich¨ die bereits vorhandenen Doppeladerkabel zu Jahren wuchs das Bedurfnis¨ Daten auf direkterem Wege verwenden. Benutzt wurde die Fingerlochscheibe, indem mit als bisher, Speichermedien per Post, zu verschicken. Da dem Finger das Loch der gewunschten¨ Ziffer ausgefullt,¨ und das Telefonnetz bereits fast uberall¨ verfugbar¨ war, wurde dann bis zum Anschlag gedreht wurde. Loslassen fuhrte¨ zu dieses als Ubertragungsmedium¨ gewahlt.¨ Fur¨ die Daten- einer Ruckdrehung¨ in Ausgangsposition. War die Nummer fernubertragung¨ (DFU)¨ uber¨ das Telefonnetz wurde schon vollstandig¨ eingegeben, musste dies dem Wahlsystem¨ signa- 1960 das erste Modem, abkurzend¨ fur¨ modulation und lisiert werden, indem ein weiterer Knopf gedruckt¨ wurde. demodulation, von den Bell Telephone Laboratories mit Die erste automatische Versuchszentrale wurde 1892 in einer Ubertragungsrate¨ von etwa 300 Bit/s vorgestellt. In La Porte (Indiana) mit 80 Anschlussen¨ installiert, von denen Deutschland wurde das erste Modem erst 1966 durch die 55 genutzt wurden. Jedoch war hier das Telefongeheimnis Deutsche Bundespost entwickelt, wessen Ubertragungsrate¨ nicht gewahrleistet,¨ da Teilnehmer sich direkt auf eine Ver- mit 1200 Bit/s allerdings vier mal so groß wie die des Bell- bindung aufschaltete und so in laufende Gesprache¨ integriert Modells war. wurde. In Europa wurde die erste automatisierte Vermitt- lungszentrale 1908 in Hildesheim mit 900 Teilnehmern in Betrieb genommen. Die hier verwendeten Strowger Wahler¨ waren in verschiedene Kategorien eingeteilt: Gruppenwahler¨ und Leitungswahler.¨ Die letzten beiden Ziffern der Ruf- nummer waren fur¨ den Leitungswahler¨ bestimmt, welcher damit den gewunschten¨ Anschluss wie oben beschrieben verband. Pro Gruppenwahler¨ wurde eine weitere Ziffer in der Rufnummer benotigt,¨ welche fur¨ diesen die vertikale Ausrichtung und damit die Untergruppe festlegte. In der horizontalen wurde selbststandig¨ durch den Wahler¨ eine freie Verbindung herausgesucht. Weitere Funktionen wie Gebuhrenz¨ ahlung¨ einleiten oder Freizeichen senden waren Abbildung 2. Akustikkoppler-Modem [2] 3 Zur Datenubertragung¨ wurde bei den ersten Modems ein sechs Kanalen¨ moglich,¨ also eine Ubertragungsrate¨ von ma- Telefonhorer¨ auf entsprechende Kontakte des Akustikkopp- ximal 384kbit/s. Fur¨ Firmenkunden bestand die Moglichkeit¨ lers (vgl. Abb. 2) gelegt, damit akustische Signale aus dem einen Primarmultiplex-Anschluss¨ zu installieren, welcher Telefonnetz empfangen und dorthin versendet werden konn- eine Summenbitrate von 2Mbit/s erreichte, indem 32 B- ten. Die Wandlung von und zu digitalen Signalen erfolgte im Kanale¨ kombiniert wurden. Modem uber¨ einfache Amplituden- und Phasenmodulation. Mit der rasanten Verbreitung des neuen WWW 1993 1969 wird heute als die Geburtsstunde des Internets be- wuchs auch der Bedarf an Geschwindigkeit. Mitte der 90er zeichnet, was damals das DARPANET, ein von Militar¨ und Jahre wurde dann ADSL als Nachfolger von HDSL be- einigen amerikanischen Universitaten¨ entwickeltes Kommu- ziehungsweise SHDSL entwickelt, welches die Grundlage nikationsnetz zwischen den beteiligten Universitaten,¨ war. fur¨ den verstarkten¨ und dringend benotigten¨ Netzausbau Als erste Kommunikationsprotokolle folgten zwei Jahre bildete. Durchsetzen konnte sich DSL fur¨ Privatanwender spater¨ Telnet und FTP, weitere drei Jahre spater¨ wurde TCP allerdings erst mit der Jahrtausendwende, als erste Flatrates veroffentlicht,¨ in dessen Spezifikationen erstmals der Begriff verfugbar¨ wurden und massiver Wettbewerb fur¨ fallende Internet“ verwendet wurde. Preise sorgte. Heutzutage werden neben traditionelleren ” Der nachste¨ große Entwicklungsschritt begann 1979 mit ISDN-Anschlussen¨ auch komplette DSL-Anschlusse¨ ange- dem Bau der ersten Glasfaserleitung und der Entscheidung boten. Telefonieren wird dadurch mehr und mehr mit Voice das komplette Fernsprechnetz zu digitalisieren, womit vor over IP, dem Telefonieren uber¨ das Internet, ersetzt, was den allem die Vermittlungen gemeint waren. Drei Jahre spater¨ Wandel des Telefonnetzes zum Internet verdeutlicht. wurde entschieden ein Dienste-integrierendes digitales Netz- werk zu errichten. Die Spezifikationen fur¨ ISDN (Integrated III.MOBILTELEFONIE Services Digital Network) folgten 1984 durch die inter- A. Das A-Netz nationale Telekommunikationsbehorde.¨ Dabei stutzte¨ man Die Geschichte der mobilen Telefonie begann 1952 in sich auf das EWSD-System von Siemens, welches bereits Bremen. Hier wurde das erste Dokumentierte Autotelefon 1980 erste digitale Vermittlungen ermoglichte.¨ Zeitgleich mit 16 Kilo Gewicht und einem Kostenpunkt von drei VW wurden die ersten Heimcomputer immer beliebter, wodurch Kafern¨ in ein Taxi installiert. Bis 1958 bestand in Deutsch- die Datenfernubertragung¨ einer breiten Masse verfugbar¨ war. land noch kein einheitliches Mobilfunknetz. Stattdessen Die ersten Pilotprojekte fur¨ ISDN entstanden 1987 in existierten viele unzusammenhangende¨ Hafen-, Zug-, und Mannheim und Stuttgart, worauf zwei Jahre spater¨ der offizi- Stadtfunknetze, welche noch nicht fur¨ zivile Nutzung vor- elle Praxisdienst folgte. In weiteren funf¨ Jahren gelang es al- gesehen waren. Dies anderte¨ sich mit der Einfuhrung¨ des A- le notwendigen Softwareanderungen¨ in den Vermittlungstel- Netzes, bei der diese in ein offentliches¨ Netz, dem weltweit len abzuschließen, wodurch ISDN kommerziell verfugbar¨ großten¨ seiner Art, unter der Vorwahl 010 Zusammengefasst wurde. Nach einem weiteren Jahr war die flachendeckende¨ wurden. Technisch bedingt war die Kapazitat¨ auf maximal Digitalisierung Deutschlands abgeschlossen, wobei die noch 11 000 Teilnehmer beschrankt,¨ welche sich aufgrund hoher nicht digitalisierten Vermittlungsstellen per Fremdaufschal- Anschaffungs- und Haltungskosten aus wenigen Großunter- tung umgangen. wurden. Ende 1997 war die Umstellung nehmern und Politikern zusammensetzten. Die Gesprache¨ vollendet. Mit Digitalisierung der Vermittlungen war es des etwa 80% deckenden Netzes wurden von insgesamt 60 nun auch moglich,¨ ein Modem direkt an die Telefonleitung Vermittlungskrafte¨ verbunden, sofern der Aufenthaltsort des anzuschließen, ohne den Umweg uber¨ eine Akustikkopplung gewunschte¨ Teilnehmers in Deutschland war. Problematisch gehen zu mussen,¨ wenn man sich mit dem Internet verbinden hierbei war den Funkbereich einer Zelle zu verlassen. Da wollte. Dadurch verringerte sich die Einwahlgeschwindig- die Gesprache¨ uber¨ die Landesvermittlung gehalten wurden, keit von etwa 30 auf rund zwei Sekunden. fuhrte¨ ein Bereichswechsel zum Verbindungsverlust mit die- Fur¨ Privatkunden war 1998 mit den Modellen V.90“ ” ser, wodurch das Gesprach¨ zusammenbrach. und V.92“, welche besser als 56K-Modem“ bekannt sind, ” ” der Hohepunkt¨ der Modementwicklung erreicht. Hiermit B. Das B-Netz ließ sich unter der Vorraussetzung, dass der Anschluss 14 Jahre spater,¨ 1972, wurde mit dem B-Netz der offizielle mit einer digitalen Vermittlungsstelle verbunden war, eine Nachfolger des A-Netzes eingefuhrt¨ und uber¨ sechs Jahre Ubertragungsrate¨ von 56kbit/s erreichen. Die Leitungsqua- flachendeckend¨ ausgebaut. Damit war auch im Mobilnetz litat¨ erlaubte allerdings meistens nur Geschwindigkeiten der Selbstwahlbetrieb¨ eingefuhrt.¨ Hierfur¨ war das Sende- bis 40kbit/s. Die maximale Geschwindigkeit eines ISDN- gebiet in nummerierte Zonen unterteilt, welche zusammen Basiskanals (B-Kanal) betrug 64kbit/s, ein Basisanschluss mit der Ortskennzahl Vorwahlnummern bildeten. So besaß beinhaltete zwei Basiskanale¨ sowie einen Steuerkanal (D- jedes Gebiet eine eigene Vorwahl, welche dem Anrufer fur¨ Kanal) mit 16kbit/s. Fur¨ eine Datenubertragung¨ konnten nur einen Verbindungsaufbau bekannt sein mussten. Zusatzlich¨ B-Kanale¨ genutzt werden, diese allerdings auch zusammen- dazu konnten durch begrenztes Roaming erstmals Mobilge- geschaltet. Fur¨ Heimanwender war eine Kaskadierung von sprache¨ mit Osterreich,¨ Luxemburg und den Niederlanden 4 getatigt¨ werden, die Funkzelle konnte allerdings noch nicht ab 1995 durch Zusatzfunktionen der D-Netze auch in den ohne Gesprachsunterbrechung¨ gewechselt werden. Wegen USA genutzt werden. Durch die Digitalisierung konnten Große¨ und Gewicht wurden weiterhin meist Autotelefone nun auch andere Datentypen ubertragen¨ werden. Davon verwendet, welche die fur¨ das Telefongeheimnis notige¨ Ver- machte ab 1994 das Short-Message-System gebrauch, wel- schlusselung¨ nur mit zusatzlicher,¨ sehr teurer Technologie, ches ursprunglich¨ dazu gedacht war den Netzteilnehmer gewahrleisteten.¨ Dadurch wurde ein Großteil der Gesprache¨ mit kleinen Informationen vom Anbieter zu versorgen. Mit unverschlusselt¨ ubertragen¨ und konnte durch Funkanlagen fortschreitender Technologie wurden die Endgerate¨ immer abgehort¨ werden. Trotz hoher Kosten war das Netz bereits weiter verkleinert und begannen den Weg zu Smartphones. Ende des Jahrzehnts ausgelastet, sodass die Frequenzen des Zu Einfuhrung¨ des neuen Netzstandards lagen die Preise 1977 deaktivierten A-Netzes integriert werden mussten. In fur¨ Mobiltelefone noch bei etwa drei tausend Euro. Mit Spitzenzeiten umfasste das B-Netz etwa 27 tausend Teilneh- steigender Nachfrage und neuerlicher Konkurrenz durch das mer, bis es 1994 abgeschaltet wurde. E-Netz sanken diese aber schnell. Mit diesem startete 1993 E-Plus als dritter Anbieter, vor- C. Das C-Netz erst auf den Berliner Raum konzentriert, ein Mobilfunknetz. Mit der flachendeckenden¨ Einfuhrung¨ des C-Netzes 1985 Anders als die D-Netze war es speziell auf energiesparende war der nachste¨ große Entwicklungsschritt getan. Durch Handys ausgelegt, welche durch geringere Sendeleistung ein den Einsatz des Home Location Register-Verfahrens (HLR) engmaschigeres Netz von Sendemasten benotigten.¨ Weiter- war es nun moglich¨ Anrufe ohne Wissen um die genaue hin verwendete das E-Netz Frequenzen im Bereich von 900 Position des Gesprachspartners¨ zu tatigen,¨ da das System MHz, wohingegen die D-Netze das Frequenzband um 1800 diese selbststandig¨ erfasste. Auch wurde ein Hand Over Ver- MHz nutzten. Dadurch war es nicht moglich,¨ ein Handy in fahren implementiert, welches den Wechsel der Funkzelle beiden Netzarten zu betreiben. Dies anderte¨ sich erst Ende ohne Gesprachsabbruch¨ ermoglichte.¨ Allerdings betrieben der 90er Jahre mit Einfuhrung¨ der Dual- und Tri-Band- die Nachbarlander,¨ anders als beim B-Netz, das C-Netz mit Telefone. Mit der Zuweisung von D- und E-Netz Frequenz einem anderen Standard, was Roaming effektiv verhinderte an das jeweils andere Funknetz zur Kapazitatserh¨ ohung¨ und somit einer der Hauptgrunde¨ fur¨ die Weiterentwicklung durch die Bundesnetzagentur im Jahre 2006 lasst¨ sich die der Netztechnologie war. Unterscheidung anhand der genutzten Frequenzbander¨ nicht Eine weitere Neuerung des C-Netzes war das Losen¨ der mehr durchfuhren,¨ sodass die Netze mehr oder weniger Bindung von Telefonnummer und Gerat,¨ wie sie im A- zu einem verwoben sind. Insgesamt konnten die Netze und B-Netz zu finden war. Stattdessen wurde sie auf einem im zweiten Quartal 2011 etwa 110 Millionen Teilnehmer Magnetstreifen einer Berechtigungskarte, dem Vorlaufer¨ der verzeichnen. SIM-Karte, gespeichert. Weiterhin waren nun alle Netzteil- 2004 wurde der GSM-Standard im digitalen Netz langsam nehmer bundesweit wieder mit einer einheitlichen Vorwahl, durch UMTS ersetzt. Damit wurde die mit GSM eingefuhrte¨ 0161, verknupft.¨ Der Haupteinsatzbereich des auf etwa paketorientierte Datenubertragung¨ um das Internet-Protokoll 850 tausend Teilnehmer gewachsenen C-Netzes verschob (IP) erganzt,¨ welches allerdings nicht fur¨ Gesprache¨ genutzt sich nur wenig im Vergleich zu den vorherigen Netzen, wurde. Dadurch wurde die Datenubertragungsrate¨ von etwa neben Autotelefonen waren nun auch Kustenschifffahrt¨ und 14kbit/s auf maximal 220kbit/s gesteigert. Zusatzlich¨ waren Eisenbahntelefone enthalten. Dennoch wurden die ersten nun neue Funktionen wie ein Konferenzanruf an mehre- standardisierten portablen Telefone eingefuhrt.¨ Sie besaßen re Teilnehmer oder gleichzeitiges telefonieren und surfen ein Gewicht von etwa funf¨ Kilogramm und konnten ohne fest moglich.¨ Durch den Dualmode waren alle UMTS-Endgerate¨ installierte Sendestation betrieben werden, was sie zu den zu GSM abwartskompatibel.¨ Mit HSPA und HSPA+ als ersten wirklichen Mobiltelefonen machte. Ebenfalls wurde Softwareerweiterungen wurde die Geschwindigkeit auf bis die Sicherheit der Verbindungen durch Einfuhren¨ einer Ver- zu 21 Mbit/s gesteigert. schleierungsfunktion verbessert, welche das Mithoren¨ von Im Jahr 2010 wurde LTE als UMTS-Nachfolger ein- Gesprachen¨ erschwerte. gefuhrt,¨ welches nun auch Telefonie mit IP realisiert und Datenraten bis 100Mbit/s unterstutzt.¨ Dabei wurde es D. Die digitalen Funknetze D und E erganzend¨ installiert, da die bestehenden Netze nur nach- Im Sommer 1992 startete die Deutsche Telekom mit gerustet¨ werden mussten und ein paralleler Betrieb mit dem D1-Netz das erste digitale Funknetz. Wenig spater¨ UMTS moglich¨ ist. wurde von Mannesmann Mobilfunk allerdings ein zweites, Die Erweiterung des LTE-Standards, dass noch nicht ebenfalls auf dem GSM-9000-Standard basierendes Fun- verfugbare¨ LTE Advanced, kann mit bis zu 1Gbit/s knetz, das D2-Netz, in Betrieb genommen, wodurch es zur ubertragen.¨ Fur¨ diese Umrustung¨ ist neben neuen End- ersten Konkurrenzsituation der Mobilfunkgeschichte kam. geraten¨ ebenfalls nur ein Softwareupdate der Sendestationen Roaming, welches nun in ganz Europa verfugbar¨ war, vonnoten.¨ Erste kommerzielle Versionen der Technologie konnte aufgrund abweichender Technologien allerdings erst sollen 2013 verfugbar¨ sein. 5 LITERATUR [10] http://www.wissen.de/die-geschichte-der-mobiltelefone

[1] (cc) by-nc-sa, Lehrstuhl fur¨ Nachrichtentechnik, RWTH Aa- [11] http://www.focus.de/digital/handy/handygeschichte did chen 12098.html

[2] (pd) Lorax on en.wikipedia [12] http://www.mobilfunk-geschichte.de

[3] http://www.bayern-online.com/v2261/artikelliste.cfm/203/ [13] http://www.ighft.de/ Geschichte-Telekommunikation-bis-1999.html [14] www.telefongeschichte-owl.de/ [4] http://www.auslandsvorwahl.info/historie telefon.php [15] Gunther¨ Mergelsberg: Das Telefon und seine Entwicklung. 2 [5] http://www.fernmeldemuseum-aachen.de/html/zeitFon.html Bande,¨ Sammler- und Interessengemeinschaft fur¨ das histori- sche Fernmeldewesen e. V., Bad Homburg 1996. [6] http://www.uni-protokolle.de/Lexikon/Geschichte des Telefons.html#Die %E2%80%9EErfindung%E2%80%9C [16] http://www.elektronik-kompendium.de/sites/kom/index.htm des Telefons [17] http://www.telespiegel.de/html/handy.html [7] http://www.vdsl-tarifvergleich.de/vdsl-technik/geschichte- von-isdn-ueber-dsl-bis-vdsl.html [18] http://www.lte-anbieter.info/lte-geschichte.php

[8] http://history-computer.com/ModernComputer/ [19] http://www.lte-advanced-verfuegbarkeit.com/ Relays/Stibitz.html [20] http://www.golem.de/1106/84529.html [9] http://www.computerwoche.de/a/isdn-schnelle-zufahrt- auf-die-datenautobahn,1089013

6 Prozessorarchitekturen moderner Handys (insb. ARM)

Stephan Wessels Department für Informatik Carl von Ossietzky Universität Oldenburg

Zusammenfassung—Moderne Handys dienen mittlerweile - Handys müssen • Wärmeentwicklung/Platzbedarf als Allzweck-Computer. Sie stellen hohe Anforderungen an handlich sein. Es wird dabei viel Wert auf ein kleines ihren Prozessor und dessen Leistungsfähigkeit. Im Gegensatz und flaches Gehäuse gelegt. Durch den geringen Platz dazu steht die Forderung nach einem geringen Energie- und Platzbedarf, sowie geringen Kosten. Das RISC-Design bietet ist es nicht möglich einen Lüfter einzubauen, weshalb einen Ansatz um diesen Problemen entgegen zu kommen. sich die Abwärme der elektronischen Bauteile im Ge- Ein simpler Befehlssatz mit einheitlichen und schnellen In- häuse staut. Daher darf der Prozessor nicht übermäßig struktionen liefert eine effiziente Rechenleistung. Die ARM- viel Wärme produzieren und sollte zudem so klein wie Prozessorarchitektur nimmt sich genau diesen Ansatz zum Vor- möglich sein. bild. Es soll gezeigt werden, wie die 32-Bit ARMv7-Architektur - Handys sind oft auf ein breites Käuferspek- aufgebaut ist. Dabei wird der große Registersatz vorgestellt und • Kosten auf den simplen Befehlssatz eingegangen. Genauer wird die Ko- trum zugeschnitten, für die der Preis des Gerätes ent- dierung der Datenverarbeitungsbefehle besprochen. Weiterhin scheidend ist. Um die Verkaufskosten dementsprechend wird die Möglichkeit durch Thumb-Befehle einen dichteren niedrig zu halten, darf auch der Prozessor nicht viel Code zu erzeugen und das big.LITTLE-Konzept, zur Steige- kosten. rung der Energieeffizienz, angerissen. Abschließend folgt ein - Moderne Handys stellen eine Vielzahl Ausblick auf den kürzlich angekündigten Nachfolger ARMv8, • Leistung welcher zum ersten Mal 64-Bit unterstüzt. an Funktionen bereit. Diese sollen für den Benutzer schnell und teilweise auch zur gleichen Zeit verfügbar I.EINLEITUNG sein. Somit werden hohe Anforderungen an die Rechen- leistung des Prozessors gestellt. Handys sind aus unserem Leben nicht mehr wegzudenken. Da mobile Telephone in der Vergangenheit überwiegend zur Der Großteil der Menschen in Deutschland besitzt ein mobi- Kommunikation benutzt wurden stand der Leistungsaspekt les Telephon und benutzt dieses regelmäßig. Dabei schreitet im Hintergrund. Mit der Zeit jedoch wurden immer mehr die Entwicklung rasant voran und in den letzten Jahren Funktionen benötigt um auf dem Markt überzeugen zu haben die Smartphones einen regelrechten Boom erlebt. können. Das hat dazu geführt, dass Handys heute nicht mehr Diese übernehmen mittlerweile viele Funktionalitäten eines nur an ihrer Akkulaufzeit, sondern auch an der Leistung des modernen Desktop-PCs. Prozessors gemessen werden. Die ersten drei Anforderungen Ein Hauptmerkmal der Geräte bleibt aber weiterhin die stehen im Gegensatz zur Letzten. Wird die Leistung erhöht, Mobilität, die durch geringe Bauform und fortschrittliche so hat dies z.B. oftmals eine gesteigerte Wärmeentwick- Akkutechnik gegeben ist. Damit trotz steigender Leistung lung zur Folge. Daraufhin stellt sich die Frage, welche die Geräte mobil und handlich bleiben, werden an die Prozessorarchitektur einen guten Kompromiss aus geringem Hardware spezielle Anforderungen gestellt. So ist z.B. der Stromverbrauch, Platzbedarf und Kosten, sowie trotzdem Prozessor ein wichtiger Faktor im Hinblick der Effizienz. Im hoher Leistung bietet. Folgenden wird darauf eingegangen, welche Bedingungen Handy-Prozessoren erfüllen müssen und welche Architektur III.RISC speziell auf diese Anforderungen zugeschnitten ist. Die Idee des Reduced Instruction Set Computer kam im Jahre 1980 an der University of California, Berkeley auf II.ANFORDERUNGENAN HANDY PROZESSOREN [4]. Man versteht darunter eine Designphilosophie für die Handys sind mobile Geräte. Dementsprechend werden an Erstellung von Prozessorarchitekturen, bzw. deren Befehls- ihre Prozessoren spezielle Anforderungen gestellt, die sich sätzen. Das Gegenteil zum RISC ist der Complex Instruc- von einem Desktop-PC Prozessor unterscheiden. Besonders tion Set Computer (CISC), welcher zu der damaligen Zeit die folgenden Faktoren spielen eine Rolle: weit verbreitet war. Dieser beruhte auf der Annahme, dass - Handys sollen mobil sein und müs- komplexe Befehle einen Geschwindigkeitsvorteil bieten, da • Stromverbrauch sen durch Akkus versorgt werden. Diese bieten aber man mit ihnen weniger Befehle benötigt um ein Programm nur eine begrenzte Kapazität. Um trotzdem die Laufzeit auszudrücken. Dies hat jedoch dazu geführt, dass einzelne des Gerätes zu maximieren muss ein stromsparender Instruktionen sehr viele Prozessorzyklen benötigt haben. Prozessor verbaut werden. Außerdem war es bei vielen Befehlen möglich auf den 7 Speicher zuzugreifen, was aber viel Zeit in Anspruch nimmt. the Nokia 6110, which was the first ARM-powered GSM Durch die sehr komplexen und unterschiedlichen Befehle, phone.“ [8] Seitdem ist die ARM-Architektur vorherrschend war es schwer diese in einer Pipeline abzuarbeiten [5]. Somit auf dem Gebiet der Handy-Prozessoren, wird aber auch als hat die wachsende Komplexität der Prozessoren letztendlich Mikrocontroller in vielen anderen Geräten verwendet. dazu geführt, dass es immer schwieriger wurde diese zu optimieren und einen Leistungsschub zu erreichen. V. ARM MODELLE Die aktuelle Prozessor Produktreihe von ARM lässt sich A. RISC-Merkmale in drei Kategorien einteilen [1]: RISC-Architekturen sollten um einiges simpler sein. Die - für Bereiche in denen hohe Leistung gefragt • Cortex-A Idee war, dass einfache und kurze Befehle schneller ab- ist und komplexe Betriebssysteme verwendet werden. gearbeitet werden können als komplexe und lange. Die Cortex-R - verwendet in Echtzeitsystemen Hauptmerkmale sind dabei: (nach [4] und [5]) • Cortex-M - gedacht als Mikrocontroller in eingebette- Eine Load-/Store-Architektur, in der Befehle nur auf • • ten Systemen den Registern operieren. Ein Speicherzugriff ist ledig- Für moderne Smartphones ist heutzutage hauptsächlich die lich mit den load und store Befehlen möglich, welche Cortex-A Familie von Bedeutung. Diese teilt sich wieder Daten aus dem Speicher in Register laden oder aus in verschiedene Modelle auf, die sich insbesondere in der einem Register in den Speicher schreiben. Leistung unterscheiden [1]. Simple Instruktionen, die in einem Prozessorzyklus • Cortex-A5 ausgeführt werden können. • Cortex-A7 Eine feste Befehlslänge die das Dekodieren vereinfacht. • • Cortex-A8 Eine große Anzahl an Registern. Diese können z.B. für • • Cortex-A9 die Ablage von Parametern und lokalen Variablen bei • Cortex-A15 einem Prozeduraufruf benutzt werden. Somit müssen • Cortex-A53 keine teuren Speicheroperationen verwendet werden. • Cortex-A57 • IV. GESCHICHTEVON ARM Die ursprüngliche ARM Architektur hat sich mit der Zeit Folgende Informationen entstammen [5]. Anfang der weiterentwickelt, sodass diese Modelle alle - bis auf A53 1980er suchte Acorn Computers Limited - eine Computerfir- und A57 - mittlerweile auf der ARMv7 Architektur basieren. ma aus Cambridge, England - nach einem Nachfolgemodell Diese wird im Anschluss vorgestellt. Der Nachfolger und für den kommerziell erfolgreichen BBC Micro. Nachdem die momentan aktuellste Version ist die ARMv8 Architektur, aber kein geeigneter Prozessor gefunden werden konnte, welche im Ausblick vorgestellt wird. Die Cortex-A53 und entschied man sich eine eigene Architektur zu entwerfen. -A57 Prozessoren basieren auf dieser Version, wurden aber Das Problem dabei war, dass Acorn kaum Erfahrung mit bis heute noch nicht in einem Gerät verbaut [9]. Prozessordesign hatte. Es musste also eine zugleich simple, aber trotzdem leistungsstarke Architektur sein. Glücklicher- VI.ARMARCHITEKTUR weise kam etwa zur gleichen Zeit in Berkeley die Idee des Die ARM Prozessorarchitektur ist eine 32-Bit Prozesso- RISC-Designs auf. Der erste Prozessor, der diese Philoso- rarchitektur. Sie wurde mit dem Gedanken entwickelt ein phie umsetzte war der Berkeley RISC I. Dieser besaß gute simples Design zu bieten, das einfache Instruktionen besitzt. Leistungswerte sowie eine einfache Struktur. Daher einigte Man wollte auf komplexe Befehle verzichten. Mit diesen man sich die gleiche Strategie zu verfolgen. 1985 begann lässt sich zwar kompakterer Code schreiben, der mit weniger somit die Entwicklung der Acorn RISC Machine, welche Befehlen auskommt, aber die Ausführung der einzelnen 1990 zu Advanced RISC Machine umbenannt wurde. Im Befehle dauert lang. Die meisten ARM-Befehle brauchen gleichen Jahr wurde die Firma ARM Limited gegründet, die hingegen nur einen Prozessorzyklus zur Ausführung und sich von nun an um die Entwicklung der ARM Architektur sind gleich lang [5]. Daher können diese gut optimiert kümmern sollte. werden und es kann insgesamt ein Geschwindigkeitsvorteil Heutzutage vergibt ARM hauptsächlich Lizenzen an Un- erzielt werden. ternehmen, die daraufhin Prozessoren basierend auf dem ARM Chip Design herstellen. Wirklich erfolgreich wurden A. Register die Prozessoren jedoch erst Mitte der 90er Jahre als die Die ARM-Architektur besitzt insgesamt 37 Register - alle mobilen Telephone immer beliebter wurden. So antwortet 32 Bit groß. Der Benutzer kann auf 16 frei verwendbare John Biggs - einer der Mitbegründer von ARM Ltd. - auf Register zugreifen (R0-R15). Weiterhin ist für den Benutzer die Frage, wann der Erfolg von ARM eingesetzt hat: „It das Current Program Status Register (CPSR) sichtbar, auf really took off in the mid ’90s. That’s when the ARM7- das aber nicht direkt zugegriffen werden kann. Die restlichen TDMI was licensed by Texas Instruments and designed into Register sind den privilegierten Modi vorbehalten [4]. 8 aus dem Register geschoben wurden oder wenn es bei einer Addition einen Übertrag . -Overflow: Wird gesetzt wenn es bei einer arithmeti- • V schen Operation zu einem Überlauf kam. Die unteren Bits des CPSR-Registers werden zur Steue- rung des Prozessors benutzt. Dabei dienen die I- und F-Bits zum De-/Aktivieren der Prozessor-Unterbrechungen. Wenn das T-Bit gesetzt ist, werden die momentan ausgeführten Befehle als 16-Bit Thumb-Befehle interpretiert. Ansonsten werden die normalen ARM-Befehle angenommen [5]. Die untersten 5 mode-Bits repräsentieren den Zustand, in dem sich der Prozessor gerade befindet. Die ARM Architek- q tur unterstützt sieben verschiedene Prozessorzustände, die im Folgenden vorgestellt werden. B. Prozessorzustände - Standard Modus für Anwendungsprogramme. • User Abbildung 1. ARM Registersatz - Modus für Betriebssystemanwendungen. • System - Für Prozessor-Interrupts, die • Fast Interrupt (fiq) schnell ausgeführt werden müssen. Abb. 1 zeigt die verfügbaren Register. Auf der linken Seite - Für Standard-Interrupts. • Interrupt (irq) stehen die Register, welche im user-Modus sichtbar sind. Da- - Für Software-Interrupts, die von • Supervisor (svc) bei sind R13-R15 für bestimmte Zwecke vorgesehen. ARM Anwendungen angestoßen werden. empfiehlt jedoch nur diese Verwendung und theoretisch - Um Speicherfehler zu behandeln. • Abort (abt) lassen sich diese Register trotzdem als Mehrzweckregister Undefined (und) - Für undefinierte Befehle. verwenden [2]. • Der User-Modus ist der einzige nicht-privilegierte Modus PC - Program counter: In diesem Register wird die • und für normale Anwendungsprogramme vorgesehen. In ihm Adresse des nächsten Befehls gespeichert. Wird diese werden wichtige Systemresourcen vor unbefugtem Zugriff manuell verändert, so springt der Prozessor zu der geschützt. Ein Wechsel des Zustands ist aus dem User- neuen Adresse. Modus nicht möglich [4]. - Link register: Hier kann bei einem Unterpro- • LR grammaufruf die Rückkehradresse gespeichert werden. Der System-Modus ist für das Betriebssystem vorgesehen. - Stack pointer: Dieses Register wird dazu benutzt Er besitzt die gleichen Register wie der User-Modus, kann • SP auf den Stack zu verweisen. aber uneingeschränkt auf Systemresourcen zugreifen. Die restlichen Modi sind genau wie der System-Modus privi- legiert und für die Unterbrechungs- und Fehlerbehandlung vorgesehen [4]. Je nach Prozessorzustand werden spezielle Register er- setzt, damit diese z.B. bei einer Unterbrechung nicht gesi- Abbildung 2. CPSR Register (vgl. [4] Abb. 8.3) chert werden müssen. So werden im fiq-Modus die Register R8-R14 ersetzt. Dadurch, dass in diesem Modus nun eigene Das CPSR-Register (Abb. 2) dient zur Speicherung der Register zur Verfügung stehen, die nicht mehr zwischenge- Status- und Steuermerker. Für den Anwendungsentwickler speichert werden müssen, können Unterbrechungen von ho- sind dabei hauptsächlich die oberen Statusbits interessant. her Priorität schneller abgearbeitet werden. In den restlichen Diese werden bei Bedarf z.B. nach einer arithmetischen Ope- Modi werden lediglich R13 und R14 ersetzt [4]. ration oder einem Vergleichsbefehl gesetzt. Die einzelnen Zusätzlich besitzt jeder dieser Unterbrechungs- und Feh- Bits stehen für [4]: lermodi ein Saved Program Status Register (SPSR). Dieses -Negative: Wird gesetzt wenn das Ergebnis der letzten dient zur Speicherung des CPSR-Registers. Abb. 1 zeigt alle • N Operation negativ war (Das oberste Bit beträgt 1). Register und die jeweiligen Zustände in denen sie ersetzt -Zero: Wird gesetzt wenn das Ergebnis der letzten werden. Falls ein User-Modus-Register nicht ersetzt wird, ist • Z Operation null war. es im entsprechenden Zustand auch sichtbar, sodass in jedem -Carry: Wird gesetzt wenn bei einer Operation Bits Zustand auf insgesamt 16 Register zugegriffen werden kann. • C 9 C. Befehlssatz Wert oder über ein weiteres Register verschoben, bzw. Alle Standard ARM-Befehle sind 32 Bit lang. rotiert werden (s. Tab. Flexible Operand 2 in [3]). ARM-Prozessoren basieren, wie die meisten RISC- Da jeder Befehl konditioniert ausgeführt werden kann, ist Prozessoren, auf einer Load/Store-Architektur. Das es möglich an das Mnemonic ein Bedingungskürzel (cond) bedeutet, dass auf Daten aus dem Hauptspeicher nur über anzuhängen (s. Tab. Condition Field in [3]). entsprechende Lade(load)- und Speicher(store)-Befehle Zusätzlich lässt sich mit einem s am Ende des Befehls zugegriffen werden kann. Sämtliche Befehle, die Daten ausdrücken, dass die Statusmerker gesetzt werden sollen. verändern oder analysieren können somit nur mit direkten Wird dieses weggelassen, so wird der Wert in den Merkern Werten oder Registern arbeiten. Es ist nicht möglich, wie nicht überschrieben, wodurch sich Ergebnisse einer Opera- z.B. bei der Intel-Architektur Speicheroperanden anzugeben tion über mehrere Befehle hinweg speichern lassen. [5]. Folgendes Beispiel zeigt eine bedingte Multiplikation mit Dabei lassen sich bei vielen Befehlen bis zu drei Register 3 mittels add: angeben. So können das Zielregister und beide Operanden- register unabhängig voneinander bestimmt werden. addeqs R0, R1, R1, lsl #1 Weiterhin ist es möglich jeden Befehl konditioniert aus- führen zu lassen. Das heißt, es ist möglich eine Bedingung Durch diesen Befehl wird zunächst überprüft ob das mit anzugeben, welche vor dem Befehl überprüft wird. Falls Zero-Flag gesetzt ist (eq). Falls dies zutrifft, wird der Wert diese gegeben ist, wird der Befehl ausgeführt, ansonsten des Registers R1 um 1 nach links verschoben (R1, lsl wird zum nächsten Befehl übergegangen. Dadurch lassen #1), mit sich selber addiert und dann in R0 gespeichert. sich zusätzliche Compare- und Branch-Befehle einsparen, Zusätzlich werden die Statusmerker gesetzt. die z.B. bei der Intel-Architektur zur Auswertung Boolscher- Die gleiche Syntax (bis auf den Befehl selber) besitzen Ausdrücke nötig wären [5]. die logischen Funktionen, wie z.B. and oder orr. Diese Viele Befehle, wie z.B. mov unterstützen ein Verschieben arbeiten bitweise und speichern das Ergebnis der Opera- oder Rotieren des zweiten Operandenregisters, bevor der tion im Zielregister ab. Zusätzlich gibt es die cmp- und Befehl ausgeführt wird. Daher werden keine gesonderten tst-Befehle, welche für logische Vergleiche von Registern Befehle zum shiften benötigt. vorgesehen sind. Im Vergleich zu and werden hier jedoch Eine vollständige Übersicht über die wichtigsten Befehle nur die Statusmerker implizit gesetzt und das Ergebnis findet sich auf der Instruction Set Reference Card von ARM verworfen, weshalb kein Zielregister angegeben wird [3]. [3]. Allgemein lässt sich der Befehlssatz in drei Kategorien Zum Verschieben von Werten zwischen Registern gibt es unterteilen [5]: den mov-Befehl, bzw. mvn zum Verschieben des negierten Datenverarbeitungsbefehle: Befehle, die Daten aus Re- Wertes. Diese Befehle kommen mit einem Operand aus, • gistern verändern oder auswerten. Z.b. Arithmetische welcher wie operand2 frei gewählt werden kann. und logische Funktionen, sowie die mov-Befehle. Datentransferbefehle: Befehle, die Daten aus dem Spei- • u cher in Register laden oder umgekehrt. u y Kontrollflussbefehle: Befehle, die zur Steuerung und • u Verzweigung des Programms dienen. uu Im Folgenden sollen auf die Datenverarbeitungsbefehle nä- uu her eingegangen und ein paar Befehle vorgestellt werden. u D. Datenverarbeitungsbefehle y u

Alle Datenverarbeitungsbefehle operieren ausschließlich u auf Registern. Als arithmetische Funktionen stehen add, sub, und mul zur Verfügung, zum Addieren, Subtrahieren y und Multiplizieren. Es gibt keinen direkten Befehl zum Dividieren. Die Syntax des add-Befehls ist folgende [4]: uu u uu add{cond}{s} Rd, Rn, operand2 Dabei gibt Rd das Zielregister der Operation und Rn uu das erste Operandenregister an. operand2 kann entweder ein Register oder ein direkter Wert sein. Wird ein Register Abbildung 3. Kodierung der Datenverarbeitungsbefehle (siehe [5] Abb. angegeben, so kann dieses entweder über einen direkten 5.6) 10 Abb. 3 zeigt die Befehlskodierung, die für alle Daten- F. big.LITTLE verarbeitungsbefehle verwendet wird, außer der Multiplika- Durch das big.LITTLE-System strebt ARM eine hohe tion. Die obersten 4 Bits repräsentieren die Bedingung, mit Leistung bei gleichzeitig geringem Energieverbrauch ihrer welcher der Befehl ausgeführt wird. Die darauffolgenden Prozessoren an [6]. Hierbei werden zwei Prozessorkerne 2 Bits sind in dieser Kodierung auf 0 gesetzt. Das 25. derselben Architektur, aber mit unterschiedlichen Leistungs- Bit signalisiert, ob als zweiter Operand ein direkter Wert werten, in einem System vereint. Momentan wird diese (1) oder ein Register genommen wird (0). Die opcode-Bits Technik bei den Cortex-A15 und Cortex-A7 Prozessoren geben die jeweilige Funktion an, die auf die Operanden angewandt. Der A15 besitzt eine hohe Leistung, aber auch angewandt werden soll. Das S-Bit bestimmt, ob die Status- einen hohen Energiebedarf. Der A7 hingegen arbeitet spar- merker gesetzt werden. Darauf folgen das Zielregister und samer, aber auch langsamer. Beide Kerne unterstützen die das erste Operandenregister. Die letzten 12 Bits bestimmen ARMv7-Architektur und können somit dieselben Befeh- sich je nach Art des zweiten Operanden. le ausführen. Diese Tatsache wird ausgenutzt, indem die Wird ein direkter Wert als zweiter Operand verwendet, Programme unterschiedlich auf die Prozessorkerne verteilt so wird dieser aus einem direkten 8-Bit-Wert und einem 4- werden, je nachdem ob die Bearbeitung hohe oder niedrige Bit-Rotationswert gebildet. An den Rotationswert wird eine Priorität hat. Somit steht dem System nur soviel Leistung 0 von unten angehängt, damit er 5 Bit lang ist. Dadurch zur Verfügung wie es gerade benötigt, was vor allem bei entstehen nur gerade Rotationswerte. Durch Rotation des mobilen Geräten einen großen Vorteil bietet, aufgrund der 8-Bit-Wertes wird nun der ursprünglich angegebene Wert gesteigerten Energieeffizienz [6]. gebildet. Mit diesem Verfahren können nicht alle Zahlen von 0-4096 abgedeckt werden, wie es mit einem direkten 12-Bit VII.AUSBLICK Wert möglich wäre. Jedoch deckt es einen großen Bereich ab, z.B. alle 2er Potenzen, die sich mit 32-Bit darstellen A. ARMv8 lassen. Am 31.10.2012 wurde von ARM Ltd. der offizielle Nach- Die zweite Möglichkeit ist ein Register Rm als zweiter folger der ARMv7-Architektur - die ARMv8 - angekündigt Operand. Hierbei ist es entweder möglich, direkt einen 5- [9]. Die größte Neuerung ist, dass erstmals auf eine 64-Bit- Bit-Wert anzugeben (#shift) oder es wird ein Register Rs Architektur umgestiegen werden soll. Abwärtskompatibilität angegeben, um dessen Wert das Register verschoben wird. zu den 32-Bit-Architekturen soll aber trotzdem beibehal- Mit den Sh-Bits wird letztendlich die Art der Verschiebung, ten werden. Die ersten Prozessoren, die diese Architektur bzw. Rotation kodiert. unterstützen, sind der Cortex-A53 und Cortex-A57, welche auch zusammen durch das big.LITTLE-Verfahren betrieben werden können. ARM verspricht sich mit den neuen Prozes- E. Thumb-Befehlssatz soren, welche in 20-nm-Versionen gefertigt werden sollen Die ARM-Architektur unterstützt zusätzlich zu den nor- eine Leistungssteigerung von bis zu 50 % im Vergleich malen 32-Bit ARM-Befehlen den Thumb-Befehlssatz. Die- zu den Cortex-A15 Prozessoren [9]. Zunächst sollen diese ser wurde erstellt um die Code-Dichte zu erhöhen, da alle vor allem im Server-Bereich verwendet werden. Es ist aber Thumb-Instruktionen nur 16-Bit groß sind. Der Prozessor durchaus denkbar, dass sie auch in modernen High-End- wandelt diese bei der Ausführung in äquivalente 32-Bit- Smartphones zum Einsatz kommen [7]. Befehle um. Es ist ebenfalls möglich beide Befehlssätze zu kombinieren, da durch das T-Bit im CPSR-Register angege- LITERATUR ben ist, wie der Prozessor die eingelesenen Befehle interpre- [1] ARM Ltd. (2013): ARM Processors. tieren soll. Ist das Bit gesetzt, wird der Thumb-Befehlssatz http://www.arm.com/products/processors/index.php angenommen, sonst der normale ARM-Befehlssatz. Die (03.02.2013) wichtigsten Unterschiede bei den Thumb-Befehlen sind [5]: [2] ARM Ltd. (2012): ARM Architecture Reference Manual Es ist nicht möglich die Befehle - bis auf den branch- • ARMv7-A and ARMv7-R edition. Cambridge, England Befehl - konditioniert ausführen zu lassen. Die meisten Befehle besitzen ein 2-Adress-Format. D.h. • [3] ARM Ltd. (2008): ARM and Thumb-2 Instruction Set das Zielregister ist gleichzeitig Operandenregister. Quick Reference Card. http://infocenter.arm.com/help/topic/ Es hängt von den Befehlen ab, ob die Statusmerker com.arm.doc.qrc0001m/QRC0001_UAL.pdf (03.02.2013) • gesetzt werden, oder nicht. [4] Dandamudi, Sivarama P. (2005): Guide to RISC Processors. Ein unregelmäßigeres Befehlsformat, aufgrund der ge- • New York, USA: Springer ringen Befehlslänge. Die meisten Befehle benutzen nur die Register R0-R7 • [5] Furber, Steve (2000): Arm System-On-Chip Architecture 2nd und R13-R15 ed. Harlow, England: Addison-Wesley 11 [6] Greenhalgh, Peter (2011): Big.LITTLE Pro- cessing with ARM Cortex-A15 & Cortex-A7. http://www.arm.com/files/downloads/big_LITTLE_Final_Final.pdf (03.02.2013)

[7] Nichols, Scott (2012): ARM Cortex-A50 chips to power future 64-bit smartphones http://www.techradar.com/news/computing-components/ processors/arm-cortex-a50-chips-to-power-future-64-bit- smartphones-1108796 (03.02.2013)

[8] Sakr, Sharif (2011): The Engadget Interview: ARM co- founder John Biggs. http://www.engadget.com/2011/12/20/the- engadget-interview-arm-co-founder-john-biggs/ (17.01.2013)

[9] Windeck, Christof (2012): ARM stellt 64-Bit-Prozessorkerne Cortex-A53 und -A57 vor http://heise.de/-1740587 (03.02.2013)

12 HW-Sensoren und -aktoren moderner Handies (d.h., insb. E/A-Gerate)¨

Tim Auf dem Berge

Abstract—Diese Ausarbeitung beschaftigt¨ sich mit den am Bei der OLED Technologie werden organische Polymere haufigsten¨ in modernen Handys verbaute Sensoren und Ak- oder kleine organische Molekule¨ eingesetzt, weshalb sie als toren. Dabei wird auf die unterschiedlichen Displaytechnolo- Organic LED bezeichnet werden. OLEDs benotigen¨ keine gien wie LCD und OLED, sowie die zwei verbreitesten Touchtechnologien Kapazitiv und Resistiv eingegangen. Weit- Hintergrundbeleuchtung oder Filter und konnen¨ deshalb erhin beschaftige¨ ich mich mit den wichtigsten Sensoren, wie wesentlich flacher ausfallen als LCDs. OLEDs bestehen denen zur Erfassung von Bewegungseingaben. Dazu gehoren¨ aus verschiedenen Schichten. Es gibt eine Schicht die als zum Beispiel der Beschleunigungssensor und das Gyroskop. Anode fungiert und eine die als Kathode fungiert. Zwis- Daruber¨ hinaus geh ich auf einige in modernen Handys ver- chen diesen Schichten gibt es eine Ubertragerschicht¨ und wendete Aktoren ein, zum Beispiel einen linearen Ultraschall Piezomotor, welcher in dem Autofokus Modul von Smartphone eine Emmisionsschicht. Wenn Strom durch die Schichten Kameras verwendet wird. fließt, phosphoresziert die Emmisionsschicht und leuchtet. Die Farbe der Schicht ist abhangig¨ von den verwendeten Keywords-Handys; Smartphones; Sensoren; Aktoren; Touch- screen; organischen Materialien. Deshalb werden bei Farbdisplays mehrere dieser Schichten verwendet. Die Intensitat¨ des I.SENSOREN Lichts kann durch den Stromfluss gesteuert werden. Um Sensoren sind Messinstrumente welche thermische, mech- die Pixel anzusteuern wird wieder eine Matrix mit TFT anische, biochemische, magnetische oder strahlungsbed- verwendet, weshalb auch der Begriff Active Matrix OLED ingte Großen¨ messen, in einen elektrischen Strom umwan- (AMOLED) fur¨ diesen Typ verwendet wird. [HSW02] deln und damit als Schnittstelle zur Umgebung dienen. Unabhangig¨ von der verwendeten Displayvariante besitzen Diese Messgroßen¨ werden weiter an auswertende Module die meisten Modernen Handys einen kapazitiven Touch- ubermittelt¨ und von Diesen verarbeitet. Fur¨ elektrische Sys- screen. Hierbei wird oberhalb des Displays eine Schicht teme sind Sensoren die ”Sinnesorgane kunstlicher¨ Systeme“. angebracht, welche elektrische Ladung speichert. Oberhalb [Fat04] davon befinden sich kratzfeste Schichten die das Dis- Im Folgenden werde ich auf einige der wichtigen Sensoren play schutzen¨ sollen. Wenn nun ein Finger das Display die in Smartphones verbaut werden eingehen und einen beruhrt¨ wird ein Teil der elektrischen Ladung in den Fin- Uberblick¨ uber¨ weniger verbreitet Sensoren geben. ger ubertragen,¨ sodass sich die Ladung in der Kapazitiven Ladungsschicht reduziert. Diese Reduzierung der Ladung A. Touchscreen wird im Stromkreis festgestellt welcher in den Ecken Der wohl wichtigste Sensor in modernen Handys ist der des Displays gemessen wird. Durch die unterschiedlichen Touchscreen der zur Ein- und Ausgabe verwendet wird. Ak- Ladungen in den Ecken kann bestimmt werden an welcher tuell sind zwei verschiedene Arten von Displaytechnologien Stelle der Finger das Display beruhrt¨ hat. [HSW03] verbreitet. Zum einen ist das die Liquid Crystal Displays Eine andere Methode Touch-Eingaben des Benutzers zu (LCD) Technologie und zum anderen die Organic Light erkennen, ist die Verwendung eines resistiven Touchscreens. Emitting Diode (OLED) Technologie. Bei dieser Technik befinden sich oberhalb einer Glasscheibe Bei der LCD Technologie bestehen die Pixel aus zwei metallische Schichten. Bei den beiden Schichten han- Flussigkristallen¨ in den Farben Blau, Grun¨ und Rot. Die delt es sich um zwei leitfahige¨ transparente Folien. Daruber¨ Flussigkristalle¨ sind verdreht und konnen¨ sich abhangig¨ befindet sich zum Schutz noch eine kratzfeste Schicht. von einem Stromfluss zu einem bestimmen Grad entdrehen Die beiden metallischen Schichten sind durch nicht leit- und dadurch durchfallendes Licht beeinflussen. Dieses Licht ende Abstandshalter voneinander getrennt. Entsteht jetzt ein kommt von einer Hintergrundbeleuchtung die durch einen Druck auf das Display, beruhren¨ sich die beiden Schichten Polarisationsfilter gesteuert wird. und leiten Strom. [HSW03] Da dort eine Gleichspannung Die einzelnen Pixel werden uber¨ einen Dunnschichttransistor¨ angelegt ist, welche an den Randern¨ gemessen wird, kann (TFT) angesteuert, welcher in einer Matrix uber¨ den Pixeln durch die unterschiedlichen Spannungen bestimmt werden angeordnet ist. Uber¨ die Regulierung des Stroms, kann die wo sich die beiden Schichten beruhren.¨ Dazu wird erst der Intensitat¨ der blauen, grunen¨ und roten Subpixel gesteuert Strom auf der X-Achse ausgewertet und einiger Millisekun- werden um den Pixel in einer bestimmten Farbe erscheinen den spater¨ wird eine Spannung auf der Y-Achse angelegt zu lassen. [HSW01] und dort die Position bestimmt. Je hoher¨ die Spannung 13 am Messpunkt ist, desto weiter ist der Druckpunkt vom Messpunkt entfernt. Der Vorteil von resistiven Touchscreens gegenuber¨ ka- pazitiven Touchscreens ist, dass zur Eingabe auch ein Eingabestift verwendet kann oder der Benutzer Handschuhe tragen kann, da das Objekt das den Druck erzeugt nicht leitend sein muss. Kapazitive Touchscreens funktionieren nur mit Eingaben mit dem nackten Finger, was besonders im kalten Winter zum Nachteil wird. Ein weiterter Unter- schied der beiden Techniken ist, dass resistive Touchscreens bei der Eingabe mit dem Finger nicht so genau sind wie kapazitive Touchscreens. [CO01] Kapazitive Touchscreens sind haufiger¨ verbreitet, da sie Multitouch unterstuzen,¨ also die gleichzeitige Eingabe mit mehreren Fingern und weil sie Lichtdurchlassiger¨ sind als resistive Touchscreens.

B. Beschleunigungssensor Der Beschleunigungssensor oder Accelerometer ist ein Figure 1. Vergroßerung¨ des Iphone 4 Beschleunigungssensors [CW01] Sensor der die Beschleunigung des Smartphones misst. Hierbei wird die Beschleunigungsmessung auf drei Achsen vorgenommen (X-, Y- und Z-Achse). gekennzeichnet. Haufig¨ verwendet werden piezoelektronische Der wohl offensichtlichste Nutzen eines Beschleuni- Beschleunigungssensoren. Dabei werden Piezoelemente, gungssensors in Smartphones ist der Wechsel zwischen welche eine Widerstandsanderung¨ hervorrufen, wenn Hochformat und Querformat des Bildschirms. Weiterhin mechanischer Druck auf sie einwirkt, verwendet. Diese verwenden aber auch viele Spiele-Apps den Sensor um uber¨ Widerstande¨ werden an den Stellen eines Biegebalkens Neigung des Smartphones das Spiel zu Steuern. angebracht an denen die Verformungskrafte¨ wirken. Der C. Gyroskop Biegebalken wird mit einer seismischen Masse beschwert und wenn nun durch Beschleunigung sich der Balken biegt Ein Gyroskop misst die Ausrichtung des Smartphones fuhrt¨ das zu einer messbaren Spannungsanderung¨ durch im Raum und erkennt Anderung¨ dieser. Erganzend¨ zum den Piezowiderstand. [Fat04] Beschleunigungssensor erkennt das 3-Achsen-Gyroskop Ro- Andere Methoden dieses Sensor zu realisieren ist durch tationen um die X-, Y- und Z-Achsen. Damit sind viele ein Piezoelement welches sich unter einem durch Gerate¨ mit einer sechs Achsen Messung ausgestattet. eine Feder gehaltenen seismischen Masse befindet. Die in Smartphones verwendeten Gyroskope sind nicht die Durch Beschleunigungseinwirkung wird Druck auf das wie im Flugzeug verbauten Kreiselinstrumente mit einem Piezoelement eingewirkt und dass fuhrt¨ dann zu einer drehen Kreisel, der seine Ausrichtung zur Erdoberflache¨ messbaren Anderung¨ des Widerstandes. [SHW03] beibehalt,¨ sondern funktionieren wie Vibrationskreisel. Auf Der Beschleunigungsbereich des Sensors der z.B. Im dem Chip befinden sich vier Prufmassen¨ mit Feder, an Apple Iphone 4 verwendet wird betragt¨ +/- 2g mit einer welchen uber¨ Kondensatoren Verschiebungen gemessen wer- Sensitivitat¨ von 0,018g. den konnen.¨ Diese Prufmassen¨ schwingen und werden uber¨ Als Referenzwert betragt¨ die normale g Einwirkung auf ein ”drive“ Signal gesteuert. Wenn sich nun durch Drehung Meereshohe¨ 1g und zum Beispiel auf ein von 0 auf eine Corioliskraft auf die Prufmassen¨ auswirkt, werden 100 km/h (2,4s) beschleunigender Bugatti wirken 1,55g. diese abhangig¨ von der Drehrichtung nach Außen gedruckt.¨ [SHW03] Diese Verschiebung wird dann uber¨ Spannungsanderung¨ von Die Abmessung des im Iphone 4 verwendeten LIS331DLH einer integrierten Schaltung ausgewertet und dann an den Accelerometers betragt¨ 3mm x 3mm x 1mm. [MEMS1] Prozessor weitergeleitet. [ifix1] Die Abmessung des Iphone 4 Gyroskops betragt¨ 4mm x In Figur 1 ist das LIS331DLH Accelerometer, welches 4mm x 1mm. [MEMS2] Das Gyroskop findet Verwen- im Iphone 4 verwendet wird abgebildet. Die mit der dung in Spiele-Apps und unterstutzend¨ fur¨ GPS wenn zum Nummer 1 gekennzeichneten Balken sind die Federn fur¨ Beispiel ein Tunnel durchfahren wird und kein Satelliten die entsprechend gekennzeichneten Achsen. In den einger- Signal zu Verfugung¨ steht. Dann kann uber¨ das Zusammen- ahmten Bereichen befinden sich die fur¨ den Piezoelek- spiel von Beschleunigungssensor und Gyroskop weithin die trischen Effekt benotigten¨ seismischen Massen. Die X- Position des Smartphones bestimmt werden. Der elektronis- , Y- und Z-Achse sind durch die jeweiligen Buchstaben che Kompass kann diese Positionierung noch verbessern. 14 D. Elektronischer Kompass G. Umgebungslichtsensor Der elektronische Kompass oder Magnetometer ist ein Der Umgebungslichsensor oder Helligkeitssensor misst Gerat¨ das die Starke¨ von Magnetfeldern ermitteln kann. die Helligkeit in des Lichts das auf den Sensor trifft. Genau Elektronische Kompasse werden mit Hilfe von Hall- wie der Naherungssensor¨ ist der Helligkeitssensor auf der Sensoren realisiert. Die Magnetometer messen die Felder Vorderseite des Smartphones oberhalb des Touchscreens auf drei Achsen. Durch Zusammenspiel vom elektronischen angebracht. Der Sensor misst uber¨ ein Photometer die fur¨ Kompass, Gyroskop und Beschleunigungssensor kann auch das menschliche Auge erkennbare Helligkeit und sendet innerhalb von Gebauden¨ oder Tunnel navigiert werde, wenn diesen Wert an den Prozessor. [AL01] Haufiger¨ Nutzen des kein GPS Signal vorhanden ist. [MEMS3] Umgebungslichtsensors ist die Beleuchtung der Funktion- stasten des Smartphones an- bzw. auszuschalten oder die Displayhelligkeit zu regulieren. E. GPS H. Fallsensor Die meisten Smartphones sind heutzutage mit einem Der Fallsensor ist ein wenig verbreiteter Sender, welcher Global Positioning System Empfanger¨ (GPS-Empfanger)¨ nur in Handys verbaut ist die fur¨ Senioren gedacht sind. ausgestattet. Beim GPS wird anhand von Zeitmessung von Fallsensoren sind ebenfalls Bewegungsensoren, jedoch be- Signalen die Distanz zu einem Satelliten gemessen. Durch sitzen sie nicht den Umfang von den 3-Achsen Bewe- diesen Wert lasst¨ sich aber noch nicht der genaue Standort gungssensoren welche in Smartphones verwendet werden. des Empfangers¨ ermitteln. Erst durch Entfernungsmessung Diese Sensoren erkennen einen Sturz des Benutzers und zu mindestens drei Satelliten lasst¨ sich ein die Position des konnen¨ diesen von einem fallen lassen des Handys unter- Empfangers¨ auf der Erde erfassen. Hierzu wird anhand der scheiden. Im Falle eines Sturzes des Benutzers wird eine Entfernungsmessung der Satelliten von jedem ein Radius Notruf SMS oder ein Notruf-Anruf verschickt. Diese Funk- gezogen in welchem sich der Empfanger¨ befindet. An der tion wird haufig¨ in Kombination mit Standortinfomation Schnittstelle der Radien kann nun ein Bereich bestimmt uber¨ den Benutzer versandt, welche uber¨ GPS ermittelt werden in dem Sich der Empfanger¨ befindet. [GPS01] wurden.[IH01] Da dieses Berechnung aber in guten Fallen¨ mindestens 40 Sekunden benotigt,¨ wird zur Unterstutzung¨ das A-GPS I. Mirkofon Assisted Global Positioning System genutzt um diese Zeit zu Die in den Handys verwendeten Mikrofone fallen in den verkurzen.¨ Um verfugbare¨ GPS-Satelliten zu finden werden Bereich der Mikrosensoren. Sie basieren auf dem gleichen Informationen uber¨ diese per Handynetz ubertragen¨ oder Prinzip wie andere Mikrofone, indem sie Schalldruck in der vom Handy verwendete Sendemast ubermittelt¨ seinen elektrisch Signale umwandeln, welche dann als Gerausche¨ Standort. [CB01] Ubliche¨ Genauigkeitswerte von GPS zur beziehungsweise Sprache ausgewertet werden konnen.¨ Diese Bestimmung der Position sind 20m bis 50m. [SHW03] GPS Mikrofone besitzen eine extrem dunne¨ Membran, welche in Smartphones wird uberwiegend¨ zum Navigieren mit Hilfe die Schallsignal aufnimmt und piezoelektrisch oder kapazitiv von Navigations-Apps verwendet. Außerdem werden anhand auswertet. des Standortes nutzliche¨ Information zur Umgebung aus Der Stromverbrauch dieser Mikrofone liegt bei unter 1mW dem Internet gesammelt und dem Benutzer zur Verfugung¨ und sie filtern Storger¨ ausch¨ uberwiegend¨ raus. [IT01] gestellt. Beispiele hierfur¨ sind Restaurant Empfehlungen In neuen Smartphones wie dem Iphone 5 sind drei Mikro- oder Hintergrundwissen uber¨ Sehenswurdigkeiten.¨ fone verbaut um die Spracheingaben des Benutzers aus unterschiedlichen Winkeln aufzunehmen und die Eingabe F. Naherungssensor¨ qualitativer auszuwerten. [IN01] Naherungssensor¨ werden in Smartphones verwendet um II.AKTOREN zu erkennen, ob sich Objekte nah vor dem Sensor befinden, Aktoren sind das Gegenstuck¨ zu Sensoren, denn Sensoren wie zum Beispiel ein Ohr wahrend¨ des Telefonierens. wandeln mechanische Energie in Strom um und Aktoren Der Naherungssensor¨ ist ein kleiner Sensor der auf der wandeln elektrischen Strom in mechanische Energie um. Fur¨ Vorderseite des Smartphones oberhalb des Touchscreens die Verwendung in modernen Handys kommen großtenteils¨ sitzt. Wenn er aktiviert ist, schickt eine kleine Diode nur Mikroaktoren in Frage, da die neuen Handys kontinuier- Infarotsignale los und misst anhand des Zeitunterschieds lich mit weiteren Funktionen erweitert werden, dabei der zwischen versenden des Signals und wieder Eintreffen des Platz fur¨ Module auf der Leiterplatte nicht zunimmt. De- an einem Objekt zuruckgeprallten¨ Signals, den Abstand shalb mussen¨ die verbauten Mikrochips immer kleiner und zum jeweiligen Objekt. Diese Funktion wird benutzt um leistungsfahiger¨ werden. Aktuelle Mikrochips bewegen sich beim Telefonieren den Touchscreen auszuschalten, wahrend¨ im Großenbereich¨ von einigen Millimetern. Im Folgenden sich das Smartphone am Ohr des Benutzers befindet, um werde ich mich mit den in Handys verwendeten Aktoren ungewunschte¨ Eingaben zu verhindern. [YT01] auseinander setzen. 15 Durch diese Bewegungen wird der blau dargestellte be- wegliche Teil verschoben. Durch zwei Elektroden, welche links und rechts der Masse angebracht sind kann die Rich- tung der Schwingungen beeinflusst werden. Dieses bestimmt die Richtung in welche der bewegliche Teil verschoben wird. Mit jedem Mikroimpuls wird der bewegliche Teil einige Nanometer bewegt. Diese Mikrobewegungen bilden einen flussigen¨ Bewegungsablauf. [PI01] Die Vorteile eines Piezoelektronischen Mikroaktors sind die prazise¨ Bewegungen im Nanometerbereich und die schnellen Ansprechzeiten im Mikrosekundenbereich. [Fat04] Diese prazise¨ Bewegung ist sehr wichtig fur¨ die exakte Fokussierung der Kamera auf ein Objekt. Ein Unterschied Figure 2. Schema eines Linearen Ultraschall Piezomotors [PI01] von diesen linearen Ultraschall Piezoaktoren gegenuber¨ herkommlichen¨ Linearmotoren ist, dass kein Stromver- brauch entsteht um die Linse in ihrer Position festzustellen, A. Auto-Fokus Aktor aber sie auch nicht die unbegrenzte Bewegungsreich- Der Auto-Fokus Aktor einer Kamera fur¨ Smartphones weite von linearen Piezomtoren haben. Lineare Ultraschall ist meistens im Kameramodul integriert. Zusatzlich¨ zu Piezomotoren sind auf eine Strecke von ca. 50nm begrenzt, der Kamera und dem Auto-fokus Aktor gehort¨ haufig¨ beschleunigen dafur¨ aber deutlich schneller als normal linear auch noch eine LED Lampe dazu, welche Aufnahmen in Piezomotoren. [pw08] dunklerer Umgebung ermoglichen.¨ Dieses Modul hat circa eine Abmessung von 10mm x 10mm x 8 mm. [STM01] B. Vibrationsmotor Bei dem Auto-Fokus Aktor handelt es sich um einen Der Vibrationsmotor oder auch Vibramotor genannt ist ein Piezoelektronischen Mikroaktoren der in Stapelbauweise Motor, welcher durch Schwingungen das Handy zum Vibri- zusammengesetzt wurde. Dazu werden dunne¨ Schichten eren bringt. Dieses wird haufig¨ als Benachrichtigung oder von Piezoelementen und Metallelektroden ubereinander¨ Alarmmeldung verwendet. Es gibt Vibrationsmotoren die gesetzt. [Fat04] Piezoelemente haben die Eigenschaft als Rotationsmaschinen mit Unwucht Gewichten realisiert mechanische Energie in elektrische Energie umzuwandeln, sind. Hierbei ist ein Gewicht mit einer starken Unwucht den direkten piezoelektronischen Effekt. Wird zum Beispiel an einer Seite um eine Achse positioniert. Wenn nun der ein Druck auf das Piezoelement ausgeubt¨ entsteht eine Motor das Gewicht um die Achse dreht, gerat¨ der Motor elektrische Spannung. Umgekehrt gibt es auch den inversen in Schwingungen, was sich auf das Gehause¨ auswirkt. Die piezoelektronischen Effekt dabei fuhrt¨ das Anlegen einer Vibrationsmotoren werden haufig¨ in der Nahe¨ des Rahmens Spannung dazu, dass das Piezoelement seine Lange¨ und positioniert. Dicke andert.¨ Eine andere Methode Vibartionsmotoren zu realisieren ist Die Stapelbauweise erhoht¨ die Langen¨ und mit linear schwingenden Vibrationsmotoren. Hierbei wird Dickenanderungen¨ der Struktur im Vergleich zu einem mit Hilfe einer Feder und eines Magneten eine Masse in großen Piezoelement. Durch die piezoelektronischen Effekte Bewegung gebracht um dadurch eine Schwingung zu erzeu- dient der Piezoaktor gleichzeitig auch als Sensor und macht gen. Der Vorteil von linear schwingenden Vibrationsmotoren einen solchen uberfl¨ ussig.¨ [Fat04] gegenuber¨ Rotationsmotoren mit Unwucht Gewichten ist, Fur¨ das Auto-Fokus Modul wir ein Piezomotor genutzt, dass sie im Vergleich leiser sind. Jedoch konnen¨ die linear welcher senkrecht zum Objektiv einen vibrierenden schwingenden Vibrationsmotoren großer¨ als die Rotaions- Ultraschall Strahl produziert. Diese ist an zwei Stellen mit motoren ausfallen. [ifix2] der Linse verbunden um die Stabilitat¨ und Antriebskraft zu Der Vibrationsalarm am Handy kann anstatt des klassischen maximieren. Die fur¨ den Piezomotor benotigte¨ Spannung Klingeltons verwendet werden, um den Benutzer uber¨ einge- wird direkt aus dem Smartphone-Akku genommen wird. hende Anrufe oder Mitteilungen zu informieren. Bei vielen Hierfur¨ reichen bereits weniger als 2.8V aus. [DI01] Smartphones wird auch eine kleine Vibration als Bestatigung¨ fur¨ Eingaben auf den Touchscreen verwendet. In Figur 2 ist ein Schema eines linearen Ultraschall Piezomotors abgebildet, welcher mit Hilfe einer Keramik C. Lautsprecher Spitze funktioniert. Diese Spitze wird durch die hochfre- In modernen Handys sind mehrere Lautsprecher verbaut. quente Eigenschwingungen von Zehn bis Hunderten von Zum einen ein Lautsprecher oberhalb des Displays, welcher Kilohertz bewegt, indem sich die rot abgebildete Masse zum Telefonieren verwendet wird und zum anderen ein Laut- verformt, in welcher sich die Spitze in der Mitte befindet. precher auf der Ruckseite¨ welcher fur¨ Soundausgaben bei 16 Musik und Videowiedergabe sorgt. Bei dem Lautsprecher Mikrochips in Smartphones. zum Telefonieren handelt es sich um ein ganzes Laut- Mit der heutigen Technologie zur Herstellung von sprechermodul, dass mit einer Antenne und einem Mikrofon Mikrochips insbesondere MEMS sind nahezu alle moglichen¨ gekoppelt ist. Sensoren und Aktoren auch als Mikrosensoren und Mikroak- toren realisierbar. Eventuell werden zukunftige¨ Handys sogar III.MEMS in der Lage sein Temperaturen zu messen oder die Luft zu MEMS steht fur¨ Micro-Electro-Mechanical Systems und analysieren. In Naher Zukunft sind diese Chips vielleicht sind Chips die Logikelemente und mikromechanische Struk- sogar als Nanosensoren und Nanoaktoren denkbar. turen verbinden. Im Deutschen werden MEMS auch als REFERENCES Mikrosystemtechnologie (MST) bezeichnet. Diese Chips finden oft Verwendung als Sensoren und Aktoren und wer- [Fat04] PROF.DR.-ING.S.FATIKOW: Skript zur Vorlesung Mikro- den meist aus Silizium hergestellt. Ein MEMS kann grob robotik und Mikrosystemtechnik. Universitat¨ Oldenburg, 5. Auflage, 2004. unterteilt werden in einen Aktorteil, einen Sensorteil und einen Signalverarbeitungsteil. Dank der heutigen Technik [HSW01] HOW STUFF WORKS How LCDs Work. lassen sich diese Millimeter großen Chips mit den Mikrom- http://electronics.howstuffworks.com/lcd2.htm, Letzter Zugriff: eter großen Strukturen in Massen herstellen. Die Struktur 2013-02-02. von MEMS kann stark variieren, von simplen Anordnungen [HSW02] HOW STUFF WORKS How OLEDs Work. http: ohne bewegliche Teile, bis hin zu sehr komplexen Strukturen //electronics.howstuffworks.com/oled1.htm, Letzter Zugriff: mit mehreren beweglichen Teilen. Sensoren und Aktoren die 2013-02-02. als MEMS realisiert sind ubertreffen¨ ihre Gegenstucke¨ in [HSW03] HOW STUFF WORKS How do touch-screen monitors großeren¨ Ausfuhrungen¨ haufig¨ durch erhohte¨ Genauigkeit know where you’re touching?. http://computer.howstuffworks. und Leistung. [MN01] MEMS lassen sich ebenfalls mit den com/question716.htm, Letzter Zugriff: 2013-02-02. ublichen¨ CMOS (Complementary Metal Oxide Semicon- ductor) Herstellungsverfahren produzieren. Der Unterschied [CO01] CONNECT.DE Resistiv: Touch durch Druck. http://www. zu CMOS ist, dass viele MEMS mehrere ubereinander¨ connect.de/ratgeber/resistiv-touch-durch-druck-377205.html, Letzter Zugriff: 2013-02-02 liegende Chips besitzen konnen¨ und das aufwendigere drei- dimensionale Strukturen, eine Fertigung durch zum Beispiel [SHW03] SCHIRMER,HOPFNER¨ Smartphone Hardware Atzverfahren¨ benotigen.¨ [EK01] Sensors. http://www.uni-weimar.de/medien/wiki/images/ Zeitmaschinen-smartphonesensors.pdf, Letzter Zugriff: IV. ZUSAMMENFASSUNG 2013-02-02.

Die Sensoren und Aktoren sind die Sinnesorgane und [MEMS1] ST.J.DIXON-WARREN MOTION SENSING Gliedmaßen der modernen Handys. Durch ihre umfangre- IN THE IPHONE 4: MEMS ACCELEROM- ichen Sensoren und hochauflosenden¨ Displays sind mod- ETER. http://www.memsjournal.com/2010/12/ erne Touchscreenhandys, welche uber¨ ausreichend leis- motion-sensing-in-the-iphone-4-mems-accelerometer.html, Letzter Zugriff: 2013-02-02 tungsfahige¨ Hardware besitzen sogar Konkurrenten zu trag- baren Spielekonsolen geworden. Durch Verwendung der [ifix1] IFIXIT.COM iPhone 4 Gyroscope Teardown. http://www. vielseitigen und prazisen¨ Bewegungsensoren werden auch ifixit.com/Teardown/iPhone-4-Gyroscope-Teardown/3156/1s, immer mehr Spiele-Apps entwickelt die eine Bewegungss- Letzter Zugriff: 2013-02-02 teuerung nutzen. [ifix2] IFIXIT.COM iPhone 5 Teardown. http://www.ifixit.com/ GPS und die unterstutzenden¨ Bewegungssensoren machen Teardown/iPhone+5+Teardown/10525/4, Letzter Zugriff: Smartphones zu einer ebenburtigen¨ Alternative zu Naviga- 2013-02-02 tionsgeraten.¨ Daruber¨ hinaus werden auch die schon langer¨ [MEMS2] ST.J.DIXON-WARREN MOTION SENS- verwendeten Funktionen wie Kamera und Telefonieren ING IN THE IPHONE 4: MEMS GYRO- durch immer bessere Mikrofone und Kameras verbessert. SCOPE. http://www.memsjournal.com/2011/01/ Der Trend von Smartphones geht dazu immer mehr und motion-sensing-in-the-iphone-4-mems-gyroscope.html, leistungsfahigere¨ Sensoren zu verwenden. Dabei werden die Letzter Zugriff: 2013-02-02 Gerate¨ aber nicht großer¨ und deshalb mussen¨ auch die [MEMS3] ST.J.DIXON-WARREN MOTION SENS- Mikroaktoren leistungsfahiger¨ und umfangreicher werden, ING IN THE IPHONE 4: ELECTRONIC ohne das die Mikrochips großer¨ werden. COMPASS. http://www.memsjournal.com/2011/02/ Neue Sensoren werden uberwiegend¨ die Bewegungssensoren motion-sensing-in-the-iphone-4-electronic-compass.html, haben ihren Ursprung in der Luft und Raumfahrt. Wurde Letzter Zugriff: 2013-02-02 großere¨ mechanische Gyroskope fruher¨ in Flugzeugen ver- [GPS01] NAVIAKTIV.DE Grundlagen der GPS-Technik. http:// wendet um die Neigung des Flugzeugs zum Horizont zu www.naviaktiv.de/index.php?cont=gpstechnik, Letzter Zugriff: bestimmen, so sind passen diese Sensoren heutzutage als 2013-02-02 17 [CB01] COMPUTERBILD.DE Was ist A-GPS und welche Empfanger¨ gibt es?. http://www.computerbild.de/artikel/ cb-Ratgeber-Navigation-Alles-ueber-Satellitennavigation-mit-GPS-3035514. html, Letzter Zugriff: 2013-02-02

[YT01] MARTINDATI iPhone: Annaherungssensor¨ . http://www. youtube.com/watch?v=qcMMt5jOy7w, Letzter Zugriff: 2013- 02-02

[AL01] ELEKTRONIKNET.DE Umgebungslichtsensor. http://www. elektroniknet.de/lexikon/?s=2&k=U&id=34416 &page=1, Letzter Zugriff: 2013-02-02 \

[IH01] INSIDE-HANDY.DE Sensoren. http://www.inside-handy.de/ lexikon/sensoren, Letzter Zugriff: 2013-02-02

[IT01] IT WISSEN MEMS microphone. http://www.itwissen.info/ definition/lexikon/MEMS-Mikrofon-MEMS-microphone.html, Letzter Zugriff: 2013-02-02

[IN01] INSIDE-HANDY.DE iPhone 5: 3 Mikros, bessere Lautsprecher und Rauschunterdruckung¨ . http://www.iphone-news.org/2012/09/13/ iphone-5-3-mikros-bessere-lautsprecher-und-rauschunterdruckung-42621/, Letzter Zugriff: 2013-02-02

[STM01] STMICROELECTRONICS VB6850. http://html.alldatasheet.com/html-pdf/231969/ STMICROELECTRONICS/VB6850/1943/1/VB6850.html, Letzter Zugriff: 2013-02-02

[DI01] DIRECT INDUSTRY Piezomotor fur¨ Autofokus- Objektive von Smartphone-Fotoapparaten. http: //www.directindustry.de/prod/new-scale-technologies/ piezomotoren-fur-autofokus-objektiv-von-smartphone-fotoapparat-30035-657351. html, Letzter Zugriff: 2013-02-02

[pw08] PHYSICSWORLD.COM 8mm Piezo Motor / Linear Slide Ideal for Fiber & Optics Alignment, Autofocus. http://physicsworld.com/cws/product/ P000005991-8mm-piezo-motor-linear-slide-ideal-for-fiber-optics-alignment-autofocus, Letzter Zugriff: 2013-02-02

[PI01] PHYSIKINSTRUMENTE.COM PILine Ultrasonic Piezomotor Systems - Working Principle. http://www.physikinstrumente. com/en/products/piezo motor/piline.php, Letzter Zugriff: 2013-02-02

[CW01] CHIPWORKS Teardown of the Apple iPhone 4 Smart Phone. http://www.chipworks.com/blog/recentteardowns/2010/ 06/23/silicon-teardown-of-the-apple-iphone-4-smart-phone/, Letzter Zugriff: 2013-02-02

[MN01] MEMSNET.ORG What is MEMS. https://www.memsnet. org/mems/what is.html, Letzter Zugriff: 2013-02-02

[EK01] ELEKTRONIK-KOMPENDIUM.DE MEMS - Micro-Electro- Mechanical Systems. http://www.elektronik-kompendium.de/ sites/bau/1503041.htm, Letzter Zugriff: 2013-02-02

18 Seminar Handybetriebssysteme Android, Grundlagen und Programmierung

Lutz Malte Wagner Fakultät II Carl von Ossietzky Universität Oldenburg Oldenburg, Deutschland [email protected]

Dieses Paper soll einen Überblick über Betriebssystem einfachen Grund das ein Smartphone Betriebssystem Android geben. Dabei gehe ich speziell auf die Technischen mobil, handlich aber vor allem leicht und schnell zu Grundlagen, Unterschiede der einzelnen Versionen, die bedienen sein muss. Ein Befehl im Kernel eintippen Programmierung und von Android abgeleitete Betriebssysteme kann unter diesen Gesichtspunkten beispielsweise ein. mit einem schnellen wisch über das Display nicht mithalten. Es gibt noch einige weitere drastische Android; ; Open Handset Alliance; Linux; Bionic; C; Unterschiede zu herkömmlichen Linux basierten Dalvik; Java; SDK; NDK; ADT; App Inventor; Betriebssystemen. Neben veränderter Speicher und Grafikverwaltung nutzt Android beispielsweise I. WAS IST ANDROID keine GNU Elemente und beinhaltet eine selbst Android wurde von der Firma Android Inc entwickelt, entwickelte C Bibliothek namens Bionic. Diese ist welche schon sehr früh von Google aufgekauft wurde. Die zwar von der normalen Linux Bibliothek glibc späteren Versionen sind stark von den Richtlinien und abgeleitet aber stark komprimiert, es fehlen Bestimmungen der Open Handset Alliance geprägt. Kein Elemente wie die Unterstützung von wide charactern großes Wunder, da neben Firmen wie Sony, Samsung und oder das Exception handling. Außerdem Interpretiert LG auch Google dort vertreten ist. Mittlerweile steht Android die uid's, eigentlich zur Identifizierung von Android bei über 75% Marktanteil und ist daher mit Abstand Nutzern, um Apps zu identifizieren und die für das Erfolgreichste Smartphone Betriebssystem. Aber was Gruppen gedachten gid's um den Apps bestimmte Machte Android so erfolgreich? [1] Rechte zuzuweisen. Auch alle benötigten Treiber für Es besitzt einige Merkmale die es sowohl für Nutzer als die Hardware, also die Kamera, den Bildschirm, auch für Hersteller und Programmierer schmackhaft machen. WiFi, Batterie und vielem mehr, befindet sich an Google finanziert sich im Gegensatz zu den anderen dieser stelle. [2] Herstellern fast ausschließlich über Werbung und kann daher  Direkt danach kommen spezielle Grundbibliotheken auf Lizenzkosten verzichten um die Verbreitung voran zu für verschiedenste Bereiche und die Dalvik VM. Zu treiben. Diese Tatsache und das es eine Linux-Basis besitzt den Grundbibliotheken gehören beispielsweise das die es auf fast jeder Hardware lauffähig macht erleichtern WebKit, zur Interpretation von den verschiedenen natürlich die Arbeit der Hersteller. An der Java im Internet genutzten Sprachen, oder SQLlite zur -unterstützung erfreuen sich die Programmierer und Verwaltung von Datenbanken. Die Dalvik VM dient überfluten den „Google marketplace“ mit passenden der Interpretation von Java Bytecode, diesen Applikationen (oder kurz Apps) für nahezu jede Situation. interpretiert sie nicht sofort, sondern wandelt ihn erst Die große Auswahl an Smartphones mit Android als in „Dalvik executable code“ (kurz „dex“) um und Betriebssystem und die fülle an Apps macht es wiederum interpretiert diesen dann. Bei der Art der zum Liebling der Nutzer. Damit werden wieder mehr Interpretation gibt es einige Grundlegende Hersteller und Programmierer auf Android aufmerksam. Die Unterschiede, so nutzt die Dalvik VM nicht wie Java so entstehende Spirale des Erfolgs konnte bisher noch kein typisch einen Kellerspeicher sondern greift auf anderes Betriebssystem durchbrechen. Register zurück. Insgesamt nutzt die Dalvik VM weniger Arbeitsspeicher und benötigt weitaus II. SYSTEMARCHITEKTUR weniger Prozessorleistung, da die mittel eines Android wird im Allgemeinen in 4 Ebenen unterteilt die Smartphones in dieser Hinsicht eher beschränkt sind. auf einander Aufbauen. Die Umwandlung zu Dalvik executable Code hat außerdem den Vorteil das nicht direkt mit Java  Wie bereits angesprochen basiert Android auf einem Bytecode gearbeitet wird und somit nach Meinung Linux-Kernel. Allerdings wird dieser Oberflächlich von Google auch keine Lizenzkosten an Oracle zu unterdrückt und nur über die Typischen Touchscreen zahlen sind. Diese versuchten Google gerichtlich zu und Tastatur eingaben angesteuert. Dies hat den 19 einer Zahlung zu zwingen. Im Mai 2012 wurde IV. PORTIERUNGEN UND DERIVATE Google entschieden das Google keine Patente Da die Quellen von Android frei zugänglich sind und verletzt hat. [3] keine rechtlichen Gegebenheiten eine Portierung des  In der dritten Ebene befindet sich das so genannte Betriebssystems verbieten gibt es mittlerweile einige mehr „Application Framework“, welches sich allgemein oder weniger vollständige Betriebssysteme auf Android um die Verteilung von Ressourcen kümmert. Hierbei Basis für die verschiedensten Systeme. Ein paar dieser gibt es für nahezu jede Ressource auch einen Projekte wurde von Google oder auch nur einzelnen Google eigenen Manager, zum Beispiel den Window- unterstützt. Die meisten befinden sich noch im Alpha Manager für einzelne Oberflächen, den Activity Stadium und sind noch nicht ausgereift. Allerdings wird an Manager der die Prozesse regelt und überwacht. Portierungen auf jedes gängige Smartphone Betriebssystem Grob umschrieben passt diese Ebene also auf das gearbeitet. XDAndroid für Windows Mobile [6], jede Anwendung die Ressourcen bekommt die es AndroidPlayer für Blackberry [7], Anrdomnia für Omnia [8] braucht und erhalten darf. und viele mehr.  Die oberste und letzte Schicht stellen die Einiges an Aufsehen erregte das Aliyun OS der Alibaba Oberflächen die ein Nutzer letztendlich zu Gesicht Group, dieses wurde als Konkurrent von Android auf dem bekommt und die Logik der dazugehörigen Apps. Asiatischen Markt entwickelt. Es besitzt ebenfalls ein Linux- Hier befinden sich der Startbildschirm, die Kernel und verwendet einige Android Frameworks. verschiedenen Menüs, der Webbrowser, Programme Außerdem finden sich in seinem App store einige Android zum nutzen der Kamera oder des GPS und alle Apps, unter anderem auch Google eigene Dienste wie Programme die von dritten geschrieben und auf dem Google translate. Die Alibaba Group verweist darauf das Smartphone installiert werden. [4] Aliyun auf Cloud Anwendungen setzt und sich damit Grundlegend von Android unterscheidet während Google es III. VERSIONEN als „inkompatible Android Abspaltung“ betitelt. Da Aliyun Android gibt es in 32 verschiedenen Versionen, von zwar unter der „GNU General Public License“ veröffentlicht denen nur die ersten beiden Versionen, 1.0 und 1.1, wurde aber der Quellcode trotzdem nicht zugängig gemacht mittlerweile nicht mehr unterstützt werden. Dies ist vor wurde, ist unbekannt wieweit Aliyun wirklich auf Android allem für die Programmierung von Apps wichtig, da mit den basiert. Daher ging Google so weit das sie Acer mit meisten dieser Versionen auch neue APIs erschienen sind. Beendigung der Partnerschaft drohten als diese ein Da viele Hersteller ihr Smartphones nur langsam Smartphone mit Aliyun veröffentlichen wollten. Da Acer zu beziehungsweise gar nicht updaten ist auch ein großer Teil über 90% in ihren Systemen Android verwendet zogen diese von ihnen noch mit alten Versionen unterwegs. Auch die die Kooperation mit der der Alibaba Group daraufhin unterscheide dieser Versionen sind teilweise gravierend, ob zurück. [9] mit Version 1.5 („Cupcake“) der Drehbare Bildschirm und Am weitesten verbreitet ist der CyanogenMod. Seine die Bildschirmtastatur, mit 2.1 („Eclair“) html5 oder mit 2.2 Entwicklung wurde relativ früh von einer großen („Froyo“) der Zugang zu den SD-karten eingeführt wurden, Community begonnen und erhielt schnell mithilfe von es ändert sich fast alles und das Verhältnismäßig schnell. Google Mitarbeitern. Eingebremst wurde das Projekt als es Auch ein wichtiger Aspekt ist das mit Version 3.0 seitens Google eine Abmahnung gab, da nicht lizenzfreie („Honeycumb“) erstmals auch auf Tablets eingegangen wird. Apps, wie Googlemail, verwendet wurden. Es wurde sich Dies zeigt sich beispielsweise in der Unterstützung von darauf geeinigt das Diese nicht mehr im Grundpaket höheren Auflösungen oder mehr Arbeitsspeicher. Erst mit enthalten sein dürfen, aber bei bedarf während der Version 4.0 („Ice Cream Sandwich“) werden die damit Installation aus dem bestehenden Android Betriebssystem entstehenden Probleme gelöst und ein Betriebssystem für herauskopiert werden können. Das Betriebssystem bietet Smartphones und Tablets gleichermaßen entsteht. einige Möglichkeiten zum übertakten und ist nach eigenen Als letzte große Änderung kommt mit Version 4.2 Angaben von Haus aus schon schneller als das Basis („Jellybean“) der Mehrbenutzerbetrieb, zumindest für Android. Außerdem beinhaltet es für einige Smartphones Tablets. schon alle Inhalte der aktuellsten Version, unterstützt alle Außerdem wurde in größeren aber regelmäßigen Apps und ist bis auf kleinere Probleme Fehlerfrei. [10] abständen der Linux-Kernel erneuert. Dies ergibt sich da mit Aber wo liegt das Problem bei den Portierungen? Ein diesen Linux Versionen Verbesserungen kamen die auch für Linux basierendes Betriebssystem ist normalerweise nahezu ein Smartphone Betriebssystem von wert sind, wie eine überall lauffähig und auch Java ist Plattformunabhängig. Das besseres Management des Arbeitsspeichers oder dergleichen. größte Hindernis ist die Optimierung in Android, hier wurde Allerdings ist ein solches Update auch Zeitaufwendig, da die an vielen Stellen zugunsten der Performance auf Flexibilität einzelnen Unterschiede zwischen Standard Linux und verzichtet um mit den begrenzten Ressourcen eines Android Linux auch neu angepasst werden mussten. Hinzu durchschnittlichen Smartphones immer noch eine gute kommt das Android ein paar dieser Änderungen bereits im Leistung erzielen zu können. So ist der Register basierte Vorfeld implementiert hatte und somit eine Umstellung nicht Speicher der Dalvik VM nicht mit jedem System ohne von Nöten war. [5] Anpassungen kompatibel und besonders schwierig wird es wenn das Gerät keine ARM-Architektur besitzt, in diesen

20 Fällen kommt es meistens dazu das die meisten  java.io Grundelemente ausgetauscht werden müssen, da Android auf  java.lang diese Architektur ausgelegt ist. Es wurden zwar später noch  java.math die Unterstützung von ARM-NEON sowie X86 und MIPS  java.net nachgereicht, allerdings gibt es auch hiermit teilweise noch  java.nio Probleme. [11]  java.security  java.sql V. PROGRAMMIERUNG  java.text Der Übliche weg zur Entwicklung von Applikationen für  java.util Android ist das Android SDK für Java. Hierüber erstellte  javax.crypto Applikationen werden wie System eigene Anwendungen  javax.net über die Dalvik VM interpretiert und ausgeführt. Seit  javax.security Android 1.5 gibt es zudem eine Möglichkeit nativem Code  javax.sound zu schreiben, welcher an der Dalvik VM ignoriert und über  javax.sql die Bionic C Bibliotheken bearbeitet wird. Somit ist es möglich eigene Applikationen beispielsweise in C oder C++  javax.xml.parsers zu erstellen. Für Neulinge gibt es außerdem eine Art  org.w3c.dom (ohne Unterpakete) Baukasten der kostenlos nutzbar ist.  org.xml.sax Zu einem Projekt gehören immer mehrere Attribute die Zudem werden ein paar Fremdbibliotheken festgelegt werden müssen, am wichtigsten ist natürlich der eingebunden: eigentliche Name der App. Außerdem muss es zu jeder App  org.apache.commons.codec ein Projekt geben, gibt man für mehrere Apps das selbe  org.apache.commons.httpclient Projekt an kann Android so erkennen das sie direkt  org.bluez zusammengehören. Des weiteren benötigt es einen  java.net Paketnamen, unter diesem wird die App später Für einige weitere Bereiche, wie Oberflächen oder der abgespeichert. Der Paketname muss als einziges Eindeutig Umgang mit XML, wurden von Google eigene Bibliotheken sein, ist er es nicht kann es zu Überschneidungen kommen. entwickelt. [12] Alle gewählten Voreinstellungen stehen später in der Projekt Solange man sich an die von dem Android SDK eigenen Manifest Datei, können also jederzeit wieder vorgegebene Datenstruktur geändert werden. hält gibt es einige Möglichkeiten den A. Applikationen in Java Quellcode zu vereinfachen Die Entwicklung von Anwendungen mit Hilfe von Java und vor allem aussehen wird über das Android SDK ermöglicht. Zu diesem gehört und Logik von einander zu ein umfangreiches PlugIn für die Java trennen. Dies wird vor Entwicklungsumgebung eclipse genannt NDK (steht für allem dadurch ermöglicht Android Development Tool). Es enthält unter anderem einen das sich die Android eigenen GUI-builder. Oberflächen als XML Schon beim erstellen eines eigenen Projektes fällt auf das erstellen und abspeichern Google sich einige Gedanken über Versionsübergreifende lassen, später können diese Apps gemacht hat und dem Entwickler hier einige dann aus dem Quellcode Möglichkeiten bietet. Neben einer natürlich benötigten heraus aufgerufen und mit Version in der Kompiliert werden soll kann beispielsweise der nötigen Logik auch eine Version angegeben werden die mindestens versehen werden. Auch der unterstützt wird. Dies ist möglich da die Dalvik VM während bereits angesprochene des Vorkompilieren bei unbekanntem Code nicht sofort GUI-builder arbeitet nach einen Fehler ausgibt sondern dies erst direkt bei der diesem Prinzip und erstellt Ausführung betreffender Zeile geschieht. So können durch dynamisch eine passende geschicktes abfragen bestimmte inkompatible stellen XML Datei. Diese XML umgangen werden und somit eine App sogar in geringeren Oberflächen müssen sich Versionen genutzt werden. Auch wenn hierbei dann die allerdings im Ordner Funktionalität eventuell eingeschränkt werden muss. Im res/layout befinden damit verlauf des Anlegens gibt es einige weitere Optionen die den sie später von Android Einstieg erleichtern sollen. Hier kann beispielsweise eine gefunden werden. Vorlage für eine erste Oberfläche ausgewählt werden. Auch in dem Ordner res befinden sich der Unterordner Es werden nicht alle aus einer normalen JavaRE drawable, in welchen die Bilder gespeichert werden sollten. bekannten Befehle unterstützt, aber mit folgenden Paketen Zusätzlich kann man hier über verschiedene Endungen sind die wichtigsten Bereiche übernommen worden: verschiedene Versionen in unterschiedlicher Auflösung

21 speichern, aus welchen Android selbstständig das am besten Beispiel eine Applikationen immer gestartet werden wenn passende heraussucht, zum Beispiel ist drawable-ldpi für die http://www.uni-oldenburg.de aufgerufen wird. eher geringere Auflösungen zuständig (ldpi steht für low dpi) Somit ist es jedem Entwickler möglich beispielsweise einen während drawable-xhdpi (xdhpi für extreme high dpi) für die eigenen Webbrowser, ein eigenes Mail Programm oder viel höheren Auflösungen von Tablet PCs gedacht ist. ähnliches frei nach belieben zu erstellen ohne sich darum Dazwischen befinden sich noch mdpi (medium dpi) und hdpi kümmern zu müssen wer diese Apps später nutzt und ob es (high dpi). In der Projektspezifischen Manifest Datei lässt eventuell Konkurrenzprodukte, wie andere Webbrowser, sich hierzu auch einstellen das nur bestimmte Auflösungen gibt. oder Bildschirmgrößen unterstützt werden. Besitzt das Hiermit kommen aber auch große Risiken im Bereich der Ausführende System eine andere Auflösung kann die App Datensicherheit ins Spiel. Wenn es einer App erlaubt ist auf dann nicht gestartet werden oder meist nicht mal Email, Telefonnummern und ähnliches zuzugreifen wird es heruntergeladen werden. [13] [14] Hackern, oder Betrügern im Allgemeinen, besonders leicht Ähnliches gilt für die Lokalisierung. Sie wird über den gemacht an benötigte Daten zu gelangen. Beispielsweise Unterordner values realisiert, hier werden xml Dateien mit kann so jede Telefonnummer die gewählt wird abgefangen verschiedenen String werten angelegt. Ähnlich der und gespeichert werden. An jede E-Mail können zwischen Lokalisierung über propertie Dateien im normalen JavaRE der absende Aufforderung des Nutzers und dem können hier über Endungen verschiedene Sprachen und tatsächlichen absenden noch beliebig viele Daten angehängt Länder angesteuert werden. Wird sie nicht gefunden wird oder verändert werden, ohne das dieser etwas davon automatisch die nächst höhere Ebene genutzt. Greift eine mitbekommt. Um dies zu verhindern muss der zugriff auf App beispielsweise innerhalb Deutschlands auf eine bestimmte Intents, wie gewählte Telefonnummern, erst vom strings.xml zu, so wird intern zunächst nach einer strings-de- Nutzer erlaubt werden. Geschieht dies nicht werden DE.xml, die für Deutschland zuständig ist. Sollte diese nicht entsprechende Daten niemals an die App gesendet und sind gefunden werden so wird die für den deutschsprachigen somit vor Fremdzugriffen gesichert. Diese nachfrage Raum genutzte strings-de.xml gesucht. Wird auch diese nicht geschieht während der Installation. [15] gefunden gilt automatisch das was in der allgemeinen strings.xml angegeben wurde. Da mit neueren Version dieses B. Applikationen in Nativem Code verbessert und erweitert wurde können außerdem values-v11 Android unterstützt seit Version 1.5 die Programmierung und values-v14 verwendet werden um diese Funktionen zu in nativem Code. Dieser ist naturgemäß schneller in der nutzen und trotzdem abwärtskompatibel zu bleiben. Ausführung, da er nicht erst noch erneut interpretiert werden In res befindet sich außerdem der Ordner menu, in diesen muss, wie es beispielsweise für Javas Bytecode der Fall ist. können Oberflächen gespeichert werden die angezeigt Zur Entwicklung mit nativem Code wurde von Google das werden sollen wenn auf dem Smartphone die Menütaste NDK (kurz für Native Development Kid) zur Verfügung gedrückt wird. Auch hierfür gibt es einen eigenen GUI- gestellt. Allerdings werden auch hier aufgrund der builder. Dieser bietet alle Elemente die zum erstellen eines Einschränkungen der in Android verwendeten Bionic C Menüs gebraucht werden, sogar einzelne einfache Bibliothek nicht alle Befehle unterstützt, was gerade durch Funktionen lassen sich hier direkt erstellen. Fehlendes Exception handling schnell zu einem sehr Der Ordner assets ist für Datenströme zuständig, hierfür unübersichtlichen Quellcode führen kann. Aus diesen stellt Android einige Methoden zur Generierung von Input- Gründen ist es eher unüblich das ganze Apps in nativem beziehungsweise OutputStreams zur Verfügung. Er ist Code verfasst werden, die Möglichkeit bestimmte allerdings optional und befindet sich daher nicht im Ordner Schnittstellen in nativem Code zu schreiben und aus Java res sondern steht auf der selben ebene. Code darauf zurückzugreifen ist allerdings auch gegeben und Das wahrscheinlich wichtigste Konzept sind die so wird häufiger genutzt. Gerade im Bereich der mittlerweile genannten Intents. Über sie gibt es die Möglichkeit neue zahlreichen Spiele ist hierdurch ein großer und notwendiger Oberflächen zu öffnen, spezielle Funktionen zu starten, eine Geschwindigkeitsvorteil vorhanden. Für die meisten anderen App selber bei bestimmten aufrufen starten zu lassen und Anwendungen bringt es allerdings keine Vorteile und vielem mehr. Im Großen und Ganzen kann man sagen sie schränkt einen durch die Fehlenden Funktionen sogar noch dienen der Kommunikation innerhalb einer Applikation aber weiter ein, was Google dazu brachte bei dem Download des auch unter den verschiedenen Applikationen. Beispielsweise NDK bereits darauf Hinzuweisen das dieses in den meisten gibt es Intents denen man die Adresse einer Website mitgibt, fällen keinen Vorteil bringt. [16] [17] nun ist es egal welche Applikation als Standard Webbrowser C. Applikationen über den App Inventor ausgewählt wurde, beziehungsweise eventuell auch keiner, Android kümmert sich darum und sorgt dafür das sie Der App Inventor ist eine Art Baukasten für Android angezeigt wird. Ähnlich verhält es sich mit Telefonnummer, Applikationen. Entwickelt wurde er von Google als Teil von SMS, Emails und vielem anderen. Der Entwickler sagt was Google Labs, als dieses eingestellt wurde übernahm es das gemacht werden soll und Android entscheidet je nach MIT, da eine Grundlegende Bibliothek dort erstellt wurde, Einstellungen welche App sich darum kümmert. und stellte es nach kurzer Zeit erneut für die Öffentlichkeit Das Gegenstück zu den Intents sind die IntentFilter, über zu Verfügung. Der App Inventor ist zunächst über eine diese kann das Programm auf Intents reagieren, so kann zum Website zu erreichen, für das erstellen der Programmlogik und zum testen müssen allerdings Programme 22 heruntergeladen werden. Die Entwicklung startet mit dem Es bleibt abzuwarten was mit Android 5.0 und den darauf designen der Grafischen Oberfläche innerhalb der Website, folgenden Versionen für Veränderungen kommen. hierfür steht eine stark abgespeckte Version des GUI- Vielleicht werden ein paar Ideen auch in die normalen Java builders aus dem SDK zur Verfügung. Diesem Fehlen Bibliotheken übernommen, hierfür müssten allerdings erst beispielsweise fast alle Panelarten, sowie die spezielleren die Streitigkeiten zwischen Oracle und Google enden. Einstellungsmöglichkeiten für Textfelder, Buttons und ähnlichem. Nachdem die Oberflächen erstellt sind kann [1] http://de.statista.com/themen/581/smartphone/infografik/291/weltweit durch das aneinander und ineinander Schieben von Puzzle er-marktanteil-der-smartphone-betriebssysteme/ (03. Februar 2013) teilen ähnelnden Blöcken die Logik erstellt werden. Das [2] http://www.zdnet.de/41553061/android-architektur-wieviel-linux- Aussehen dieser Oberflächen erinnert stark an die Java steckt-in-googles-os/ (03. Februar 2013) Lernplattform Scratch, sie basieren auch beide auf der selben [3] http://www.zdnet.com/blog/btl/jury-clears-google-of-infringing-on- oracle-patents/77897 (03. Februar 2013) Java Bibliothek, Open-Blocks. Dieses wurde von Ricarose [4] http://www.pcwelt.de/ratgeber/Smartphone-Grundlagen-Technik- Roque als Masterarbeit am MIT veröffentlicht und später erklaert-Google-Android-Architektur-im-Detail-1005294.html (03. dort im Rahmen des „Scheller Teacher Education Program“ Februar 2013) (kurz STEP) unter der MIT-License veröffentlicht. Zum [5] http://de.wikipedia.org/wiki/Liste_von_Android-Versionen (03. Testen der Apps steht außerdem ein Emulator zur Februar 2013) Verfügung. [17] [18] [6] http://xdandroid.com (03. Februar 2013) D. Die Veröffentlichung [7] http://developer.blackberry.com/android/ (03. Februar 2013) [8] http://andromnia.sourceforge.net/ (03. Februar 2013) Will man seine fertigen Apps im Google marketplace [9] http://www.zdnet.com/is-aliyun-os-really-linux-android-a-rip-off-of- veröffentlichen benötigt man einen Entwickler Account both-7000004318/ (03. Februar 2013) dessen Erstellung einmalig 25$ kostet, zusätzlich behält [10] http://www.cyanogenmod.org/ (03. Februar 2013) Google 30% der einnahmen für sich. Vorausgesetzt wird das [11] http://webmagazin.de/einfuehrung-portierung-android-37649.html jede App einen eindeutigen Pfad besitzt da es ansonsten zu (03. Februar 2013) Überschneidungen auf dem Endgerät kommen kann. Ist ein [12] http://www.zdnet.com/blog/burnette/java-vs-android-apis/504 (03. Pfad bereits vergeben muss man diesen ändern oder sich eine Februar 2013) andere Stelle suchen um die App zu veröffentlichen. Da es [13] http://developer.android.com/guide/practices/screens_support.html möglich ist Programme über den PC auf dem Smartphone zu (03. Februar 2013) installieren gibt es mittlerweile verschiedene Foren in denen [14] http://developer.android.com/guide/practices/screens- man seine Programme kostenlos zur Verfügung stellen kann. distribution.html (03. Februar 2013) Hierdurch spart man sich die kosten für einen Entwickler [15] http://developer.android.com/guide/components/intents-filters.html Account und muss nicht zwingend einen eindeutigen Pfad (03. Februar 2013) angeben, allerdings erreicht man hier auch nicht die Masse [16] http://developer.android.com/tools/sdk/ndk/index.html (03. Februar 2013) die eine App in Googles marketplace erreichen kann und [17] http://web.mit.edu/newsoffice/2010/android-abelson-0819.html (03. man muss damit rechnen das der Pfad eventuell schon Februar 2013) vergeben ist. [19] [18] http://appinventor.mit.edu/ (03. Februar 2013) [19] http://www.heise.de/ct/hotline/FAQ-Eigene-Android-Apps- VI. FAZIT 1155583.html (03. Februar 2013) Android ist als Googles Smartphone-Betriebssystem bekannt geworden, mittlerweile kann man es weder als reines Smartphone-Betriebssystem betrachten noch sollte Google als alleiniger Entwickler genannt werden. Es wird von vielen Weiterentwickelt und das für fast jede Plattform. Es ist ein Kompromiss zwischen Leistung und Flexibilität der die Kunden überzeugt und den Herstellern trotzdem die Möglichkeit gibt es fast überall zu verwenden. Programmierern bietet es die Möglichkeiten fast alles damit anzustellen und es im Google marketplace kostenlos jedem zur Verfügung zu stellen, was wieder neue Kunden anlockt und somit das Betriebssystem noch lukrativer für die Hersteller und Programmierer macht. Eine Spirale die bisher noch nichts unterbrechen konnte. Für Entwickler ist das sicherlich erfreulich, da somit erstellte Apps wahrscheinlich noch Jahre lang nutzbar bleiben. Androids Dalvik Java bietet viele Vorteile gegenüber dem Herkömmlichen Java, wenn man sich an die Unterschiede erst mal gewöhnt hat sind diese auch durchaus Praktisch und überwiegen für mich die Nachteile.

23 Handybetriebsystem: iOS Ausarbeit zum Proseminar Handybetriebssysteme

Alexander Söker Carl von Ossietzky Universität Oldenburg Fakultät II - Informatik Systemsoftware und verteilte Systeme E-Mail: [email protected]

Zusammenfassung - Im Folgenden wird eine Übersicht über unterschiedlichen mobilen Apple-Produkte das hauseigene das Handybetriebssystem iOS aus dem Hause Apple gegeben. iOS vorinstalliert, dazu geliefert. Da es sich bei diesem Dabei sollen nach einer kurzen Motivation erst die allgemeinen Betriebssystem um ein geschlossenes Betirbessystem Eigenschaften aufgeführt werden. Danach werden die handelt, sind Modifikationen jeglicher Art nur schwer unterschiedlichen Ebenen der Software aufgezeigt. Des durchführbar. Weiteren werden neben der Speicher- und Dateiverwaltung, Im Folgenden soll nun untersucht werden, was die auch noch die Grundarchitektur einer App für das iOS Kernmerkmale und Besonderheiten des iOS-Betriebssystems beschrieben. Abschließend soll ein Ausblick in Kombination sind und warum Apple mit diesem Betriebssystem der mit einer Kritik stehen. Marktführer im Bereich der Smartphones ist [1]. Aber auch etwaige Kritikpunkte an den Geschäftsmodellen rund um das I. EINLEITUNG iOS sollen beleuchtet werden. Die folgende Arbeit wurde im Rahmen des Proseminars "Handybetriebssysteme", besucht im Wintersemester III. ALLGEMEINE EIGENSCHAFTEN 2012/13, erstellt. Es sollen die grundlegenden Eigenschaften Das Betriebssystem iOS basiert grundlegend auf dem und Besonderheiten des Handybetriebssystems iOS aus dem Apple Betriebssystem Mac-OS-X. Erstmals wurde das iOS Hause Apple aufgezeigt werden. Neben den im iPhone 1 im Jahre 2007 genutzt, damals noch unter dem unterschiedlichen Abstraktionsebenen und dessen Aufgaben Namen iPhone OS. Es ist auf die spezielle ARM- bzw. Möglichkeiten, soll auch die Grundstruktur und einige Prozessorarchitektur angepasst und biete somit eine optimale Desing Patterns für die Entwicklung von Apps(Kurzform: Zusammenarbeit zwischen Hardware und Software an. In application = Anwendung) im Bereich des iOS genannt den folgenden Versionen wurden weitestgehend Updates werden. Nachdem auf die Art der Speicherverwaltung und vorhandener Funktionalitäten eingespeist und kleinere Archivierung von Daten eingegangen wurde, soll im Funktionen (bspw. GoogleStreetView) hinzugefügt. Mit weiteren Verlauf dann die Grundstruktur einer erscheinen des iPad im Jahre 2009, mussten im "handelsüblichen" App, wie sie im AppStore zur Verfügung Betriebssystem mehrere Anpassungen vollzogen werden, steht, erklärt und betrachtet werden. Abschließend wird damit es kompatibel zu einem größeren Display war. Erst versucht, einen kritischen Ausblick auf die mit der Version 4 im Jahre 2010 bekam das Betriebssystem Weiterentwicklung im Bereich der APPs und des iOS an sich seinen Namen iOS. Der nächste Meilenstein sollte im Jahr zu gegeben. 2011 das iOS 5 darstellen, in dem die Funktionen der iCloud (ein Online-Speicherservice von Apple) und Siri II. MOTIVIATION (Spracherkennungssoftware) integriert wurden. Letztere Die Bedeutung und Nutzung von Handys und kann man nur mit einem iPhone4s oder einem iPhone 5 Smartphones ist in den letzten Jahren exorbitant angestiegen. nutzen. Gerade im Bereich der mobilen Nutzung des Internets bieten In der aktuellen Version 6 wurden, wieder auf Grund Smartphones eine optimale Arbeitsoberfläche[1]. Die Frage eines neuen Endgerätes, Anpassungen vorgenommen. Mit die sich nun stellt, ist, wie eben die genannten Smartphones dem Release des iPhone 5 wurden zusätzlich noch die grundsätzlich funktionieren. Dabei ist die Rede nicht von der Social-Networks und direkt in die speziellen Hardware der verschiedenen Geräte, sondern von Basisfunktionen eingebunden. Außerdem ersetzte die Apple den Betriebssystemen, die die Basis für ein erfolgreiches Map, die bislang genutzte Google Map, als Standard Smartphone darstellen. Oftmals sind die Fragen, die sich bei Kartenservice. einem Kauf stellen, die nach einem bestimmten Typ von Des Weiteren kann davon ausgegangen werden, dass es Smartphone oder einer bestimmten Marke. Jedoch sollte die sich bei dem iOS um eines der weltweit am meisten Frage nach dem zu wählenden Betriebssystem weiter in den eingesetzten Handybetriebssysteme handelt. So wurden bis Vordergrund rücken. Bei einigen Modellen ist man bereits zum Jahr 2011 ca. 50 Mio. iPhones, 35 Mio. iPods und 3 durch den Kauf schon an ein festes Betriebssystem Mio. iPads mit iOS ausgestattet, verkauft. Auch dem eigens gebunden. Das, an dieser Stelle beschriebene iOS- für iOS eingeführten AppStore (2008) folgten sämtliche Betriebssystem, ist ein solches. So gibt es für die andere Hersteller mit Ablegern für ihr Betriebssystem. Das 24 iPhone mit iOS revolutionierte den Markt für Smartphones abgestimmt ist, kann es diese auch optimal nutzen. Zu den und sollte schnell als eine Art Statussymbol für den Nutzer, Sensoren und Aktoren, sowie der unterstützen Hardware, sowie als Vorbild für andere Hersteller gelten[4]. gehören:  Mikrophon, als Spracheingabe bei Telefonaten, A. Grundfunktionen Aufnahme von Memos und Bedienung der Das Betriebssystem ist auf den Apple Endgeräten Sprachsteuerung Siri vorinstalliert und kann auch nicht wieder vollständig entfernt  Lautsprecher, als Freisprecheinrichtung und werden. Es lässt sich also festhalten, dass es sich im Grunde zur Wiedergabe von Musik oder Tönen. um eine Pflicht handelt, das iOS auf Apple Produkten  Kamera (Rückseite/Vorderseite), zur Nutzung (iPhone, iPod und iPad) zu nutzen. der Videotelefonie (Facetime) und Foto-und Um nun zu den Grundfunktionen des Betriebssystems zu Videokamera. kommen, lässt sich feststellen, dass vor allem die Basisapps  Vibrationsgenerator, als Signal für eine aus dem Hause Apple die grundlegenden Bedürfnisse eines Nachricht oder Anruf. Nutzers stillen. So werden neben den  GPS-Sender/Empfänger, zum Ermitteln der Standardhandyfunktionen, der Telefon-, Adressverwaltungs- genauen Position und damit als Grundlage für und SMS-Funktion weitere hilfreiche Anwendungen zur die Navigation, sowie zur Nutzung der „Where- Verfügung gestellt. Eine Kartenapp, die Möglichkeit der is-my-iPhone“-Funktion (Suchfunktion, die die Mail- und Kalendereinrichtung und natürlich der Zugang Position des iPhones über das Internet zum Einstellungsmenü sowie zu iTunes und zum AppStore bestimmt) stehen zur Verfügung. Auch das Lesen von eBooks ist seit  WLAN, zur Nutzung von WLAN-Netzen in der der Version 6 integriert. Außerdem existiert eine kleine Umgebung. Anzahl von hilfreichen Apps aus dem Hause Apple. Hierbei handelt es sich beispielsweise um einen Taschenrechner oder  Bluetooth, als Schnittstelle für diverse externe einen Notizbock. Geräte (Musikwiedergabe, Datenübermittlung). Im Bereich des Einstellungsmenüs befinden sich eine  Beschleunigungssensor und Gyroscope, als große Zahl an Optionen, die es möglich machen das System eine intuitive Bedienfunktion, die beispielsweise nach seinen eigenen Bedürfnissen anzupassen durch Schütteln des Endgerätes gewisse (beispielsweise Lautstärke, Helligkeit, Netzanbieter des Funktionen auslöst. Endgerätes).  Digitaler Kompass, zur Orientierung in Map- Seit der Version 6 gibt es auch die Möglichkeit per Services. „Fingerdrop“ am oberen Bildrand ein Nachrichtencenter  Umgebungslicht-Sensor, zur automatischen aufzurufen und so die neusten Meldungen der Regulierung der Bildschirmhelligkeit. unterschiedlichen Apps auf einen Blick zu betrachten[2].  Annäherungssensor, der es ermöglicht, dass Display bei einem Telefonat auszuschalten, B. Unterstützung von Peripherie solange es in Ohrnähe ist, damit Fehleingaben Das iOS unterstützt neben dem externen Ladegerät noch verhindert werden können. viele weitere externe Geräte. So kann mit Hilfe eines Alle genannten Hardwarebausteine werden von dem Adapters der Bildschirminhalt auch auf externen Geräten Betriebssystem iOS in seiner neusten Version 6 (VGA / HDMI) angezeigt werden. Das Anschließen von unterstützt und den unterschiedlichen Apps zur externen Audiowiedergabegeräten ist möglich. Des Weiteren Verfügung gestellt[4]. ist auch eine Kombination aus Ladegerät und Wiedergabegerät (Docking-Station) ohne Probleme nutzbar. Häufig werden geraden im Bereich der Peripherie-Geräte D. Besonderheiten die Produkte aus dem Hause Apple besser unterstützt, als Die Grundarchitektur des iOS Betriebssystems ist so jene von Drittherstellern. Das Anschließen von anderen ausgelegt, dass lediglich eine App zur selben Zeit ausgeführt Peripheriegeräten, wie beispielsweise kleinen Joysticks oder werden kann. Somit wird der aktiven Applikation das Tastaturen geschieht häufig auch über die unterstützte gesamte Fenster bzw. Display zur Verfügung gestellt und Bluetooth-Schnittstelle. So können auch zwei Apps können nicht nebeneinander angezeigt werden. Es Freisprecheinrichtungen oder Bluetooth-Anlagen angesteuert ist lediglich möglich Apps im Hintergrund weiterlaufen zu werden. Auch im Bereich der Automobilbranche wird sich lassen. Außerdem wird das iPhone bzw. iPad mit dem iOS diese Schnittstelle häufig zu nutzen gemacht. Ein passendes lediglich mit nur einer richtigen Taste bedient und kann Beispiels hierfür ist der Automobilhersteller Opel, der es mit somit komplett nur über den eingebauten Touchscreen Hilfe einer iOS-App erlaubt via Bluetooth, Fahrzeugdaten bedient werden. auf dem iPhone anzuzeigen (bspw. Kühlwassertemperatur Zu den Bersonderheiten im Bereich der Speicher- und usw.) [3]. Dateiverwaltung wird in den Punkten VI und VII eingegangen. C. Nutzung der Hardware Das Iphone 5 ist mit einer großen Anahl an Sensoren und Aktoren ausgestattet. Da das iOS speziell auf dieses Gerät

25 IV. EBENEN DES IOS Das Security Framework: Zusätzlich zu dem General Das Betriebssystem iOS kann grob in vier Security Services Framework arbeitet dieses Framework im Abstraktionsschichten eingeteilt werden, die alle aufeinander Bereich des Zertifikatsmanagement und Trust-Policies. So aufbauen, um die Hardware des Endgerätes anzusprechen. kann mit diesem Framework eine Reihe kryptographischen Umso weiter eine Schicht von der Hardwareebene entfernt Schlüsseln gespeichert und verwaltet werden. Dies ist gerade ist, umso weiter wurde sie abstrahiert. Jede der vier Ebenen im Bezuge auf benutzerkontenbasierten Apps ein sehr stellt seine eigenen Eigenschaften und Funktionen zur hilfreiches Mittel. Auch die sichere Kommunikation Verfügung. So werden durch diese vier Abstraktionsebenen zwischen zwei unterschiedlichen Apps wird in diesem alle notwendigen Funktionen abgedeckt und stehen dem Framework zur Verfügung gestellt. iOS-App Entwickler zur Verfügung. Das System: In diesem Bereich sind alle wichtigen, zum Betriebssystem notwendigen Informationen hinterlegt. Dazu Tabelle 1: Abstraktionsebenen gehört neben dem Datenmanagement, dem Cocoa Touch Speichermanagement und den Input/Output-Management, auch die Netzwerkverwaltung. Es lässt sich also sagen, dass Media Services dieser Bereich die Basis bildet für einen reibungslosen Core Services Betriebs des iOS. Core OS B. Core Services ↓ ↑ Hardware Die Abstraktionsschicht des Core Services ist eine Erweiterung des Core OS und enthält weitere, grundlegende Funktionen. Diese bieten grundlegende Klassen und Im Folgenden werden nun die vier Datentypen, die von den oberen Schichten verwendet werden Abstraktionsschichten, siehe Tabelle I, genauer erklärt und können. Auch die Möglichkeit der Lokalisierung und der beschrieben. Das Hauptaugenmerk liegt dabei auf der Basis Datumsverarbeitung stehen hier zur Verfügung. Des und somit hardwarenahsten Schicht: dem Core OS. Weiteren werden an dieser Stelle mögliche Caches- A. Core OS Funktionen definiert. Das Core OS ist die niedrigste Abstraktionsschicht und Seit der Version iOS 3 wird hier auch der sogenannte enthält neben den grundlegenden Funktionen keine anderen „in-app-purchase“ unterstützt. Dabei handelt es sich um die Funktionen als die höher liegenden Schichten. Diese Schicht Möglichkeit, innerhalb einer App auf dem iPhone eine wird nur selten von Programmierer genutzt, jedoch sehr direkte Verknüpfung mit dem App-Store herzustellen und häufig von den anderen Abstraktionsschichten. somit innerhalb der App Einkäufe zu tätigen. Dies ist Zu den Kernframeworks des Core OS zählen: besonders für Programmierer von Apps hilfreich, da einzelne Das Accelerate Framework: Dieses Framework enthält Funktionen in vorhandene Apps über den App Store die Interfaces für die DSP-Bearbeitung (Verarbeiten von eingebunden werden können. Auch das Social Framework einzelnen digitalen Signalen), lineare Algebra und spielt eine große Rolle, da es die Verknüpfung mit den grundlegende Fertigkeiten zur Berechnung von Bildern sozialen Netzwerken Twitter und Facebook herstellen kann. (image-processing-calculations). Da viele Apps diese Verknüpfung nutzen, kann man dieses Das Core Bluetooth Framework: Wie der Name schon Framework auch als sehr wichtig ansehen. vermuten lässt, handelt es sich um das Framework, das dem Des Weiteren werden mit Hilfe von eigenen Frameworks Entwickler erlaubt die eingebaute Bluetooth-Hardware Dienste, wie beispielsweise der Location Service, zur ordnungsgemäß zu nutzen. So werden die Unterstützung des GPS oder auch der Media Service, zur Standartoperationen, wie Verbinden, Trennen, Schreiben, Nutzung von Filmen und Musik zur Verfügung gestellt. Lesen und Finden zur Verfügung gestellt. C. Media Services Das ExternalAccessory Framework: Durch dieses Die gerade schon beschriebenen Media Services werden Framework wird die Möglichkeit gegeben, externe Geräte an dieser Stelle präzisiert. So werden mehr Typen von anzusprechen bzw. sich Informationen über sie zu Audio- und Videodateien unterstützt. Außerdem werden beschaffen. Bei externen Geräten ist hier in erster Linie die durch diverse Frameworks in den Bereichen Audio-, Video-, Rede von Geräten, die über den StandardiPhone Anschluss Text- und Bildverarbeitung viele neue Features zur (30-Pin) oder kabellos via Bluetooth angeschlossen sind. Verfügung gestellt. Auch die Animationen der Das General Security Services Framework: Dieses unterschiedlichen Menüpunkte oder Menü Bars werden an Framework unterstützt die Standard Funktionen bezüglich dieser Stelle zur Verfügung gestellt. der Sicherheit. So werden die standardisierten Fälle RFC Es handelt sich bei dem Media Service also um eine reine 2743 und RFC 4401 abgedeckt, sowie einige weitere GUI-Schicht, die sich durch unterschiedliche Frameworks grundlegende Sicherheitsoptionen zur Verfügung gestellt. repräsentiert. Bei den RFC (Request for Comments) handelt es sich um formalisierte Fälle im Bereich des Internets und der Softwareentwicklung.

26 D. Cocoa Touch VI. SPREICHERVERWALTUNG Die Cocoa Touch Schicht, ist die höchste Schicht und hat Die Speicherverwaltung des iOS, bezogen auf den somit auch den höchsten Abstraktionsgrad. Sie wird von App Hauptspeicher, ist eine weitere grundlegende Funktion, die Programmierern primär genutzt und stellt eine Reihe von nicht nur die Apps benötigen, sondern auch das high-level Frameworks zur Verfügung. An dieser Stelle wird Betriebssystems selbst. Je nach Endgerät (z.B. beim iPhone 4 häufig auch in „View“ und „Controller“ unterschieden. Dies 512 MB) ist der Arbeitsspeicher begrenzt auf eine gewisse zeigt die klare Trennung der Programmierung nach dem Größe. Dabei wird von dem iOS selbst ein Teil dieses MVC (Model-View-Controller) Prinzip, welches unter V. Speichers benötigt, um die Grundfunktionalität zur genauer beschrieben wird. Verfügung zu stellen. Das Betriebssystem unterstützt keine Als eines der wichtigsten Frameworks bei der App dynamische Anpassung des Arbeitsspeichers, also gibt es Erstellung wird das UIKit-Framwork angesehen. Dieses nicht die Möglichkeit eine Auslagerungsdatei zu erstellen. Framework bietet neben der Bereitstellung von User- Dadurch stürzen Applikationen ab und beenden sich, ohne Interfaces und Event-Management (bspw. Touch-Event), die die vorher getätigten Eingaben oder Daten zu sichern, wenn Möglichkeit Nachrichten an das iOS interne Apps mehr Speicher beanspruchen, als derzeit noch auf dem Nachrichtencenter zu senden. Auch die Nutzung der Arbeitsspeicher verfügbar. Dies ist ein großer Kritikpunkt Hardware (siehe oben) ist durch mehrere Frameworks den man an dem iOS von Apple feststellen kann. gegeben. Des Weiteren gibt es auch keine Garbage Collection, also Das Message UI Framework, ein weiteres wichtiges das Entfernen von nicht mehr benötigten Inhalten durch eine Framework, stellt die Funktionen im Bereich der Telefonie, automatisierte Methodik. In dem Fall, dass Objekte nicht SMS-Dienste und E-Mail-Versand und -Empfang zur mehr benötigt werden, verbleiben diese auf dem Verfügung. Arbeitsspeicher und blockieren somit wichtigen Speicherplatz. Das Management dieser unnötigen Objekte Zusammenfassend lässt sich festhalten, dass die oberste übernimmt der Programmierer bzw. Entwickler selbst, in Schicht diejenige ist, die von App Programmierern am dem er die Laufzeit dieser selbst bestimmen muss und häufigsten genutzt wird. Sie stellt im Grunde alles zur angeben muss an welchem Punkt diese nicht mehr benötigt Verfügung, was eine moderne App ausmacht, z.B. die werden. Dies passiert durch das sogenannte reference Nutzung der Touch-Events. Dabei ist die Nutzung auf einer counting, bei dem jedem Objekt ein spezielles Attribut höheren Abstraktionsebene wesentlich leichter zu zugewiesen wird, was einen Integer-Wert enthält. Dieser bewerkstelligen, als es auf den unteren Ebenen der Fall ist. wird immer erhöht, wenn eine neue Referenz auf dieses Diese Bilden lediglich die Basis und stellen Schicht für Objekt zeigt und erniedrigt wenn eine Referenz entfernt Schicht immer weitere grundlegende Funktionen zur wird. Besitzt das Objekt keine Referenzen (Integer-Wert = Verfügung, die, wie bereits angedeutet nicht direkt von dem 0), dann wird dieses Objekt aus dem Speicher entfernt und Programmierer genutzt werden[6, 7]. somit wieder brauchbarer Platz freigegeben. Außerdem besitzt jede Klasse die dealloc-Funktion, die aufgerufen wird, um ein Objekt direkt von dem Speicher zu V. GRUNDARCHITEKTUR löschen. Dies ist notwendig, wenn der Referenzzähler noch Die Grundarchitektur des iOS beruht auf einem weit nicht auf null steht, das Objekt jedoch trotzdem vom verbreiteten Muster zur Erstellung von Software, dem Speicher gelöscht werden soll. Model-View-Controller, kurz MVC. Dabei werden die drei Des Weiteren wird eine Warnmeldung intern verschickt, Bereiche „Model“, „View“ und „Controller“ strikt wenn der Speicher knapp wird. Diese Warnmeldung wird in voneinander getrennt und arbeiten somit auch unabhängig Form von einem Methodenaufruf voneinander. Dies trennt also die Anwendungslogik didRecieveMemoryWarning ausgeführt. Mit Hilfe dieser („Model“), von den dazugehörenden Darstellungen(„View“) Methode wird versucht, unbrauchbare/unnötge Daten zu und den Benutzerinteraktionen(„Controller“). So kann das löschen und somit nötigen Speicherplatz wieder freizugeben. System später leichter erweitert werden und eine schnellere Zusammenfassend lässt sich feststellen, dass Apple im Wartung ist ebenfalls ein Vorteil. Außerdem hilft die iOS-Betriebssystem verschiedene Modelle zur Freigabe und Trennung bei der individuellen und unabhängigen Nutzung Nutzung des Arbeitsspeichers zur Verfügung stellt. Allein der unterschiedlichen Ressourcen. die Abwesenheit eines Garbage Collectors, der durch Eine Besonderheit in diesem Bereich ist die Verwaltung unterschiedliche Wege nachempfunden werden soll, ist von Nachrichten. Diese werden mit Hilfe von einem jedoch schon fraglich. So können Apps, wenn sie mehr Observer Musters repräsentiert. Hierbei werden Speicher benötigen, als derzeit zur Verfügung steht, nicht Veränderungen eines Objektes (in diesem Fall, den Zustand mehr ausgeführt werden. Dies kann im schlimmsten Fall einer App oder deren Nachricht) von einem zentralen dazu führen, dass sehr viele, kurz zuvor eingegebene Daten Beobachter (in diesem Fall dem iOS Service) überwacht und verloren gehen. Aus Entwicklersicht jedoch, ist zu bearbeitet. Dieses System wird zur Realisierung des beobachten, dass es einige einfache Methodenaufrufe Nachrichtencenters im iOS genutzt. braucht, temporäre Daten oder nicht mehr nötige Objekte zu löschen, um wieder Speicher freizugeben[6].

27 VII. DATEIVERWALTUNG können angenommen werden, wenn der Entwickler dies Die Dateiverwaltung bildet ein weiteres, wichtiges benötigt. Merkmal eines Betriebssystems. Das iOS stellt ein einfaches, Des Weiteren ist die klassische GUI einer iPhone-App windows-ähnliches System zur Verwaltung von Daten zur aus unterschiedlichen Views zusammengebaut. Diese Verfügung. Dabei sind die iOS CoreData nicht zugänglich, unterschiedlichen Elemente, können beispielsweise eine stellen aber ein Dateisystem für die Apps von Drittherstellern Navigationsleiste, Buttons oder auch reine Textfelder sein. zur Verfügung. Jede Applikation, die über das Apple eigene Dem Entwickler ist freigestellt wie viele unterschiedliche Applikationsarchiv (iTunes) zur Verfügung gestellt wird, Elemente bzw. Views er auf dem Bildschirm anzeigen lässt. erhält ein eigenes Verzeichnis in der Datenstruktur des Jedoch ist aus der Übersichtsanforderung eine indirekte Flashspeichers. Dabei ist die Unterverzeichnistiefe nicht Grenze gesetzt (siehe Abbildung 1). begrenzt. Außerdem wird jeder Applikation auch ein temporäres Verzeichnis zur Speicherung von Daten, die zur Laufzeit benötigt werden, zur Verfügung gestellt. Über den hauseigenen Applikationsdienst iTunes, kann der Nutzer diese Ordnerstrukturen anschauen und mit Hilfe einer Backup-Funktion auf dem eigenen PC oder Notebook sichern. Für die iOS-eigenen Mediendienste, wie beispielsweise dem Musikplayer, werden zusätzlich Ordner angelegt, um die Musik, Filme und Dokumente zu speichern und somit auch mit Hilfe von iTunes wieder zu sichern. Vergleichbar ist diese Struktur mit den „Eigenen Dateien“ unter Windows. Eine weitere Möglichkeit, die gerade den Entwickler anspricht, ist das sogenannte Archiving. Dabei können Objekte, die zur Laufzeit generiert werden, in einer Datei abgelegt und gespeichert werden. Diese Funktion ermöglicht dem Entwickler, gewisse Informationen schnell wiederabrufbar zu machen, ohne lange Umwege über das Extrahieren und Zusammensetzen der Objektinformationen zu gehen. Unabhängig von dem Dateisystem, existiert des Weiteren ein Datenbanksystem, um relevanten Informationen zu speichert. Auch hier haben die Apps von Drittanwender Zugriff. Eine App kann also eine oder mehrere Datenbanken anlegen, um Informationen dort zu speichern. Der Zugriff auf diese Datenbanken erfolgt mit dem, im iOS enthaltenen Service SQLite. Dies ist ein häufig verwendetes Datenbanksystem für mobile Systeme, welches einen Zugriff auf die Datenbanken direkt aus dem Quellcode einer App Abbildung 1: Klassischer Aufbau einer App im iOS. ermöglicht (SQLite-Libary). Hierzu werden die, aus SQL bekannten Abfragen genutzt [6, 7, 8]. Damit die nun erstellte App nicht nur aussieht wie eine klassische iPhone App, sondern dem Nutzer auch die Auswahl der gewohnten Eingabemöglichkeiten zur Verfügung steht, müssen die Apps diese Eingaben abfangen. VIII. APPS FÜR DAS IOS Dies passiert so, dass die unterschiedlichen View-Elemente, In den vorherigen Kapiteln wurden grundlegende die Nutzereingaben direkt verarbeiten und weiterleiten Informationen über das Handybetriebssystem iOS gegeben. können an die folgenden Schichten (MVC-Schichtenprinzip Immer wieder war die Rede von den sogenannten Apps. Im wie oben bereits beschrieben). Dies gilt jedoch nur für die Folgenden soll nun eine Standard-App genauer betrachtet sogenannten Touch-Eingaben, die der Nutzer über den und eine Grundstruktur erkannt werden. Touchscreen am Endgerät durchführt. Die verschiedenen Zu Beginn steht eine gewisse Anzahl an Templates zur Sensoren, wie beispielsweise das Schütteln des Gerätes oder Verfügung. Viele Apps werden so nach dem gleichen Muster die Positionsermittlung geschieht nicht direkt auf der View- erstellt und bieten somit auch den klassischen „iPhone- Ebene, sondern wird durch die Controller abgefangen und Look“. Das wohl meist gewählte Template ist hierbei das verarbeitet. Somit können die Apps nun auch Eingaben Window-based-Template. Die GUI einer App wird somit annehmen. von dem Fenster an sich repräsentiert und nehmen die Die restliche Funktionalität entsteht dann im Model und Möglichkeit der direkten Eingabe an. Auch das annehmen Controller (nach MVC). Grob gesagt, enthält die Model- der indirekten Eingabe (bspw. mit Hilfe des Gyroscope)

28 Eben dann die eigentliche Logik der App und die Controller Informationen über den Source-Code ihrer Betriebssysteme steuern diese dann an und benutzen sie. preis. Auch das Fehlen einer Garbage Collection spricht Zur Erstellung und Entwicklung einer App im iOS gibt nicht für ein entwicklerfreundliches System. Dennoch gibt es es viele unterschiedliche Softwarelösungen, die aber für kein anderes Handybetriebssystem mehr Apps als für größtenteils nur für das Apple Betriebssystem MacOS zur iOS. Dies ist nur damit zu erklären, dass Apple in diesem Verfügung stehen. Auch Apple selber stellt ein Developer Bereich der Marktführer ist und sich deshalb sehr schnell Programm zur Verfügung. Des Weiteren ist das emulieren und gut Geld verdienen lässt, mit der App-Programmierung. eines iOS-System durchaus möglich und auch sinnvoll um Denn mittlerweile ist es schon ein Marktnachteil für ein die erstellte App zu testen und zu debuggen. großes Unternehmen, wenn es keine iPhone-App besitzt, die Am Schluss jeder Entwicklung steht das Release der über diese Firma oder deren Produkte informiert, bzw. einen programmierten App. Im speziellen Falle der erstellten iOS- Shop oder Service anbietet. App heißt das, dass die App mit Hilfe des Apple AppStore Ein weiterer Kritikpunkt direkt an dem Unternehmen vertrieben wird. Eine andere Möglichkeit der Verbreitung Apple sind die hohen Preise der Endgeräte. Diese liegen in der eigenen App besteht nicht. einem sehr hohen Segment, obwohl die Leistung häufig nicht Nach dem Hochladen der App in den AppStore dauert es sehr viel höher ist als es bei Vergleichsgeräten der Fall ist. ca. eine Woche, bis die App dann zum Download zur Dies ist allein damit zu erklären, dass es mittlerweile ein Verfügung steht. Apple sichert sich 30% des Erlöses der Statussymbol ist, ein iPhone zu besitzen und dies auch durch App, falls diese Kostenpflichtig ist. Jedoch werden Dinge, Apple so propagiert wird. wie die Vertriebswege und Marketing kostenlos zur Schlussendlich kann man sagen, dass es sich bei dem Verfügung gestellt, z.B. der Speicherplatz und die Handybetriebssystem iOS zwar um ein sehr gut Angebotsseite für die App. funktionierendes und schnelles System handelt, welches dem Abschließend lässt sich festhalten, dass eine App für iOS Nutzer viele Möglichkeiten bietet und welches optimal auf in großem Maße standardisiert ist und gewissen Grundsätzen die Hardware des Endgerätes abgestimmt, jedoch entspricht. Natürlich gibt es gerade im Bereich der grafisch inkompatibel zu Geräten, die nicht aus dem Hause Apple anspruchsvolleren Apps, wie beispielsweise 3D-Spielen stammen, ist. Des Weiteren ist der geschlossene SourceCode andere Templates bzw. komplett andere Vorgehensweisen. und die teure Anschaffung und die damit verbundene Jedoch ist die Standard-App häufig sehr ähnlich strukturiert. Kompatibilität mit anderen Betriebssystemen, häufig ein Eine große Kritik lässt sich an der hohen Beteiligung von Stein im Wege eines App-Programmierers für iOS. Apple an den Apps, die im AppStore verkauft werden, anbringen. So gehen knapp ein Drittel des Erlöses an Apple, die dafür lediglich die Plattform schaffen und keine andere X. REFERENCES Möglichkeit der Distribution zulassen. Die Entwickler sind Diese Arbeit wurde mit Hilfe unterschiedlicher Quellen an dieser Stelle sehr stark gebunden und müssen sich somit erstellt. Da sehr schwierig war, Literatur in diesem Bereich mit Apple als Distributor abfinden. [7] zu finden, sind alle Quellen aus dem Internet entnommen. Insbesondere standen an dieser Stelle die allgemeinen Developer Seiten des Herstellers Apple zur Verfügung. IX. AUSBLICK UND KRITIK In diversen Internetforen im Bereich der iOS- [1] Marktanteile: http://www.squaredenker.com/news/iphone- Entwicklung wird gemutmaßt, dass sich eine revolutionäre marktanteile-ios-unter-smartphone-betriebssystemen-weltweit-die- neue Version des iOS bereits in der Entwicklung befindet. nummer-eins.html#!prettyPhoto, Zugriff 27.01.2013 Der Nachfolger mit dem Namen iOS 7 soll demnach im [2] Nutzung von Smartphones und mobiles Internet: http://www.aquarius.biz/de/2011/10/10/acta-2011mobile- Laufe des Jahres 2013 vorgestellt werden. Wie immer bei internetnutzung-sprunghaft-gestiegen/, Zugriff 27.01.2013 Apple, ist der Termin streng geheim gehalten, um die [3] Opel iPhone-App wird vorgestellt: Präsentation somit medienwirksamer inszenieren zu können. http://www.welt.de/motor/news/article106368554/Schnell- Aber eben gerade auf Grund solcher Medienstrategien und verbunden.html, Zugriff 27.01.2013 ausgeklügelten Werbestrategien hat es Apple mit iPhone und [4] Allgemeine Informationen zum iOS: http://www.apple.com/de/ios/, iPad erst zu richtig großem Erfolg im Bereich der Zugriff 03.01.2013 Smartphones gebracht. So ist es dem einzigartigen und [5] Apple Produktinformationen iPhone 5: revolutionären Design des iPhones und dem, optimal auf das http://www.apple.com/de/iphone/specs.html , Zugriff 03.01.2013 Gerät zugeschnittenen Betriebssystems iOS zu verdanken, [6] Apple Developer Center: https://developer.apple.com/devcenter/ios/, dass man eine Vormachtstellung in diesem Sektor hat. Zugriff 03.01.2013 Jedoch muss man auch Kritik üben an dem [7] Dateiverwaltung im iOS: http://www.iosdevgermany.de/tutorial/sqlite-tutorial-deutsch- Betriebssystem bzw. dem generellen Vorgehen im Bereich datenbanken-auf-dem-iphone/, Zugriff 05.01.2013 der Software-Entwicklung. So gibt Apple keinerlei

29 Smartphone Operating Systems: Maemo

Sebastian Reichel University of Oldenburg Oldenburg, Germany [email protected]

Abstract—This paper is about the Maemo 5 operating system and the only smartphone ever released with it: The Nokia N900. The first part describes how different hardware components of the N900 are connected to the system and which software parts are involved to provide user access. It focuses on low-level interfaces. In the second section parts of Maemo’s system software is described, which is independent of specific hardware components. The focus lays on high-level interfaces. The last part focuses on ideas and technologies of Maemo, which have already been taken over by other projects or may be taken over in the future.

I.INTRODUCTION Maemo is a mobile operating system (OS) originally de- signed for Nokia’s internet tablet series. Initially, the operating system had no phone related features at all. Instead, it was merely an OS used for web browsing via wireless LAN, making notes, etc. The OS itself is based on many popular open source software components. In 2009, Nokia built an internet tablet called N900, which contains hardware for using mobile phone networks and there- fore updated the operating system by adding support for this kind of hardware. Nokia abandoned their platform two years later in favour of Fig. 1. Architecture MeeGo. Since then a group of developers from the community continued supporting Maemo by providing updates. This paper will focus on Maemo 5 (Fremantle) and the Nokia N900, since Fremantle is the only Maemo release The complete user interface (UI) is running on a standard running on a smartphone and the Nokia N900 is the only Xorg server[39] using matchbox[25] as a window manager. device using it. All system software is using the GIMP-Toolkit (GTK+)[13] In the SectionII the underlying software architecture of from the GNOME project[11]. In addition to the default GTK+ Maemo is described. Section III focuses on the Nokia N900’s widgets, Nokia wrote their own set of widgets, which are fitted hardware components including information how they are for usage on mobile devices. This set of widgets is called connected to the system. This section also describes the Hildon[16]. software parts included in the Maemo OS, which use the Other popular open source software used in Maemo is the hardware. Important software delivered as part of Maemo, Telepathy framework[34], which is the Maemo basis for all but not directly controlling hardware components will be Real-Time communication. described in SectionIV. SectionV focuses on the future of Maemo. It contains an outlook on Maemo’s successors and It is using GStreamer[12] for demultiplexing and decod- forks. ing files, and PulseAudio[32] for routing and mixing audio streams. II.ARCHITECTURE Many of the components use the D-Bus[7] for inter-process Fremantle is based on the Linux kernel 2.6.28[22]. The main communication, which is a powerful network based protocol changes to the standard kernel are additional hardware drivers. interchanging XML messages. The core system is based on Debian[8]. In particular, Maemo Figure1 illustrates the key elements used by the Maemo is using Debian’s packaging system dpkg[9] and apt-get[2]. operating system. 30 III.HARDWARE INTERFACE Digital Signal Processor (DSP). This makes the N900 capable This section describes the most important hardware compo- of playing H264 encoded videos with a resolution up to nents of the Nokia N900, how they are connected to the CPU, 1280x720 pixels. and how they are exposed to the system by the Linux kernel. The decoded audio is then passed to PulseAudio [32], which manages many things: A. Flash Memory Mixing multiple audio streams together • The Nokia N900 contains two different kinds of memory Setting up different volume controls • for data storage. It has a 256MB NAND memory chip and a Providing different audio profiles (speaker, earphone, • 32GB embedded MultiMediaCard (eMMC) chip. The NAND headset, ...) memory is much faster than the eMMC memory, but it has Handling audio related events (plugin of speaker etc) • the disadvantage of providing too little space for the operating Routing audio between modem and sound chip • system and the user’s data. Acoustic Echo Cancelling • Nokia implemented a new driver for the Linux kernel, PulseAudio must be able to handle packages with hard which is used by default on the Nokia N900 for the NAND timing constraints: GSM and 3G audio frame size is 20ms. memory. It can only be used on raw flash memory devices The Linux kernel provides access to the audio hardware to resulting in the driver’s name, Unsorted Block Image File the userland on the usual ways via the Advanced Linux System (UBIFS). Sound Architecture (ALSA) [33]. On the hardware side, Texas Maemo’s root filesystem is stored on the NAND memory, Instrument TWL4030 is used. It is connected over multiple with 2GB of the eMMC mounted to /home and /opt being interfaces to the OMAP processor. linked to /home/opt. Most software packages have their data All Video related work goes over the Linux’s Framebuffer stored in /opt, since the remaining space on the NAND is very interface. Newer (released after Maemo) kernels also provide a limited. The remaining eMMC memory is FAT32 formated and Direct Rendering Manager (DRM) interface. The framebuffer mounted to a directory named “MyDocs”, that is located in driver then passes the data to another framework, which is the user’s home directory. called OMAP Display Subsystem (OMAPDSS), which for- This directory contains the user’s private data like music wards the images to either the built in display panel, or an and photos from the camera. When the phone is connected via external display. USB, Maemo provides the option to unmount this directory from the system and export it to the Personal Computer (PC) D. Camera as a mass storage device. The N900 contains two different cameras. One with lower resolution of 1 Megapixel (MP) faces the user and is intended B. Modem for video calls. Another is intended as photo camera and has The modem is produced by Nokia under the codename a 5MP resolution. Rapuyama. The modem has its own 128MB DRAM / 128MB Since the OMAP 3430 provides only a single Camera Serial NOR combo chip running its own firmware [30]. It is con- Interface (CSI), both cameras are connected to a switch, which nected to the OMAP3430 over Synchronous Serial Interface in turn is connected to the CSI. Thus only one camera can be (SSI) [30]. In contrast to other smartphone designs, the used at point in time. audio lines are not directly connected to the sound chip, In the Linux kernel, the Cameras are exposed via the but they are sent over the SSI connection [30]. Also unlike Video4Linux 2 (V4L2) interface. This interface is also used other smartphones, Nokia’s modem does not use standard AT for TV cards, webcams, etc. on desktops. Nokia wrote a commands to communicate with the main processor. Instead, GStreamer plugin for the cameras, so that it can be easily Nokia defined their own binary protocol, called ISI [22]. used by userland software. The linux kernel provides drivers for the SSI connected device. Userspace can access the device via /dev/hsi (it stands E. WLAN for High Speed Interconnect, which is the vendor independent The WLAN chip used in the Nokia N900 is connected via successor of OMAP’s SSI). This file is used to send and Serial Periphal Interface (SPI) [30]. The chip supports WEP receive audio streams. For other communication the kernel and WPA crypto algorithms resulting in less CPU load. The provides another abstraction layer, which is called Phonet. It kernel provides device access via a standard network interface. offers access to the modem via virtual network devices [22]. Maemo is using wpa supplicant in the userspace (the same There is an wireshark protocol analyser [17] available, which daemon is used by the major Linux distributions). On the other had been written by the community, and is based on reverse hand the Graphical User Interface (GUI) is a custom piece of engineered information. software. C. Audio & Video F. Bluetooth Audio and video are handled by GStreamer [12]. Nokia The used Bluetooth chip is a Broadcom BCM2048. It is provided GStreamer plugins, which offload the decoding of connected via one of the OMAP’s serial lines. As a special different video and audio codecs on the OMAP’s C64x+ feature it also contains an FM radio receiver. The chip’s audio 31 data is not routed over the CPU. Instead, the audio lines are Another technique, which is part of the power management directly connected to the TWL4030. The TWL4030 can be is called Dynamic Power Switching (DPS) by Texas Instru- configured to route audio to or from the Bluetooth chip. ments, which is supposed to put hardware, which is currently The Bluetooth part of the chip is handled by the respective not in use into a low power state. For example, a processor subsystem in the Linux kernel and the Bluez daemon in the can be put into a low power state while it is waiting for a userland. This is again exactly the same as in the major Linux DMA transfer to complete [29]. distributions. The last power management realated key element is called The FM receiver part is handled by the V4L2 interface. static leakage management (SLM). In contrast to DPS it does Maemo does not include any software using this feature, but not put a section of the system on a chip (SoC) in a low power there are third party applications available in the repositories. state, but initiates a standby or device-off mode of the whole G. GPS system. All internal states are stored into internal memory (or external memory for device-off) and restored on power up. The Nokia developers connected the GPS to the modem This results in a much faster boot compared to a cold boot using Inter-Integrated Circuit (I2C) and a 4 bit data connection [29]. instead of connecting it directly to the main processor. The used chip is a GPS5030 from Texas Instruments marketed J. Battery Management under the name Navilink 5 [30]. The kernel has no special support for the GPS. It is just a The N900, like many smartphones, does not have an normal ISI message sent to the Phonet network interface. On independent autonomous battery/charging management chip. the userland side, a small custom library, called liblocation Instead, most controlling is done in software components [21] provides access to GPS related information. of the OS. This means, that the phone must be booted for charging correctly! H. Keyboard & Touchscreen For battery management two chips are used. The bq27200 The N900’s keyboard is a simple button matrix connected to is an I2C connected chip, which is used for monitoring the General Purpose Input Output (GPIO) pins of the OMAP pro- smartphone’s Lithium Ion (Li-ion) battery [22], [4]. cessor. There’s no special chip involved. The button mapping There’s another I2C connected chip, called bq24150a. It is is done in the Linux kernel. In contrast to the keyboard, the used for correctly charging the telephone’s battery [3]. Since touchscreen has its own chip called TSC2005. It takes care of charging is done via the N900’s Universal Serial Bus (USB) handling the touchscreen’s matrix and is connected over SPI. port, more chips are involved in charging. In particular the In addition to the SPI interface the touchscreen uses an GPIO isp1707a is important, which detects chargers on the USB port. pin for sending interrupts to the controller when there is a It is needed to verify, that the host system’s USB port is not touch event [22]. damaged by draining too much power from it. The kernel exposes each of the devices as Human Interface In Maemo, battery management is done by a closed source Device (HID). The userspace software receives keyboard and userspace daemon, which has been named Battery manage- cursor events from the kernel, which is exactly the same as on ment entity (BME) by Nokia. According to some Nokia normal computers. The X-Server has custom support for the developers, BME is kept closed source, because it is using Keyboard to support the special keyboard layout using custom high efficient charging algorithms, which are patented. Apart key combinations [22], [1]. from that Nokia fears, that changing the code may result in I. Power Management exploding batteries [5]. Since then multiple hackers have been working on open- Power management is an important topic in the mobile source drivers for the Linux kernel. The recent mainline kernel phone sector. On the one hand, users want a phone, which has contains drivers for the single chips, but does not yet contain very short response times, but on the other hand, the phone’s a master driver controlling them. battery should last as long as possible. For this, similar to PC systems, the phone’s CPU frequency is dynamically clocked. When the phone is plugged into a USB port or connected Linux uses the same framework (cpufreq) on PCs and mobile to a USB charger, it automatically turns on and boots into phones. But on smartphones, one is also able to do dynamic a minimal system, which runs the BME daemon described voltage and frequency scaling (DVFS) on slave devices. A above. This is needed, because the chips cannot charge the new framework has been added to the Linux kernel (devfreq) battery safely without being monitored by software. to support this [14]. This framework would support the N900 K. Universal Serial Bus hardware, but it is not part of Maemo. Maemo is using the OMAP’s SmartReflex system on the As mentioned in the battery management section, multiple N900, though. This technique, which is called adaptive voltage chips are involved in handling the USB port. The main USB scaling (AVS) by the kernel developers adapts the voltage of part is done by the OMAP itself. It contains an Intelectual different chip parts depending on static factors (chip manufac- Property (IP) core from Mentorgrafix called MUSBMHDRC- turing process) and dynamic factors (temperature depending core, which is supported by the Linux kernel. The physical performance) [20]. layer is connected to the isp1707a. 32 The TWL4030 is also connected to the USB port, to wakeup A. Booting Software the system if USB power is attached to the port. The reasons Maemo is using Ubuntu’s upstart service for booting the for this are described in the previous battery management system [37]. In contrast to the default SysVinit of unix section. systems, it has the advantage of including dependency infor- The last chip involved is the bq24150a battery charging mation between system services. Thus it can start different chip. It can not only be used as battery charger, but also in system services parallel instead of starting them sequentially the reverse way to give power to the USB plug [3]. like the default SysVinit. The result is a fast booting system. By default, Maemo only supports using the N900 as USB During the early boot phase, some script from Nokia read slave device, which means it can only be connected to a out flags given to the kernel from the bootloader, which in computer, but not to USB periphery. When the phone is turn reads them from the OMAP chip. This flags contain the connected, Maemo offers the user to export the smartphone’s information why the system has been booted (e.g. because of memory as a flash drive or to connect the phone as USB an USB plug event). network device. When the system is connected to a USB power source while Some hackers from the community added USB host support it is turned off, it automatically wakes up and boots. The script later, which is available as a third party software for Maemo. described in the previous section does not boot the system into Using their kernel, one can directly connect to and use USB the normal state. Instead it boots a minimal system, which only devices like pen drives or keyboards with the telephone. charges the battery. When the users tries to start the system L. Other Hardware using the power button, it reboots into the normal mode. Also connected is a distance sensor giving boolean outputs via a GPIO pin. Maemo’s kernel exports it as a virtual file. B. Browser Unlike the IR diode, the distance sensor is used by default Maemo 5 is shipped with a browser called MicroB [26], software: The phone application locks the screen, one the which has been developed specifically for this operating sys- proximity sensor senses anything, so that no UI elements are tem. It is based on the previously described Hildon widgets accidently activated by the user’s face during calls. and uses Mozilla’s Gecko engine. In contrast to other mobile The N900 contains another sensor used by the default operating systems, Adobe’s Flash plugin is not only available, software. It is a brightness sensor, called TSL2563, which is but is bundled together with the browser. connected via I2C. The default Maemo software stack uses it to auto-adjust the display brightness relative to the user’s C. Mailer settings. While these things are also found on many other phones, Nokia also wrote their own E-Mail client, which is called Nokia built some hardware components into the N900, which Modest and is based on the tinymail framework [27]. It is a are unusul for smartphones. lightweight mail client supporting only basic features. Push The telephone contains an infrared (IR) diode, which is mail is supported, but only when using Nokia’s mail server. simply connected to an GPIO of the processor. Maemo’s kernel contains a driver for this LED, but there is no default D. Media Player installed software, that makes use of it. In the repositories, Maemo’s media player supports playing music and movies there is a third party software available, which uses the LED from local storage (ca. 30 GB on the N900) or micro Secure for controlling TVs, though [22]. Digital (µSD) card. It also supports playing audio streams In addition to the FM receiver contained in the Bluetooth from the web (Internet Radio). There is no support for the chip, Nokia also built in an FM transmitter called Si4713. It FM receiver integrated in the bluetooth chip, but it can be is connected via I2C and exported via the V4L2 API by the used for playing media provided by Universal Plug and Play Maemo kernel. The default media player shipped by Maemo Audio Video (UPnP AV). supports this piece of hardware, so that music can be streamed The media player has integrated support for enabling the to a nearby FM receiver (for example a car radio) [22]. N900’s FM transmitter to send audio as FM stream to a radio The 3.5mm jack socket can be used not only for headphones next to it. The player also supports output over the N900’s TV and headsets, but also for streaming PAL or NTSC videos. The out cable, so that videos can be watched on all television sets default software automatically mirrors the phone’s display to having standard composite connectors. the external connected TV. This feature can be used out of the box with the media player for watching videos on TV using E. Maps the N900 as media player. Maemo 5 is shipped together with Ovi Maps. Starting the IV. SYSTEM SOFTWARE application automatically enables the GPS chip and downloads This section describes important software, which is shipped the needed map data from Nokia’s servers. with the operating system, but independent of specific hard- It has integrated support for pedestrian and car routing, but ware components. it does no voice announcements. 33 F. Real-Time Communication Usage of QT instead of the GTK+ based Hildon frame- • One of the features first found in Maemo is the handling of work. Nokia had bought Trolltech (the company behind Real-Time communication. Maemo 5 is shipped with Telepa- QT) previously. Usage of a RPM instead of APT based package manager. thy as system service for handling all Real-Time communica- • Completly redesigned user interface. tion. Telepathy can be extended by plugins to support more • Operating Systems variants for non smartphone hardware protocols. • The N900 is delivered with different plugins installed by like tablets or in-vehicle systems. default, which support voice and text messaging as well as MeeGo’s collapsed only one year after its first release, after video chats. Some of the plugins also support conference calls Nokia has changed their strategy in February 2011. At the using the following protocols: beginning of 2012, a new phone operating system was created, which is based on MeeGo: Tizen. Skype • In contrast to MeeGo, Tizen makes heavy use of the WebKit Session Initiation Protocol (SIP) • engine, and most applications are simply based on HTML5. Extensible Messaging and Presence Protocol (XMPP) • Native applications are supposed to use the Enlightenment Support for normal phone calls and Short Message Service Foundation Libraries (EFL), but Qt and GTK+ applications are (SMS) is also provided by telepathy plugins. also supported. Tizen is supported by the Linux Foundation, Other plugins available from the Maemo repository include Samsung, and Intel [35]. support for Microsoft’s MSN service and AOL’s ICQ service Another operating system related to Maemo is called Mer. as well as other instant messaging protocols used around the It has been started with the aim to provide a completly free world. alternative of Maemo for the Nokia N800 and N810 internet This results in a single user interface used independent of tablets. When Maemo 5 was released for the N900, they added the protocol used. The dialer supports changing the call type. another goal: Porting as much of it to the N8x0 devices as possible. V. FUTURE When MeeGo was released, Mer’s new goal was to build As mentioned in the introduction, Maemo’s development MeeGo for the N8x0 devices. The Mer project announces its has been discontinued. But this does not mean that its software plan to continue developing Mer based on MeeGo, after the components are no longer being developed. As described in MeeGo development has been stopped in favour of Tizen. This the previous sections, most software components are common transformed the project effectivly into MeeGo 2.0 [28]. open source projects (e.g. Xorg). Obviously the Linux kernel is still being worked on. Many The concept of providing access to GSM features (SMS, of the device drivers written by Nokia have been merged into phone) via Telepathy has been reimplemented as an open the mainline kernel. One example for a driver written for source project by Nokia and Intel. This project has been called Maemo, which got very popular and is activly being worked oFono and telepathy-ring, and is used for example by MeeGo. on, is UBIFS. The least recently released stable kernel (3.7) Most parts of the User Interface are no longer actively contains a huge changeset adding fastmap support [38]. being worked on, since Meego used Qt based Software in Some problems and disturbances, which were noticed by favour of the GTK+ based Hildon Desktop Environment. Thus, existing code of Maemo and other Linux based smartphones development on Hildon Desktop, Application Manager and are now being worked on. One of the big disadvantages of Control Panel is mostly stalled. the ARM platform is that many devices are connected via It needs to be mentioned though, that there is a small group buses, that do not support slave device auto detection and of developers, who still write software updates for Maemo as identification. Thus, the kernel has board specific source code used to be on the Nokia N900. They call their work Maemo for each device it is supporting. For example, the current Community Seamless Software Updates (CSSU). The CSSU Linux kernel contains almost 1500 lines of source code in repository contains Hildon updates for supporting portrait “arch/arm/mach-omap2/” to describe the Nokia N900. This is mode of the desktop and many applications. obviously a problem if many devices should be supported, The CSSU repository also contains rewrites of closed source because the kernel size increases very fast. Maemo software, which adds features missing in the closed The Linux kernel developer’s solution to this problem is source counterpart. The most famous example is the open called Flattened Device Tree (FDT). The idea of FDT is media player, which has added portrait support and a car mode. describing the hardware connections in a configuration file, Another rewritten piece of closed software is the camera which is given to the running kernel by the bootloader starting application. The opensource version has added support for the kernel. One of the first things the kernel does after being keyboard bindings, manual white balance setup, timer based loaded is parsing the FDT file to get information about the capturing, and focus distance information giving [6]. connected devices. As mentioned in the introduction Maemo development has Another problem identified in the ARM kernel is missing been stopped by Nokia in favour of MeeGo. MeeGo is a support for using the same kernel image on different ARM combination of Nokia’s Maemo and Intel’s Moblin platform. platforms. For example, one has to build different kernels for The main differences between Maemo and Meego are: an NVIDIA Tegra based platform and the Texas Instruments 34 based OMAP platform. The kernel developers are currently VII.CONCLUSION putting effort into supporting kernel images running on multi- Maemo is an operating system, which brought new ideas ple platforms. One of the key features needed for this is called and concepts into the market of mobile operating systems. Common Clock Framework. It tries to unify the APIs used on Even though the Maemo is considered as being dead since different ARM platforms for managing system clocks [10]. Nokia dropped support for it, the community keeps it alive. Other improvements are based on the ARM hardware plat- Multiple forks and successors came after MeeGo, but none form itself. One of the recent changes is called big.LITTLE, gained as much popularity as Android, iOS, or even Windows which combines high speed ARM cores with low power cores on mobile devices. This is not very surprising when taking in a single chip. The operating system is supposed to enable into account that, for most of these systems, there exists only the high speed cores when high performance is needed and a single smartphone being shipped with it. From the developers the low power ones when the system is idle. The Linux kernel perspective, it is not worth to port or write their application developers are still working on proper support for asymmetric for an operating system running only on a single phone, and multiprocessing. The problem here is not the how to switch most users are not interested to buy phones or use operating the cores, which can already be done, but the question when systems without a big pool of applications. the switching should be done [31]. Even though the average mainstream users are not interested The next important update is the new ARMv8 plat- in these operating systems, there are still some marginalized form. ARMv8 brings a completly new instruction set called groups using them. AArch64, which is 64-bit based, while still supporting the old ARMv7 instruction set. Support for the new instruction set ACKNOWLEDGMENT has already been implemented by kernel developers hired by Thanks to all developers from Nokia, Texas Instruments and ARM Ltd. [24]. the community for keeping the system alive by mainlining As mentioned in Subsection III-J userspace interaction is the N900 kernel drivers, rewriting closed source software needed for charging the Li-Ion battery of some smartphones. parts, and maintaining the different components. Also many This means that the device cannot be suspended while it is thanks to Pali Rohar´ for his efforts in adding N900 support charged. Recently, Samsung added a new charging manager to the U-Boot[36] bootloader and maintaining the Free Fiasco framework, which is supposed to do the needed polling. It Firmware Flasher (0xFFFF) for the N900. also supports charging while being suspended. For this, it REFERENCES sets a timer wakeup interrupt for the desired polling time. When the device wakes up, the charger manager checks if it [1] file on device: /usr/share/X11/xkb/symbols/nokia vndr/rx- is responsible for the wakeup, handles it, and sends the device 51. [2] apt-get. URL: http : / / man . he . net / ?topic = apt - get back into suspend before it has completly woken up [15]. \ A feature supported by the Nokia N900 hardware, but §ion=8. not by the Maemo kernel, has been added to the mainline [3] bq24150a. URL: http://www.ti.com/product/bq24150a. kernel since then: hardware crypto acceleration. The OMAP [4] bq27200. URL: http://www.ti.com/product/bq27200. processors have a crypto acceleration unit called M-Shield, [5] Closed Maemo Software. URL: http : / / wiki . maemo . which accelerates the Data Encryption Standard (DES), Triple org / Why the closed packages # Specific reasons for DES, Advanced Encrytion Standard (AES), RSA, and DSA. packages. It also supports acceleration of SHA-1 and MD5. Moreover it [6] CSSU. URL: http://wiki.maemo.org/Community SSU. includes a random number generator [18, 19]. [7] DBus. URL: http://dbus.freedesktop.org. [8] Debian. URL: http://www.debian.org/. [9] dpkg. URL: http://man.he.net/?topic=dpkg §ion=1. VI.APPLICATION DEVELOPMENT \ [10] Jake Edge. “A common clock framework”. Dec. 2011. Developing applications for Maemo is not very different URL: https://lwn.net/Articles/472998/. from developing them for normal Linux computers. Many [11] Gnome. URL: http://www.gnome.org. different programming languages are available for the system. [12] GStreamer. URL: http://gstreamer.freedesktop.org. Most system parts are implemented in C and some UI elements [13] GTK. URL: http://www.gtk.org. are implemented in Python. There is an SDK, which contains [14] MyungJoo Ham. “Devfreq, DVFS Framework for Non- a cross compiler for the ARM chip used in the Nokia N900. CPU Devices”. Sept. 2011. URL: https : / / lwn . net / For better integration with other parts of the system, it is Articles/460973/. recommended to use the Hildon Widgets [16] and low-level [15] MyungJoo Ham. “Linux Conference Europe 2011: interfaces described before. This is just a recommendation, Charger Manager”. In: Oct. 2012. URL: http://elinux. though. It is also possible to write applications using Qt or org/images/c/c6/Elce11 ham.pdf. EFL. There toolkits just don’t use Maemo’s UI theme out of [16] Hildon. URL: http : / / maemo . org / api refs / 5 . 0 / 5 . 0 - the box. final/hildon. Marc-Hendic Luehr’s paper [23] presents more about this [17] ISI Wireshark-Plugin. URL: http : / / sre . ring0 . de / isi - topic. wireshark-plugin. 35 [18] Dmitry Kasatkin. “omap-aes: OMAP2/3 AES HW ac- celerator driver”. Aug. 2010. URL: http://article.gmane. org/gmane.linux.kernel.cryptoapi/4656. [19] Dmitry Kasatkin. “omap-sham: OMAP SHA1/MD5 driver”. Apr. 2010. URL: http : / / article . gmane . org / gmane.linux.kernel.cryptoapi/4223. [20] J Keerthy. “PM: Create the AVS(Adaptive Voltage Scaling)”. Apr. 2012. URL: https://lkml.org/lkml/2012/ 4/26/258. [21] liblocation. URL: http://maemo.org/api refs/5.0/5.0- final/liblocation/. [22] Linux Kernel. URL: http://kernel.org/. [23] Marc-Hendic Luehr. Maemo - Special Applications and Programming. [24] Catalin Marinas. “AArch64 Linux kernel port”. Aug. 2012. URL: https://lwn.net/Articles/511242/. [25] Matchbox. URL: https://matchbox-project.org. [26] MicroB. URL: http://browser.garage.maemo.org. [27] Modest. URL: http://modest.garage.maemo.org. [28] Carsten Munk. “MeeGo Reconstructed - a plan of action and direction for MeeGo”. Oct. 2011. URL: http : / / lists.meego.com/pipermail/meego-dev/2011-October/ 484215.html. [29] Arthur Musah and Andy Dykstra. Dynamic power management techniques for multimedia processors. July 2008. URL: http : / / www . eetimes . com / design / power-management-design/4012243/Dynamic-power- management-techniques-for-multimedia-processors. [30] Nokia N900 RX-51 Schematics. 2.0. Nokia. Sept. 2009. [31] Nicolas Pitre. “Linux support for ARM big.LITTLE”. Feb. 2012. URL: https://lwn.net/Articles/481055/. [32] Pulse Audio. URL: http://www.pulseaudio.org. [33] Jyri Sarha. “Pracitcal Experiences from Using Pulseau- dio in Embedded Handheld Devices”. In: Sept. 2009. URL: http://linuxplumbersconf.org/2009/slides/Jyri- Sarha-audio miniconf slides.pdf. [34] Telepathy. URL: http://telepathy.freedesktop.org. [35] Tizen. URL: https://www.tizen.org. [36] U-Boot. URL: http://www.denx.de/wiki/U-Boot. [37] Upstart. URL: http://upstart.ubuntu.com. [38] Richard Weinberger. “UBI: Fastmap request for inclu- sion”. Sept. 2012. URL: https : / / lwn . net / Articles / 517422/. [39] X.org. URL: http://www.x.org/.

36 Maemo - Special Applications and Programming

Marc-Hendric Luhr¨ Email: [email protected] Carl-von-Ossietzky Universitat¨ Oldenburg Seminar Handy Betriebssysteme (WS2012/13)

Abstract—Having a full open source system for mobile devices of applications are choosen to take a closer look to. These are offers some interesting advantages. It supports full customization popular or in my opinion useful applications. They can either of the system and the freedom to write new applications for be installed on the smartphone from a software repository or various purposes. Unlike IOS and Android, Maemo grants full access to the system and to its source code. by manual placing it in the file system. Also, the package tools This paper describes special applications for Maemo which APT and dpkg can be used. are ready to use. Some special applications are already installed The second part of this paper is about developing new on the system, other applications must be installed by the applications. Therefore, it is neccessary get a more detailed user. Also, the writing of programs is described. The huge amount of different sensors and actors opens new perspectives overview of the graphical environment and the system in- for better interaction and more efficient work with the mobile terfaces. A practical part contains information about the de- device. Nevertheless, writing applications requires knowledge velopment kit and a possible way to set up a development about system interfaces. On the one hand the programming environment. An example application is written, compiled and language can be choosen by the programmer according to his ran in the development environment. personal skills but on the other hand there are recommendations and already implemented interfaces for specific programming The hardware used for practical testing is a Nokia N900 languages. These are described as well. with Maemo Fremantle. It is shown in Figure 1. The N900 contains of sensors which all needs to be accessed over an I.INTRODUCTION interface. Maemo is an operation system for mobile devices developed by Nokia [1]. The first release was in November 2005. The current version is Meamo 5 with the codename Fremantle. The last official update was in October 2011. Since this time, Nokia stopped the development of Meamo and left it to the community. Nokia merged Meamo with Moblin to MeeGo whose development Nokia also has discontinued. Maemo is built on Debian Linux using a customized kernel, the Gnome Desktop environment and free software. The source code of Maemo itself is freely available and can run on nearly every smartphone or tablet pc with matching minimum requirements. The packages are build for the ARM plattform, so the smartphone should also have an ARM processor but the x86 architecture is also supported. Nokia developed Maemo for internet tablet pcs which have similar specifications to the Nokia N-series [2]. However the Nokia N900 is the only mobile device released for Maemo. The main advantage of an open source operation system on smartphones is that users can install and build software as they Fig. 1. The test hardware Nokia N900 [3] want without making changes in the core system. It is possible to install a terminal emulator from the official repositories and get direct access to the system. In this case users have a command line interface with root permissions. That allows II.SOFTWARE SOURCES full access to all files in the filesystem, even the kernel. Maemo is still in development by strong and active com- Most applications for Meamo are free software, available munity. The amount of available applications is huge and the also as source code. Because it based on Debian, it also uses community has created a lot packages for it. Also the system .deb package files to install applications. They are available interfaces in Maemo are open-source software. through different repositories. An manual installation is also The first part of this paper focuses on special applications possible using APT in a terminal emulator. The recommended for Maemo. Also, possible alternatives are shown. A couple way is to install application using a repository. 37 A. Official Repository with contacts. fMobi is a more useful application to connect This repository [4] contains the officially supported appli- to facebook from the Ovi Store with costs around e2. cations, system libraries, and their dependecies. For a basic An application can easily be published in the Ovi Store installation, “this is all a user needs” for the normal use of the using a Nokia account. On the Nokia publisher website [9] are mobile device. Unfortunately, the last update to this repository guides available with instructions and information in several was in 2011! languages. All playments will be done by Nokia: they charge you on a credit card or phone bill. Having a sim card installed B. Community Repositories in the device is a requirement. This restricts the use of Ovi The major community repository [5] is the extra repos- Store applications on internet tablets. In-App payments also itory. A huge amount of packages is available there. The have to be done via Nokia. Therefore, a payment API is applications are mostly stable and tested. Nokia provides the provided. According to the Finance and Payout FAQ [10], server capacities for the maemo.org community. Fresh build Nokia will keep 30% of all payments which is exactly the same packages and untested applications are available in the extra- amount that Apple keeps for applications in their App Store. testing repository. Installing applications from this repository The pricing model is quite simple: there are 16 pricing levels. can be risky. Some packages may install large files in the root The prince for each level varies per country. In Germany, it partition instead of the larger partition. If the root partition has ranges from free to e 99.99 [11]. no empty space the system will not work properly anymore. Maemo is not build to protect bought applications from These applications also may not follow power-saving rules getting copied. The applications are also installed as a debian shorting the battery life-time. But these risks are reversible package. Thus, an application could be copied to other smart- and should not harm the system: the malfunctioning package phones which is not legally allowed but possible. Applications can still be uninstalled. with In-App payments can have their own technique to check Since its very easy to set up a repository server, there are if someone bought it, by example a license server. more servers available which distribute applications. Most of After these example applications from Ovi Store special ap- them provide very special applications (and their updates). plications will be shown. Unlike the shown applications from Setting up an own server can be considered for the distribution Ovi Store these special applications brings more functionalities of an applications if an application should not be available to that are not very common on a smartphone. the whole community. III.SPECIAL APPLICATIONS Unlike the repositories where the applications are mostly open-source, commercial applications can be bought and in- The applications described in this section are normally stalled in the Ovi Store. After the description of the Ovi Store not installed in a default configuration. Some of them have and the pricing strategy, a few example programs will be not been stable by the time of writing. Most applications shown. are available through the official repository or through a community repository. The following applications are choosen C. Ovi Store by its popularity. The first two are location-based applications, The Ovi Store [6] has recently been renamed to Nokia the second two are office applications. After that the media Store offers content for Symbian, MeeGo, and Maemo. The player will be shown. applications are commercial but there are also applications which are free to use. Its the equivalent to the Apple App A. HereAndNow Store [7] or Google Play Store [8] but with a fewer number of HereAndNow is the Nokia equivalent to Apples AroundMe apps. Since Maemo is not under Nokia’s development anymore and shows information and places near to the user’s current and is installed only on a small number of smartphones, most location. In contrast to AroundMe and other applications with proprietary popular applications are not build for Maemo. a similar idea, the HereAndNow version for Maemo shows Most of the free applications in the Ovi Store are games only weather data and restaurants. The list of restaurants is and small utilitiy programs but also wallpapers, ringtones and quite short: in a test run in the center of Oldenburg, only themes. two restaurants have shown up, but in fact there are a lot The utility category offers the most interesting applications. more. Other location-based serivces have more categories to On other mobile operation systems these applications are locate, HereAndNow is not ready for productive use jet. The features of the core system. For Maemo they have to be development needs to be continued. installed. Also a normal users would miss these applications. Stopwatch and Egg timer touch are two examples for these B. Maps applications. They are timing applications. Maemo only has an The default application for Maps from Ovi Store is pre- alarm clock. Another one is U-done a simple To-Do manager. installed on the N900 but not included in Maemo. It uses Connecting to a Facebook account in Maemo is a problem. the NAVTEQ [12]. maps which are used in many navigation After the connection has been successfully established, all systems. The current position can be located by the GPS facebook contacts will be loaded into the address book. The device. It works like a navigation system but without voice. It address book has no grouping option and is therefore flooded has a special drive mode which is automatically recommended 38 if a route longer then 50km is selected. But away from portrait mode, has a playlist management, an equalizer and navigation, the application can also be used as an ordinary more audio codecs. Figure 3 shows the playback screen. It map browser. is written in C++ using the Qt library and can be controlled OpenStreetMap [13] is also a map provider. The maps are through a DBus interface. It supports bluetooth headsets and available through a selection of applications [14]. For Google can stop when the headset or hearphone is unplugged but does Maps, there is only a web-based application available [15]. not start when it is plugged in again. Also, an automatic stop It is a well-known issue that the Nokia locating server is timer in included. The player is optimized for music. It cannot extremly slow [16]. Using the Nokia server it takes about 5 play videos. The player can be installed through the extra- minutes to locate the current position. The simplest solution testing repository. is to use another location server, e.g. from Google [17]. C. Docs To Go Docs to Go is installed as a 30-day trial from Dataviz [18]. A full license can be purchased for 29.99$. It can open and edit Microsoft Word, Excel and Powerpoint documents. The developers promises that the original formatting will never be lost. The view-only version is free of charge to use but with a notice on every use of the applocation to buy full version. D. FreOffice FreOffice is, like Docs to Go, an application to open and edit office documents powered by KOffice. In contrast to Docs to Go FreOffice is an open-source application. FreOffice is available through the extra-devel repositoy, the low-level repository under extra-testing. This means, the application is not even in the testing phase and might be unstable. It is recommended to not use it in a production context. The last update happend in December 2011 which means it is propably not under active development anymore. E. Media Player The pre-installed media player can play music, videos and Fig. 3. SomePlayer playback screen [19] internet radio Since the Nokia N900 has a large storage capacity, the media player is very important. Figure 2 shows the main menu of the media player. It can be accessed by F. Fremantle Stars a Qt Mobility API VI-B. It is very basic and works only Some community projects are supported by Nokia. They are in landscape mode. There are no settings and nothing to called “Fremantle Stars”. They should be ready-to-use by the customize. time Fremantle was released. Some of them are and some did not finished then. There are eight applications on the list [20]: eCoach - is an outdoor activity recording and managing • application. It records the track, speed, distance and some more values. It can be installed through the extra repository. FBReader - is an E-book reader for many plattforms. It • is not plattform-independent and custom built for each plattform separately. The Maemo 5.0 version is stable and can be installed through a repository. The supported formats are FB2, plain text, html, rtf, chm and plucker. Though, EPub and PDF are not supported. liqbase - is a drawing application. The user interface is • optimized for touchpad use. It is also available through the extra repository. Fig. 2. Maemo Media Player Mauku - is a application. By the time of • writing, it is still in the beta phase of development. It In the repositories are many alternatives to the pre-installed supports Twitter, Laconica and Qaiku [21]. It is based on media player. For example, the SomePlayer [19] supports microfeed, a command-line microblogging backend. 39 NumptyPhysics - is a virtual gravity game. The user have The Hildon Desktop is the most visible part in Maemo. • to build ramps, arms and tackles to move two objects It provides the desktop, the taskbar, switching betweem ap- together. plications and contols applets and widgets on the desktop. OMWeather - is a Weather forecast widget for the Hildon Applications for the Hildon Desktop should follow a style • desktop. By the time Maemo Fremantle was released, it guide [23]. The style guide shows describes the minimal used to be the default application for weather forecasting. hardware the application should support. It also shows how It is included in the Maemo core system. a user normally acts with a Maemo based smartphone. There OSM2Go - is an OpenStreetMap [13] editor. Open- are some differences between the described hardware keys and • StreetMap is a collection of maps voluntary maintained the keys that actually exists on a N900. The home key and by a huge amount of people like Wikipedia [22]. This the menu key, do not exist. The other chapters aim at the application can edit these maps. design of applications. The basic components, views, menus, Vagalume - is an application to tune in Last.fm, a portal toolbars, dialogs and input methods are very important for the • for internet radios. usability. A user should be able to interact instnictively with This is just a small selection of applications. There are the application just like applications he/she already knows. more applications which can be used alternatively to other This makes visual consistence to a major concern. To reach it, applications. But all applications have one common part: they all application should base on the same GUI toolkit or at least all have a graphical user interface (GUI). Because building a compatible one. In case of Hildon and Gnome; the toolkit a seperate user interface for each application increases the used is GTK+. programming time and would propably not have a consistent V. GTK+ AND QT design. Therefore, a Framework is used as a part of Maemo: the Hildon Framework. GTK+ is one of the most popular GUI toolkits. GTK+ GUIs can be developed using a GUI builder like Glade. Alternatively IV. HILDON FRAMEWORK the GUI can be developed manually. It is written in C, but many other popular programming languages have bindings to The Hildon Framework is an application framework for it. Java has java-gnome, Python PyGtk or PyGObject. Also, mobile devices. It is part of Gnome. The user interface is Mono with Gtk# and Ruby with ruby-gtk2 have bindings. optimized for touchscreen devices to interact using fingers or Another very popular toolkit is Qt. In contrast to GTK+, Qt a pen with a mobile device. The Hildon Framework consists is not only a GUI toolkit but has much more functions like of three parts: modules for multimedia, network and database use. The GUIs The Hildon Program Manager provides a user interface can also be created with an GUI builder. Creating the GUI to Debian’s package management tool APT and dpkg. It manually seems to be harder than in GTK+. Since Trolltech, has limited access to the system for protecting a user from the company behind Qt is part of Nokia, [24] the Qt libraries destroying the operation system. Figure 4 shows the categories are also supported. It is written in C++ but has bindings like in which the applications are differentiated. System files and Gtk+ to other languages. core libraries cannot be removed, but updated. A user can gain All these languages are also supported by Maemo [25], full power using aptitude, apt, synaptics, etc. some require to install runtime environments and other depen- decies. On the one, hand programmers can choose a language they like and which is easy to read and to program. In the case of an easy to read and program language, Java or Mono seem to be good options. On the other hand using native libraries and toolkits which are already installed saves storage space in the root partition on the smartphone and also prevents bugs caused by the binding. Considering the last point, C with Gtk+ is the optimal option. It is also the only official programming language for Maemo. All neccessary libraries are already installed on Maemo, the compiler is also integrated into the Software Development Kit (SDK) [26] and the use of Gtk+ is easier than using Qt. The next step is to get more information about the system Fig. 4. Hildon Program Manager interfaces. Applications need to get access to sensors, actors and other applications. The Hildon Control Panel is a powerful tool to set up the system, communcation and personalization. In the control VI.SYSTEM INTERFACES panal, a theme can be selected changing the style of the Since Maemo Fremantle, the system interfaces are provided desktop and all applications. by Qt Mobility 1.2. Nokia uses Qt as common application 40 framework. Qt Mobility is a collection of currently 14 APIs [27]. In some APIs like the Sensor API there are notes for Maemo 5 on the N900 which decribes the use of the API on the N900. A. Sensors The Sensor API gives access to many sensors which can be used to improve the interaction with the smartphone. Most sensors are not frequently used: They are available but pro- gramming applications which detect movement and improve user interactions them take much time. To detect movement the accelerometer and the rotation sensors are important as well as the orientation sensor. The accelerometer returns three values for the acceleration along the three axis. The rotation sensor measures the rotation Fig. 6. Possible orientations (source: [27]) of the smartphone. They three axes also be called roll, pitch and yaw, the same axes like in an airplane control. Figure 5 shows an overview of accelerometer and rotation sensor. This a null value measurement to compensate disturbing influences. sensor is the most important sensor for implementing a gesture For the compass, the sensor is pre-calibrated. detection application. The last sensor is a tab sensor. It can detect a double tab and the tap direction on the three axis. The sensor can also be used to improve the concurrent interaction. The smartphone can be controled by just tabbing it. By example to deny a phone call or to switch to silent mode. It is possible to access the smartphone in the pocket by knocking on it. The sensor also detects the direction of the tap. These are the sensors that can be used by Maemo appli- cations. The camera is also a sensor to get information from next to the smartphone. B. Multimedia and Camera With the multimedia API, applications can have access to the media player, the audio recorder and the camera. The media player class can be used to add files to the playlist, control the volume and other elements from the media player. Audio can be captured and be saved in a raw file. Encoding Fig. 5. Axes of accelerometer and rotation sensor (source: [27]) is not supported and needs to be done by another library. The camera can capture photos or videos. The camera focus In contrast to the rotation sensor which can only detect has different modes to work with. These are automatic focus, active movement, the orientation sensor determines which side continuous focus, infinity focus and a point mode which is of the smartphone is pointing up. The six possible cases are useful for face recognition. The library also controls auto- represented by an enumeration: top, bottom, left side, right exposure and white balance. side, front and back. Four possible orientations are shown in figure 6 It would make sense to rotate the desktop if the sensor C. Connectivity detects that the device is bottom up but is not implemented at Another important API is the connectivity API. It is re- the time of writing. sponsible to manage bluetooth connections and Near Field Another interestion sensor is the proximity sensor. It can Communication (NFC) [28]. detect whether an object is close to the smartphone or not. Bluetooth is a very powerful standard that many devices In the N900, the proximity sensor is placed next to the front support. Having a full Bluetooth stack available in a smart- camera. The distance the sensor detects a close object is not phone extends the possibilities of interaction. An application clearly defined. It is device-specific and varies for different can act by example as a remote control for televisions or blu- models. ray players but can also be controlled by Bluetooth remote The magnetic sensor measures the magnetic field density controls. along the three axes. The compass depends on this sensor but The NFC is used to communicate with other NFC devices only returns the azimuth (the clockwise angle to the south within a range of about 10 cm. For example NFC is used pole of a magnetic field. The sensor can be used in physics for the micropayment service girogo and the Touch&Travel applications. This sensor needs to be calibrated. This is simple system of Deutsche Bahn. 41 D. Contacts, Messaging and Organizer VII.MAEMO SDK Since Maemos integrated contact management is not so The Maemo SDK is basically a sandboxed environment powerful, it can easily be extended by using the Contacts API. based on scatchbox. It supports the x86 and the ARMEL The contacts in Maemo are very detailed. A contact entry plattform. Also, all neccessary tools to build Debian packages has many pre-defined fields, a thumbnail and a global unique are included. Most applications developed in this environment identifier which allows to synchronize a contact with other will have a GUI. Therefore, a GUI testing environment is data stores. Furthermore, a contact can be linked into a one- neccessary. It is possible to install the Hildon Framework (see to-one relationship to another contact. This is a very useful section IV) into the sandbox. This requires an own XServer feature but is not used in the build-in contact application. instance to run it. A little tool called xephyr can create a Another feature of the contact management API is to observe pseudo XServer in a window that can be used to display the a contact. This means a change in a contact causes a signal desktop. which can be used to notify other contact applications. The The simplest solution for all these issues is to setup a contacts can be accessed synchronously and asynchronously. virtual 32-Bit Debian based system. To develop the example Normally programmers should use asynchronous access which application, a virtual Debian Squeeze in installed using Oracle does not block other applications from accessing contacts. But VirtualBox [32]. After the installation of the operation system, the synchronous way can also be used over a manager class. scratchbox can be installed from the package repositories and The messaging API provides an interface to the messages the install scripts are working too. [26] shows a guide how to stored in the smartphone and offers the ability to send mes- install the development environment. sages, either through SMS, MMS, email or instant messageg- An “ World” example can be found on [33]. It runs ing. in the created environment. Figure 7 shows an example ap- This API provides a basic interface to calendar and events. plication based on the hello world example. These steps are In contrast to the contacts, the organizer can only be accessed neccessary to run it in the testing environment: synchronously. #Start the pseudo XServer E. Location Xephyr : 2 host c u r s o r screen 800x480x16 − − − \ Another interesting interface can be used to access GPS d p i 96 ac & − − data. It provides information about satellites in range of the #change the users GID temporary to sbox current position, gives information about a place next to the newgrp sbox current position and the position coordinates themselves. #start the scratchbox /scratchbox/login F. System Information #compile the example gtk h e l l o w o r l d 1. c − This part is used to provide system information. It does not gcc Wall g g t k h e l l o w o r l d 1. c − − − \ have write access to it. The profile information contains data ‘ pkg c o n f i g c f l a g s l i b s g t k + 2.0 ‘ o − −− −− − − about the ringtone volume, the vibration and the voice volume. #start the hildon framework For the battery is the nominal capacity, the remaining capacity af sb init.sh start − − and the current flow available. Also network information is #run example application available. It shows the network type and state, also the IP and run standalone.sh ./gtk h e l l o w o r l d 1 MAC address. − − There are more information which are simply string values Using all these information about the SDK, the system for device, display, screensaver and storage state information. interfaces and the Hildon Framework able to create appli- Unlike these interfaces which are accessible by the Qt Mobility cations using the Hildon API reference [34]. Writing useful APIs the rainbow LED and the vibration only be controlled applications that interact with the hardware requires not just using a DBus [29] interface. the GUI elements but also knowledge of the system interfaces. G. Rainbow LED and Vibration VIII.CONCLUSION The Rainbow LED is a very special feature of the N900. The system interfaces allows to create a lot of very pow- It is placed in the bottom left corner and can adapt its color. erful applications. They can improve the normal use of the Mode Control Entity (MCE) [30] is the program in Meamo smartphone. Also, the data integrity of the data between the that controls the LED. It does not have an API but it can be smartphone and other communication devices like a computer accessed by DBus communication. can be improved. It allows to develop new ways of interaction The Vibration or rumble function can either be used by the with other dynamic devices. Maemo and the hardware on Feedback API from the Qt Mobility collection or by the MCE which it runs on is complex enough to do this, but the over DBus. [31] applications are not developed at the time of writing. Before a new application for Maemo can be developed, On the one hand the system interfaces are very powerful but a development and testing environment needs to be set up. on the other hand very complex. The recommended program- Therefore, the SDK is provided by Nokia but it does not seems ming language is C which is a difficult to read and program to be maintained anymore. for most smartphone developers. There is only a small amount 42 [7] A. Inc.”, “Iphone app store,” 2012, [accessed 01.02.2013]. [Online]. Available: http://www.apple.com/de/iphone/from-the-app-store/ [8] Google, “Google play store,” 2012, [accessed 01.02.2013]. [Online]. Available: https://play.google.com/store?hl=de [9] Nokia, “Publisher guides,” 2012, [accessed 01.02.2013]. [Online]. Available: http://support.publish.nokia.com/?page id=4547 [10] ——, “Finance and payout,” 2012, [accessed 23.01.2013]. [Online]. Available: http://support.publish.nokia.com/?cat=6&topic=57 [11] ——, “Billing matrix,” 2012, [accessed 23.01.2013]. [Online]. Available: https://admin.support.publish.nokia.com/wp-content/uploads/ 2012/09/Billing Matrix Sep6 2012.pdf [12] NAVTEQ, “Navteq maps,” 2012, [accessed 17.01.2013]. [Online]. Available: http://www.navteq.com/deutsch/company.htm [13] OpenStreetMap, “Openstreetmap,” 2012, [accessed 01.02.2013]. [Online]. Available: http://www.openstreetmap.de/ [14] ——, “Software/maemo,” 2012, [accessed 17.01.2013]. [Online]. Available: http://wiki.openstreetmap.org/wiki/Software/Maemo [15] T. Waelti”, “Maemaps,” 2012, [accessed 17.01.2013]. [Online]. Fig. 7. Example application Available: http://tomch.com/maemaps.html [16] T. N. Blog”, “Gps lock taking too long...” 2012, [accessed 01.02.2013]. [Online]. Available: http://thenokiablog.com/2009/12/16/ google-location-server-supl/ of C developers for mobile devices in comparison to java [17] Google, “Location server,” 2012, [accessed 01.02.2013]. [Online]. developers. In comparison to Android or IOS programming Available: supl.gogle.com the developing time is longer and more expensive, because the [18] Dataviz, “Documents to go for maemo,” 2012, [accessed 17.01.2013]. [Online]. Available: http://www.dataviz.com/products/documentstogo/ programmers need have deeper understanding of the system. maemo/ Also, unlike in iOS and Android, the application framework [19] Mustali, “Someplayer – an awesome audio player for the n900,” 2012, is not so much abstracted. [accessed 01.02.2013]. [Online]. Available: http://myn900.wordpress. com/2011/03/28/someplayer-an-awesome-audio-player-for-the-n900/ Without commercial-driven development, Maemo will be [20] M. Commutity”, “Fremantle stars,” 2012, [accessed 11.12.2012]. out-of-date quite near in the future. A real passionate users [Online]. Available: http://wiki.maemo.org/Fremantle Stars could write applications for their own, but it will not fit the [21] Mauku, “Multiple services,” 2012, [accessed 26.01.2013]. [Online]. Available: http://mauku.innologies.com/features/multiple interest of the average user. The average user will have the [22] Wikipedia, “Wikipedia,” 2012, [accessed 01.02.2013]. [Online]. mobile device working without much effort to set up the Available: http://en.wikipedia.org/wiki/Wikipedia system. The Maemo core system does not contain all functions [23] Nokia, “Hildon user interface style guide,” 2012, [accessed 12.01.2013]. [Online]. Available: http://maemo.org/forrest-images/pdf/ users need. Other plattform like Android and IOS have better UI Style Guide Summary 2.0.pdf default applications. There is no need to install applications [24] Golem.de, “Nokia kauft trolltech,” 2012, [accessed 01.02.2013]. to manage their contacts or their organizer. But Maemo may [Online]. Available: http://www.golem.de/0801/57278.html [25] M. Commutity”, “Programming languages,” 2012, [accessed be a good plattform for big companies if they want to have 11.12.2012]. [Online]. Available: http://maemo.org/development/ a full integrated groupware solution also on mobile devices. documentation/programming languages/ They can spend the effort to write applications perfectly for [26] ——, “Maemo sdk,” 2012, [accessed 16.01.2013]. [On- line]. Available: http://wiki.maemo.org/Documentation/Maemo 5 their use. Final SDK Installation Maemo becomes more and more complicated for normal [27] Nokia, “Qt mobility project reference documentation,” 2011, [accessed users since most applications are not under active development 16.01.2013]. [Online]. Available: http://doc.qt.digia.com/qtmobility/ index.html anymore. At the time of writing the maemo.org website has [28] F. M. (Ed.)”, “Adjunct proceedings,” 2008. not been available for several days. Maemo is no product [29] freedesktop.org, “Dbus,” 2012, [accessed 01.02.2013]. [Online]. mass marked, only for passionate users. However, the Maemo Available: http://www.freedesktop.org/wiki/Software/dbus [30] M. Commutity”, “Mode control entity,” 2012, [accessed 01.02.2013]. community seems to become more and more quiet and the next [Online]. Available: http://wiki.maemo.org/Documentation/Maemo year will decide if the Maemo development will be continued 5 Developer Guide/Architecture/System Software#Mode Control or not. Entity .28MCE.29 [31] Nokia, “Using mce interface for vibration activation in maemo 5,” 2008, [accessed 17.01.2013]. [Online]. Avail- REFERENCES able: http://www.developer.nokia.com/Community/Wiki/Using MCE interface for vibration activation in Maemo 5 [1] Nokia, “The maemo platform,” 2012, [accessed 11.12.2012]. [Online]. [32] Oracle, “Virtualbox,” 2012, [accessed 01.02.2013]. [Online]. Available: Available: http://www.developer.nokia.com/Devices/Maemo/ https://www.virtualbox.org/ [2] ——, “Device specification,” 2012, [accessed 01.02.2013]. [33] M. Commutity”, “Hello world application,” 2012, [accessed [Online]. Available: http://www.developer.nokia.com/Devices/Device 16.01.2013]. [Online]. Available: http://wiki.maemo.org/Documentation/ specifications/?filter2=maemo Maemo 5 Developer Guide/Development Environment/Maemo [3] Golem.de, “Neues community-update fur¨ nokia n900,” 2012, [accessed SDK#Writing GUI Hello World 11.12.2012]. [Online]. Available: http://www.golem.de/1109/86319.html [34] ——, “Hildon api,” 2012, [accessed 16.01.2013]. [Online]. Available: [4] Nokia, “Official repository,” 2012, [accessed 01.02.2013]. [Online]. http://maemo.org/api refs/5.0/beta/hildon/index.html Available: http://downloads.maemo.nokia.com [5] M. Commutity”, “Community repository,” 2012, [accessed 01.02.2013]. [Online]. Available: http://repository.maemo.org/ [6] Nokia, “Ovi store,” 2012, [accessed 11.12.2012]. [Online]. Available: http://store.ovi.com/ 43