gpe-logo.png

Der kleine Schreibtisch

GPE - G-PDA-Environment

01.06.2003
Das GPE-Projekt möchte eine Desktop-Umgebung für Linux PDAs schaffen. Es richtet sich dabei an Anwender und Entwickler. Dabei liegt besonderes Augenmerk auf Kompatibilität und Konformität mit aktuellen offenen Standards. Wir zeigen, was Anwender davon erwarten können.

Auch wenn Linux auf PDAs mittlerweile nichts Ungewöhnliches mehr ist, ist es dennoch nicht ganz mit dem "normalen" Linux vergleichbar. Die Möglichkeiten, die ein Standard-PC oder Server bieten, hat ein kleiner PDA eben nicht. Der Speicher ist beschränkt, in allen Kategorien wie RAM und Festplatte. Die Anzeige hat nur eine geringe Auflösung, und die Eingabemöglichkeiten sind meist auf wenige Tasten und einen Stift mit Touchscreen reduziert. Es liegt nahe, dass solche Systeme besonders angepasster Software bedürfen.

Das GPE-Projekt [1] setzt sich genau dies zum Ziel, nämlich eine Umgebung zu schaffen, die auf Einschränkungen eines PDAs Rücksicht nimmt und gleichzeitig den Bedürfnissen des Benutzers entgegen kommt. Das Projekt richtet sich dabei gleichermaßen an Anwender und Entwickler: Die Anwender sollen ein Software-System erhalten, das ihren Bedürfnissen entspricht und echten Nutzen bringt. Den Entwicklern soll ein konsistentes System an die Hand gegeben werden, mit dem die Software-Entwicklung so einfach wie möglich ist.

Bottom-Up – Von Grund auf

Bei den Grundlagen von GPE hat man sich für gängige Standards entschieden. Dies erleichtert Entwicklern und Anwendern den Einstieg, da sie bekannte Prinzipien und Funktionalitäten vorfinden. Nach einigen Diskussionen und auch Evaluationen wird als Basis für die grafische Oberfläche X11, genauer gesagt XFree86 [2], eingesetzt. Der "kdrive"- oder auch "TinyX"- X-Server erwies sich als erstaunlich schlank und dennoch leistungsstark.

Durch die intensive Arbeit des XFree86-Teams, insbesondere von Keith Packard und Jim Gettys, wurden der X-Server und die benötigten Bibliotheken von Altlasten befreit und kräftig aufgeräumt. Das Resultat ist ein leistungsfähiger Grafik-Server mit TrueType-Font-Unterstützung, der sehr gut auf Embedded-Systemen eingesetzt werden kann. Mit XFree86 einhergehend wurde natürlich die Netzwerktransparenz der gesamten Oberfläche – praktisch als Dreingabe – mitgenommen. Dies eröffnet völlig neue Möglichkeiten in der Verwendung von PDAs.

Als Toolkit und Widget Set entschied man sich für GTK+ [3]. Seinerzeit noch in der Version 1.2 bot GTK+ einen performanten Ansatz zur Erstellung von X11-Applikationen. Durch die Verbreitung von GTK+, nicht zuletzt durch GIMP und das GNOME-Projekt, ist GTK+ zu einem De-Facto-Standard avanciert. Mittlerweile ist die Umstellung von GTK+ 1.2 aus GTK+ 2.2 erfolgt.

Durch diese Umstellung kamen allerhand neue und wertvolle Funktionen hinzu. Dazu zählt neben deutlich verbesserter Schriftdarstellung (Stichwort Anti-Aliasing) auch wesentlich flexiblerer Schriftsatz. Dies ermöglicht die spätere Anpassung an Sprachräume mit anderer Schriftdarstellung, man denke beispielsweise an Arabisch, Hebräisch oder die diversen asiatischen Sprachen.

Eine weitere wichtige Grundlage ist neben der grafischen Ausgabe die Datenspeicherung. PDAs besitzen zumeist nur vergleichsweise kleine dauerhafte Speicher, darüber hinaus meist als Flash-Speicher. Dieser Speicher kann, im Gegensatz zu Festplatten oder RAM, nur begrenzt oft gelöscht und wiederbeschrieben werden.

Die Applikationen eines PDAs müssen unbedingt darauf Rücksicht nehmen und die Anzahl und Größe der Schreibzugriffe minimieren. Daher verwenden diejenigen GPE-Applikationen, bei denen es wirklich Sinn hat, die relationale Datenbank SQLite [4].

Der Einsatz einer SQL-Datenbank zur Datenspeicherung bringt diverse Vorteile: Im Fall von SQLite erfolgt die Speicherung in einer effizienten B-Tree-Struktur. Dadurch werden unter anderem bei Veränderung von Daten nur kleine Datenmengen in den Speicher geschrieben. Außerdem ist die Verwaltung von Datenbeständen für die Applikationen wesentlich einfacher.

Die SQL-Datenbank übernimmt alle komplexen Operationen; diese müssen nicht in jeder Applikation aufs Neue implementiert werden. Zuguterletzt ermöglicht diese Trennung von Applikationslogik und Datenspeicherung, dass die Datenspeichermethode, hier SQLite, zu einem späteren Zeitpunkt ohne großen Aufwand ausgetauscht werden kann.

Als letzte Grundsatzentscheidung hat man sich entschlossen, das Multi-User-Konzept von Linux auf dem PDA weiter zu führen. Dies führt zu dem anfänglich etwas eigentümlichen, doch später sicherlich geschätzten Login (Abbildung 1).

Abbildung 1: Login unter GPE

Die meisten PDAs werden früher oder später wertvolle private Informationen enthalten. Um diese vor unbefugtem Zugriff zu schützen oder auch einmal gefahrlos einem "Gast" seinen PDA anvertrauen zu können, kann über den Login einfach ein anderer Benutzer angemeldet werden. Jeder Benutzer kann dabei sein eigenes Profil und eigene Einstellungen erstellen, ganz so wie beim großen Linux.

Los geht's!

Nach erfolgreichem Login wird die benutzerspezifische Umgebung gestartet. Wichtigster Bestandteil ist hier der Window Manager Matchbox [5]. Dieser maximiert die Fenster der Applikationen stets auf die volle Bildschirmgröße – fast voll, denn ein Statusbalken am unteren Bildschirmrand sowie eine Kopfzeile werden automatisch frei gehalten (Abbildung 2).

Dieses Verhalten sorgt auch dafür, dass Applikationsfenster nicht größer als der darstellbare Bereich sein können und dürfen. Ein Hin- und Herziehen von Fenstern wird dadurch vermieden, da es ohnehin auf einem PDA wenig Sinn hätte. Neben dem Window Manager werden ein Programm zur Verwaltung des unteren Statusbalkens sowie ein Desktop Manager gestartet.

Abbildung 2: So präsentiert sich der GPE-Desktop

Der Desktop Manager präsentiert dem Benutzer eine geordnete grafische Auswahl der installierten Applikationen und ermöglicht deren Start durch einfaches Anklicken. Um Verwirrung zu vermeiden, können die meisten Programme, ebenfalls vom Desktop Manager gesteuert, nur einmal gestartet werden. Versucht der Benutzer, eine Applikation, die bereits läuft, erneut zu starten, schaltet dieser einfach zu der laufenden Anwendung um.

Diese und weitere Funktionen des Window und Desktop Managers basieren auf offenen und freien Standards des Freedesktop-Projektes [6].

Was geht?

Nach den grundlegenden Funktionen für grafische Oberfläche und Datenspeicherung sowie einem Desktop Manager sind für einen PDA natürlich die typischen Applikationen im Personal Information Management, kurz PIM, wichtig. Für GPE wurden diese vollständig neu entwickelt.

Abbildung 3: Die Kalender-Applikation

Der Kalender erlaubt die Verwaltung von Terminen und kann Termine mit Alarmen verknüpfen (Abbildung 3). Die Alarme verwaltet der Daemon at, ähnlich wie beim großen Linux. Ist ein Alarm-Termin erreicht, wird dies akustisch und optisch signalisiert.

Abbildung 4: Kontaktverwaltung unter GPE

Die Kontakte-Applikation folgt ebenfalls der PDA-typischen Adressverwaltung. Zur Zeit wird an einem intelligenten vCard-Import [7] gearbeitet, über den es möglich wird, ganze Telefon- und Adressbücher aus anderen Geräten wie Mobiltelefonen zu importieren.

Ein paar weitere Applikationen seien nur kurz exemplarisch erwähnt; es werden praktisch täglich mehr. In der Todo-Liste lassen sich die Einträge in Kategorien ordnen (Abbildung 5).

Abbildung 5: Die ToDo-Liste

Figment (Abbildung 6) ist eine praktische Variante der ToDo-Liste mit der Möglichkeit, kurze Notizen in einer Hierarchie anzuordnen und darin zu navigieren. Das ist sehr praktisch, um seine Gedanken zu ordnen.

Abbildung 6: Figment

Mindestens ebenso wichtig wie die Programmierung der Applikationen war die mühsame Erstellung der vielen Konfigurationsprogramme. Da PDAs nicht wirklich über eine Konsole "administriert" werden können, muss also für jede Einstellung eine entsprechende grafische Applikation vorhanden sein. Abbildung 7 zeigt die Auswahl der GPE-Konfigurationsapplikationen.

Abbildung 7: GPE Konfiguration

Synchronisation? Teleport!

Eine der Gretchenfragen bei Linux auf PDAs wird natürlich auch an GPE gestellt: Gibt es eine Synchronisation? Doch seien wir einmal ehrlich: Was erwarten wir von einer Synchronisation zwischen PDA und Desktop wirklich? Ist es tatsächlich die Synchronisation? Das Abgleichen zweier oder noch mehr potentiell unterschiedlicher Datenbestände?

Oder ist es nicht vielmehr die Umgehung der Unzulänglichkeiten heutiger PDAs, nämlich, dass die Dateneingabe auf diesen Geräten selber ein Graus ist und dass man dies lieber an einem PC mit großem Bildschirm und anständiger Tastatur erledigen will?

Synchronisation kann GPE noch nicht bieten. Zu unterschiedlich sind die zur Zeit verfolgten Ansätze, und genauso unmöglich ist es, hier einen De-Facto-Standard zu ermitteln. Doch man kann dem Problem der Dateneingabe recht elegant zu Leibe rücken: Warum nicht einfach die passende PDA-Applikation per Display-Migration auf den großen Desktop holen, dort arbeiten und sie dann wieder zurück auf den PDA schicken?

Mit GPE kein Problem. Das Teleport-Hilfsprogramm schickt eine laufende Applikation vom PDA auf ein beliebiges anderes Display, ganz so, als würde man die Applikation direkt dort starten. Der wesentliche Unterschied ist also, bereits laufende Applikationen migrieren zu können.

Abbildung 8: Teleport schickt ein Programmfenster auf ein PC-Display

Durch die Migrationsunterstützung in GTK 2 wird hier in Zukunft noch viel mehr möglich sein. Der Wechsel des Displays wird nämlich der Applikation mitgeteilt. Wird nun vom PDA zum Desktop gewechselt, steht der Applikation eine Fülle neuer Möglichkeiten zur Verfügung: Der Bildschirm ist größer, es gibt eine richtige Tastatur und eine Maus mit mehr als einem Knopf an Stelle eines Touchscreens, womöglich eine andere Farbtiefe des Displays und vieles mehr.

In Zukunft können die Applikationen auf diese neuen Möglichkeiten automatisch reagieren: Sie stellen größere Menüs mit mehr Funktionen dar, und es sind völlig neue Ansichten der Daten möglich. Die ganze Oberfläche gestaltet sich automatisch neu!

Durch die Verwendung der USB-Schnittstelle als Netzwerkgerät erfolgt dies automatisch beim Anstecken des PDAs an den Desktop. Ja, man könnte ganz automatisch alle auf dem PDA laufenden Applikationen auf den Desktop transportieren und beim Abziehen wieder zurückholen! Dies wäre auch per Wireless-LAN oder Bluetooth möglich.

Die Arbeit an Möglichkeiten zur Synchronisation wird aber auch fortgesetzt, so dass es künftig mehrere Wege geben wird, die Daten in den PDA zu bringen.

Ausblick

Es wird zur Zeit kräftig an der Fertigstellung von Version 1.0 gearbeitet. Aktuelle Versionen von GPE befinden sich bereits in der iPaq-Linux-Distribution "Familiar" [8]. Es zeichnen sich viele Neuerungen für weitere Versionen ab. Die dynamische Konfiguration von Applikationen zur Laufzeit über die so genannten X-Settings [9] wird weiter ausgebaut.

Die Applikationen, die die SQL-Datenbank benutzen, werden auf einen eigenen SQL-Server umgestellt, um mehr Sicherheit zu gewährleisten. Via SQL-Server können Applikationen später einmal über ein Netzwerk auf die Daten des PDAs zugreifen.

Dies eröffnet ganz neue Möglichkeiten: In naher Zukunft übernimmt D-Bus [10] die Interprozesskommunikation zwischen GPE-Applikationen und ermöglicht so eine bessere Verzahnung der Programme; man denke an das typische Beispiel eines Termins mit einer Person aus der Kontaktdatenbank.

Infos

[1] GPE, "G" PDA Environment: http://gpe.handhelds.org

[2] XFree86: http://www.xfree86.org/

[3] GTK+, The GIMP Toolkit: http://www.gtk.org/

[4] SQLite, An Embeddable SQL Database Engine: http://www.sqlite.org/

[5] Matchbox Window-Manager: http://handhelds.org/~mallum/matchbox/

[6] Standards für den Desktop, Freedesktop.org: http://www.freedesktop.org/

[7] vCard und vCalendar Standard: http://www.imc.org/pdi/

[8] Familiar PDA-Linux Distribution: http://familiar.handhelds.org/

[9] X-Settings Standard: http://www.freedesktop.org/standards/xsettings.html

[10] D-Bus Interprozeßkommunikation: http://www.freedesktop.org/software/dbus/

Der Autor

Nils Faerber ist seit Jahren beigeisterter PDA-Benutzer und seit der Ära der Linux PDAs noch begeisterter. Zu erreichen ist er unter mailto:nils@kernelconcepts.de.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Related content

Kommentare