Palm OS - D. Tomuschat - 2002 - Universität Potsdam
Transcrição
Palm OS - D. Tomuschat - 2002 - Universität Potsdam
Universität Potsdam Institut für Informatik Lehrveranstaltung „Allgegenwärtiges Rechnen“ Prof. Dr. Andreas Schwill 21. März 2002 Ausarbeitung Palm OS Tomuschat, Danny [email protected] Inhaltsverzeichnis I Einführung 1.1 Einleitung 1.2 Benutzerinterface II Speicherarchitektur 2.1 Memory Manager 2.2 Database Manager 2.3 Eventverarbeitung III Kommunikation 3.1 3.2 3.3 3.4 Seriell-Schnittstelle Infrarot-Schnittstelle TCP / IP Conduits IV Programmierung 4.1 Programmieren für den Palm 4.2 Der Palm Emulator Literaturverzeichnis 2 I Einführung 1.1 Einleitung Das PalmOS ist ein Singletasking-Betriebssystem, d.h. obwohl sich alle Anwendungen gleichzeitig im Speicher befinden, ist zu jedem Zeitpunkt maximal nur eine davon aktiv. Die Verarbeitung der Eingaben erfolgt ereignisgesteuert, dazu wurde in jedem Programm eine große Ereignisschleife implementiert. Die Kommunikation der Programme untereinander erfolgt über sog. “Action-Codes” oder auch “Launch-Codes”. Für den Programmierer stellt das Betriebssystem nicht nur Routinen zum Aufbau grafischer Benutzeroberflächen bereit, sondern bietet über verschiedene Manager auch zahlreiche Hilfsfunktionen an. Im verlaufe der Weiterentwicklung verbesserte sich das Power-Management, was zu einer erheblich langen Laufzeit eines Palm OS PDA's gegenüber zu Windows CE führt. Ab der Version 3.5 wird Farbe unterstützt, dass ist für Multimediaanwendungen unerlässlich. Integrierte SmartPhones kommunizieren mit dem Palm OS 4.0 und höher, allerdings nur in den USA. Mittlerweile lizenzierte 3Com das Palm OS auch an andere PDA Hersteller, so dass es konkurrenzfähige Produkte wie zum Beispiel von Handspring die Visor Reihe und von Sony den Clie gibt. 1.2 Benutzerinterface Ein Hauptziel bei der Entwicklung von PDA's ist es, möglichst viel Funktionalität auf kleinstem Raum unterzubringen, d.h. der Rechner muss in die Hemdtasche passen, ohne dass der Benutzungskomfort des PDA darunter zu leiden hat. Bei 3COM wurde dieses Problem durch ein drucksensitives Display, eine Zeichensprache und einem Stift gelöst, der Palm ist also der erste PDA, der vollständig auf eine Tastatur verzichtet. Unterhalb des Displays, eingerahmt von vier “Software- Tasten”, befindet sich das Eingabefeld des Palm. Im Gegensatz zu Konkurrenzprodukten lernt der Palm nicht die Handschrift des Benutzers, sondern vielmehr muss der Benutzer die “Sprache” des Palm lernen: Graffiti. Dies hat sowohl Vorteile als auch Nachteile. Die Nachteile ergeben sich daraus, dass der Benutzer zum einen das palm-eigene Alphabet lernen und zum anderen sich in der Schreibweise (auf dem Palm) den Besonderheiten von Graffiti anpassen muss. Diese sind: - Jedes Zeichen muss einzeln eingegeben werden. - Die Eingabe eines Zeichens muss ohne Unterbrechung erfolgen. - Jedes Zeichen besteht aus einer einzigen Eingabelinie. 3 In Abbildung 1.1 sind die Eingabelinien der Buchstaben “a” bis “j” dargestellt; die Eingabe startet jeweils an dem Punkt. Zur Unterstützung kann sich der Benutzer jederzeit die Graffiti-Hilfe oder eine virtuelle Tastatur einblenden lassen. Dem entgegen überstehen die Vorteile: das Eingabe-Alphabet ist leicht erlernbar, da es sich überwiegend an den Großbuchstaben orientiert (s. Abbildung 1.1). Zudem ist durch Abbildung 1.1 Auszug aus dem Eingabe Alphabet die feste Implementierung der Sprache im Betriebssystem der gesamte Zeichenvorrat sofort verfügbar, d.h. es entstehen keine “Anlernphasen” und somit auch kein zusätzlicher Energieverbrauch. Weiterhin ist die Schrifterkennung verlässlich, d.h. Erkennungsprobleme können auf unsaubere Eingaben reduziert werden und hängen nicht von der Interpretation einer eben erst erlernten “Schrift” ab. An dieser Stelle muss noch mal deutlich darauf hingewiesen werden, dass ein PDA – wie auch immer geartet – den PC nicht ersetzen kann. Er kann nur versuchen den Benutzer unterwegs bestmöglich zu unterstützen. Weder Bildschirm noch Stifteingabe lassen ergonomisches Arbeiten über einen längeren Zeitraum zu. Dies kann auch durch die für den Palm verfügbare Tastatur nicht geändert werden. 4 II Speicherarchitektur Applications User Interface Memory System Management Management Comms Microkernel Hardware Abbildung 2.1 Aufbau der Architektur 2. 1 Allgemein Es gibt zwei Arten von Speicher, zum einen den dynamic heap und storage heap. Der dynamic heap ist dem Programmspeicher des Windows CE's vergleichbar. Aus dem dynamic heap wird Speicher für Variablen reserviert. Dem Palm OS 3.x stehen maximal 96kB Speicher zur Verfügung, davon wird 2,5kB für das OS selbst reservier, weitere 3kB werden für den Programmstack benötigt und der TCP / IP Stack benötigt 32kb. Somit verbleiben nur 36kB Speicher für Variablen in einem Programm. Ein sehr sorgsamer Umgang mit dem Speicher bei der Programmierung ist unbedingt erforderlich. Der storage heap dient als eine Art Festplatte, aus dem Programme und Daten geladen werden. Die Größe des storage heap liegt in etwa bei der RAM-Größe, die bei Verkaufsprospekten angegeben werden. Die Größe des Speichers variiert bei heutigen Geräten zwischen 2 bis 16 MB, wobei dieser Wert nochmals durch Speichererweitungskarten erhöht werden kann. Nachfolgend werden so genannte Manager vorgestellt und ihre Aufgaben erläutert. Manager sind API Funktionen denen bestimmte Aufgaben zu teil kommen. 5 2.2 Memory Manager Der Arbeitsspeicher ist ein wesentlicher Bestandteil von Computer jeglicher Art. Um ein wildes Adressen umherrechen für den Programmierer beim Zugriff auf den Speicher zu vermeiden, stellte man die Memory Manager API dem Softwareentwickler zur Verfügung. Der Funktionsumfang erstreckt sich über das reserviert, freigeben, vergrößern und verkleinern der RAM's, sowie sperren des dynamic heap. Weiterhin bietet der Memory Manager schreibgeschützten Zugriff auf den storage heap. Die Defragmentierung des Speichers gehört auch zu seinen Aufgaben. Der Memory Manager ordnet sich unter das Memory Management (siehe Abbildung 2.1) ein. 2.3 Database Manager Für das Palm OS existiert kein traditionelles Dateisystem. Daten und Programme werden in einer Datenbank strukturiert. Jeder Eintrag besteht aus einem Name, Attribute, Versionsnummer und einer eindeutigen Record ID. Einträge sind immer 64kb groß. Jedes dieser Datenfelder besitzt ein Modifikation Flag, welches bei Änderung der Daten gesetzt wird. Der Zugriff auf die Daten erfolgt über eine Querysprache ähnlich SQL. Dieses Konzept wird durch den Database Manager durchgesetzt. Der Database Manager baut auf den Funktionen des Memory Manager auf. 2.4 Eventverarbeitung Das Palm OS löst Events als Reaktion auf bestimmte Geschehnisse aus zum Beispiel beim Empfang von Daten über die Infrarotschnittstelle oder bei Benutzereingaben. Eine Hauptschleife verarbeitet für die Programme die Nachrichten, dabei wird zwischen 3 Arten von Events unterschieden. Benutzereingraben über den Touchscreen, Systemmitteilungen zum Beispiel der Timer Alarm und Programmspezifische Mitteilungen wie Suchmitteilungen werden den zugehörigen Programmen zugewiesen um entsprechend zu reagieren. Da nur ein Programm gleichzeitig laufen kann, wird das entsprechende Programm aus einer Warteschlange aufgeweckt bzw. Schlafen gelegt. Die Eventverarbeitung ist im Systemmanagement anzusiedeln (Siehe Abb. 2.1). 6 III Kommunikation Desktop Link Protocol Packet Assembly / Dissembly Protocol Modem Manager Connection Management Protocol Serial Link Portocol Serial Manager Abbildung 3.1 Architektur der seriellen Schnittstelle 3.1 Seriell-Schnittstelle Der Palm besitzt zwei Hardware-Schnittstellen: eine serielle- und eine IrDA-Schnittstelle. Im PalmOS wird die serielle Schnittstelle durch den Serial Manager verwaltet. Aufbauend auf den Serial Manager Siehe Abbildung 3.1 liegt der Connection Manager, der für den Verbindungsaufbau mit einem anderen Gerät verantwortlich ist. Der Modem Manager leitet einen Wahlvorgang über das integrierte Softmoden ein. Im Serial Link Protocol sind Senden- und Empfangsfunktionen vereinbart, darauf aufbauen liegt das Assembly / Disassembly Protocol das die Daten puffert. Über das Desktop Link Protocol sind die über das OS nutzbar. Um nicht unnötig Strom zu verbrauchen, muss der Serial Manager sehr effektiv mit der Prozessorbeanspruchung umgehen. Dies wurde dadurch erreicht, indem der Empfang interrupt-gesteuert erfolgt und der Sendevorgang über einen Polling-Mechanismus abgewickelt wird. Mit dem Palm III wurde der “New Serial Manager” eingeführt. Im Unterschied zu seinem Vorgänger kann er mehrere serielle Verbindungen (sowohl physikalisch als auch virtuell) gleichzeitig verwalten. Im Wesentlichen bedeutet dies, dass Anwendungen die Möglichkeiten haben eigene Verbindungskanäle auf Port-Ebene zu definieren und diese beim Serial Manager als virtuellen Port (Kanal) zu registrieren. Von der Anwendungsseite betrachtet, dient die serielle Schnittstelle primär zum Datenabgleich mit dem PC (beim Palm V auch zum Aufladen der Akkus). Bei einer konfigurierbaren Datenrate von maximal 115,2 Kbit/s wird der Palm zu diesem Zweck über die Docking-Station an den PC angeschlossen. 7 3.2 Infrarot-Schnittstelle Die in den Palm integrierte Infrarot-Schnittstelle bildet fast den kompletten IrDA-Stack ab Abänderungen wurden lediglich auf höchster Ebene vorgenommen, wo nur das eher selten verwendete IrOBEX als Kommunikations-Protokoll realisiert wurde. IrOBEX ist ein ObjektAustausch-Protokoll, d.h. es kann dazu benutzt werden – wie im Falle des Palms – Visitenkarten, Kalender- Einträge oder ähnliche Objekte zwischen zwei Geräten auszutauschen. Ursprünglich hatte 3COM die InfrarotSchnittstelle nicht für den Datenabgleich mit dem PC vorgesehen. Um dennoch die IrDA-Unterstützung (mit maximal 56 kbit/s) zu aktivieren, musste der Benutzer ein Treiber-Update installieren. Ab PalmOS R3.3 ist die er weiterte IrDA-Unterstützung, bei einer maximalen Datenrate von 115 Kbit/s, standardmäßig integriert. Dazu wurde auf höchster Ebene das Protokoll IrComm implementiert, welches die Simulation einer seriellen Schnittstelle ermöglicht. 3.3 TCP / IP Unter Net Library wurde die TCP / IP und UDP Unterstützung im PalmOS implementiert. Außerdem beherrscht das Betriebssystem auch Unix Socket. Zusammengefasst werden die Protokolle von dem Internet Library Interface. Somit besteht die Möglichkeit über verschiedene Verfahren auf Inhalte der Internets zuzugreifen. Selbstverständlich besteht die Möglichkeit über die vorhandenen Schnittstellen mit anderen Geräten oder dem Computer mit TCP / IP zu kommunizieren. 3.4 Conduits Conduits sind Desktopprogramme die im Hotsync Manager registriert sind. Der Hotsync Manager startet die Conduits, die folgende Aufgaben auszuführen wie das Kopieren von Daten bzw. synchronisieren, Übertragung von Programm zum Palm und Steuerung von Programmen. Outlook kommuniziert über die Conduits mit einem PDA. Hier werden Daten abgeglichen wie Aufgaben, Kontakte, Notizen. Weiterhin generiert der HotSync über die Conduits Logeinträge. Erfolgreiche Vorgänge sowie Fehler werden registriert und können jederzeit vom Anwender eingesehen werden. 8 IV Programmierung 4.1 Programmieren für den Palm Ein Palmprogramm lässt sich in C oder C++ mit dem freiverfügbaren GNU Compiler erstellen. Unter Windows ist der Cygwin-Compiler eine Alternative zum Metrowerk‘s Code Warrior der gleich mit einer kompletten Entwicklungsumgebung samt Debugger und Resource Editor für harte Dollers erhältlich ist. Wer nur einen Compiler zu Verfügung hat, benötigt das Software Development Kit von der Palm Homepage, hier ist zum Beispiel der PalmOS Resource Editor zum Zeichen von Fenster und Menus enthalten. Unter Linux bietet sich KDevelop als IDE an. Selbst Java Entwickler können nach der Installation der MIDP Java Runtime Umgebung selbst geschrieben Applikationen testen. Ebenfalls wird die BASIC-Programmiersprache unterstützt, auch in diesem Fall wird eine zusätzliche Runtime Umgebung auf Palm benötigt. Für das Erstellen von Conduits benötigt der Programmierer das CDK (Conduit Development Kit). Das CDK zum Entwickeln von eigene Datenaustauschprogrammen ist für Windows und Mac frei verfügbar. Für Linux gibt es keine Unterstützung von Palm. 4.2 Der Palm Emulator Kurz ausgedrückt kann der PalmOS Emulator (POSE) alles, was der Palm auch kann. Für das Testen von Programmen im Emulator benötigt man den ROM des Palms (siehe ROM Transferanleitung). Hervorzuheben am Palm Emulator ist die einfache Installationsmöglichkeit von Programmen und das Debugging. 9 Literaturverzeichnis U. Hansmann u.a.: Pervasive computing handbook, Springer 2000 Palm Download Seite für Entwickler http://www.palmos.com/dev/tools/ ROM Tansferanleitung http://www.palm-welt.net/html/palm-tips3.htm 10