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