Auf PDAs hat sich Linux immer noch nicht so recht durchgesetzt. Zwar läuft der Kernel mittlerweile auf vielen Geräten erfreulich stabil, doch eine Kommandozeile allein macht nicht glücklich. Neben Micro Windows/Nano-X ist auch Qt/Embedded ein interessanter Kandidat, um dem LC-Display Leben einzuhauchen.
Ohne Applikationen bleibt auch der bestausgestattete PDA nur ein schönes Spielzeug für Technikfreaks. Zeitgemäße Anwendungen brauchen jedoch Grafik-Bibliotheken, auf denen sie aufsetzen können. Von den diversen Entwicklungen der letzten Monate hat Qt/Embedded wohl die größte Aufmerksamkeit erregt — zumal in Europa, wo der Anteil der KDE-Anwender deutlich höher zu sein scheint als in den USA.
Qt/Embedded
Bei Qt/Embedded handelt es sich um eine Entwicklung der norwegischen Firma Trolltech, die mit der bekannten Qt-Library die Grundlage für den KDE-Desktop und die zugehörigen Applikationen geschaffen hat. Qt wurde aber nicht nur einfach für die verschiedenen Prozessorarchitekturen der PDAs (zum Beispiel StrongARM oder MIPS) kompiliert, vielmehr hat man sich in Norwegen einige Gedanken darüber gemacht, wie bei weitgehender Kompatibilität ein Optimum an Leistung bei einem Minimum an verwendeten Ressourcen bei einem Embedded System zu erreichen ist.
Architektur
Im Gegensatz zum großen Qt, das auf vielen X11-Libraries basiert, hat Qt/Embedded reichlich abgespeckt. Die Abhängigkeit von X11 und der Xlib bedingt nämlich einen erheblich gesteigerten Speicherbedarf — und Speicher ist auf PDAs meist recht knapp. Deshalb setzt Qt/Embedded direkt auf dem seit langem in Linux vorhandenen Framebuffer-Device auf, es hat also direkten Zugriff auf den Bildspeicher.
Die Größe des so gesparten Speicherplatzes ist schon beachtlich — je nach Prozessorarchitektur sind es 2 bis 4 MByte. Zudem bietet Qt/Embedded die Möglichkeit, nicht benötigte Bestandteile der Library zur Compile-Zeit wegzulassen — damit kommt eine minimale Qt/Embedded-Library auf einer Größe von etwa 0,6 MByte. Im Schnitt ist mit einem Speicherbedarf von 2 bis 3 MByte für die normalerweise verwendeten Features zu rechnen.
Der Verzicht auf X11 bedeutet aber auch, dass sich Qt/Embedded um Dinge wie Window-Management selbst kümmern muss. Da ein eigener Server-Prozess zur Verwaltung von Fenstern und Grafik in den Augen der Trolltech-Entwickler zu aufwändig ist, kann vielmehr jede Applikation durch Aufruf mit dem Kommandozeilenparameter -qws als Server fungieren. Es dürfen nur nicht zwei Applikationen gleichzeitig Server sein, sonst kommt es zu Problemen mit dem Framebuffer-Zugriff — wie entsprechende Experimente für diesen Bericht bewiesen.
Lizenzierung
Qt/Embedded war eine Zeit lang nur unter einer kommerziellen Lizenz verfügbar, die die Entwicklung freier Software behinderte. Kurz nach der SYSTEMS 2000 hat Trolltech aber das Produkt auch in einer GPL-Version herausgegeben, die sich in Umfang und Funktion nicht von der kommerziellen unterscheidet.
Das bedeutet aber auch, dass die mit der freien Variante entwickelten Programme ebenfalls unter GPL stehen. Für viele Autoren freier Software ist das sicherlich kein Problem. Entwickler kommerzieller Applikationen sind jedoch gezwungen, eine Lizenz von Qt/Embedded zu erwerben (die aktuellen Preise sind beim Hersteller zu erfragen). Das ist ein fairer Kompromiss zwischen den unterschiedlichen Interessen.
Der Vorteil von Linux auf Embedded- Systemen und PDAs, komplett ohne Lizenzkosten (auch für in großer Stückzahl vertriebene Geräte) auszukommen, ist so natürlich dahin. Für den Kernel fallen aber selbstverständlich keine Lizenzgebühren an.
Kompatibilität
Einer der großen Vorteile von Qt/Embedded ist es, in großen Teilen zu seinem X11-Pendant kompatibel zu sein. Damit können Autoren von den Erfahrungen bei der Entwicklung von Desktop-Applikationen profitieren und sogar Teile des existierenden Codes einfach weiterverwenden — eine Anpassung an die beschränkten Platzbedingungen auf dem Bildschirm ist natürlich unumgänglich.
Für neue kommerzielle Projekte ist es damit auch einfacher, Entwickler zu finden, die zum Beispiel aus der KDE-Welt kommen und an Embedded-Systemen interessiert sind. Auch das GUI-Entwurfswerkzeug Qt-Designer ist verfügbar: Damit ist die schnelle Erstellung von Software-Prototypen auch für Embedded-Umgebungen möglich.
Palmtop Environment
Qt/Embedded für sich allein betrachtet ist — wie natürlich auch Qt/X11 — lediglich ein Toolkit für Applikationen. Für den Einsatz auf PDAs hat Trolltech deshalb das Qt Palmtop Environment (QPE) entwickelt, das wie Qt/Embedded ebenfalls unter GPL verfügbar ist.

Was das PDA-Herz begehrt: Das Qt Palmtop Environment bietet viel Organizer-Software sowei Spiele und Mutimedia.
Applikationen
QPE stellt die üblichen PDA-Applikationen zur Verfügung, wie sie auch von Palm & Co. bekannt sind — Adressverwaltung, Terminkalender, Texteditor, Taschenrechner und Aufgabenliste sind vorhanden.
Mit der Rechenleistung eines modernen PDA kann man aber noch viel mehr anfangen — außer für Spiele wie Tetris, Minesweeper und Solitaire eignet sich solch ein Gerät mittlerweile auch zum Abspielen von Multimedia-Inhalten wie Audio und Video. So gibt es neben einem MP3-Player auch schon einen Videoplayer für MPEG1-Videos. Vor nicht allzu langer Zeit brauchte man für die Bewältigung solcher Aufgaben einen ausgewachsenen Desktop-Rechner.
Eingabemethoden
Auf kleinen Geräten Information manuell eingeben kann schnell lästig werden. Der Trend bei PDAs geht deshalb zu Geräten ohne Tastatur. Im Industrieeinsatz verbietet sich zudem oftmals die Verwendung einer Tastatur wegen zu hoher Störanfälligkeit in schmutzigen Umgebungen. Daher sind in QPE unterschiedliche Eingabemethoden vorgesehen: neben einer virtuellen Tastatur auch Pickboard und Schrifterkennung.
Das Pickboard ist einigen Lesern bestimmt vom Mobiltelefon vertraut — anstelle der Eingabe einzelner Buchstaben wählt man Buchstaben aus Dreiergruppen aus, wie sie auf den Telefontasten angeordnet sind. Bei älteren Telefonen muss man n-mal auf eine Taste drücken um den n-ten dieser Taste zugeordneten Buchstaben zu erhalten, das ist recht umständlich. Moderne Telefone vergleichen deshalb die möglichen Buchstabenkombinationen mit einem integrierten Wörterbuch — die Taste muss nur einmal betätigten werden.
Diese Methode haben die Trolltech-Entwickler übernommen, wobei die Tasten durch kleine Bereiche auf dem Bildschirm symbolisiert werden. Das spart Platz auf dem Display und Zeit bei der Eingabe. Der Nachteil dieser Methode ist natürlich der sprachabhängige und begrenzte Wortschatz. In der aktuellen QPE ist derzeit nur ein englischsprachiges Wörterbuch vorhanden.
Die Schrifterkennung erinnert an die in Windows CE verwendete Jot-Software. Es werden nur Einzelbuchstaben erkannt, die nacheinander in ein Eingabefeld geschrieben werden müssen. Eine automatische Wortvervollständigung, die ebenfalls auf dem vorhandenen Wörterbuch aufbaut, versucht die Eingabezeit durch Einblenden einer Auswahlliste mit möglichen Fortsetzungen des angefangenen Wortes zu verkürzen. Das macht das Arbeiten einfacher als etwa mit einem Palm-Organizer, da man nicht die teilweise wenig intuitiven Glyphen der dort verwendeten Graffiti-Schrifterkennung lernen muss. Eine richtige Handschrifterkennung — wie sie bei Apples Newton bereits 1997 auf einem 20-MHz-ARM-Prozessor implementierte wurde — bleibt leider immer noch ein Wunschtraum.
Ist Qt/Embedded ein Allheilmittel? Ein Kommentar von Nils Faerber |
|
Trolltech hat mit der GPL-Ausgabe von Qt/Embedded für eine Menge Wirbel gesorgt. Überall werden Stimmen laut, dass nun endlich eine ausgereifte grafische Oberfläche für Embedded-Linux-Applikationen zur Verfügung stünde und man doch nun auch einen ganzen Schwung an Applikationen aus dem KDE Projekt praktisch geschenkt bekäme. Linux- PDAs würden endlich benutzbar und die Applikationsentwicklung wäre dank der Kompatibilität zum normalen Qt erheblich einfacher. Betrachtet man Qt/Embedded allerdings etwas kritischer, werden einige Schwachpunkte deutlich. Zunächst sollte jedem klar sein, dass sich KDE-Applikationen nicht so einfach auf ein Embedded Device wie einen PDA übertragen lassen. Ein heutiger X11-Desktop hat eine Auflösung von mindestens 1024 mal 768 Bildpunkten, ein PDA hingegen nur 320 mal 200 – und selbst das ist schon vergleichsweise viel, der VTech Helio hat beispielsweise nur 160 mal 160. Eine KDE-Applikation auf einen PDA bringen bedeutet also zwangsläufig, das grafische Benutzerinterface komplett neu zu gestalten. Außerdem sind die meisten PDAs nicht mit der gleichen Ausstattung wie eine Workstation gesegnet. Auch hierauf müssen die Applikationen getrimmt und entsprechend abgespeckt werden. Beides zusammen genommen kommt einem kompletten Redesign gleich. Sollte man die Applikation dann nicht lieber gänzlich neu schreiben? Ein weiterer Schwachpunkt ist die derzeitige Architektur von Qt/Embedded. Es ist mehr als nur ein Toolkit für grafische Oberflächen. Es ist Display-Server, I/O-Manager und Toolkit in einem. Das hat zur Folge, dass – wenn eine Qt/Embedded-Applikation läuft – eine Nicht-Qt/Embedded-Anwendung keinen Zugriff auf das Display erhält. Auf alle abhängigen Eingabegeräte wie Touchscreen, Maus und Tastatur natürlich auch nicht. Qt/Embedded kann also zur Zeit nicht mit anderen Toolkits oder grafischen Oberflächen koexistieren. Einmal Qt/Embedded, immer Qt/Embedded. So sieht’s aus. Und nun zum Problem mit der GPL. Qt/Embedded unter der GPL freigeben war meiner Meinung nach vornehmlich eine Marketing-Entscheidung, weniger eine für die Unterstützung freier Software. Grund dafür ist die geschickte Ausnutzung der GPL durch Trolltech. Die GPL ist ein zweischneidiges Schwert. Sie sorgt zwar dafür, dass eine einmal freigegebene geistige Leistung von anderen nicht wieder verschlossen und als deren eigene Leistung verkauft werden kann. Sie hat aber auch zur Folge, dass Modifikationen und abgeleitete Werke ebenfalls unter die GPL fallen. Das bedeutet für den Fall Qt/Embedded aber, dass mit der freien GPL-Version ausschließlich wieder freie Software im Sinne der GPL entwickelt werden kann. Denn es handelt sich um ein Toolkit und jede damit entwickelte Software ist ein abgeleitetes Werk im Sinne der GPL. Nun gut, mag man meinen, das ist doch fein! Das stimmt auch fast, doch leider nur fast. Die GPL strebt eine ideale Welt an, in der jede Information frei ist. Es ist nur noch nicht soweit! Hinzu kommt das kommerzielle Lizenzmodell von Qt/Embedded. Trolltech verkauft zum einen Entwicklerlizenzen pro Entwicklungsarbeitsplatz und verlangt zusätzlich Lizenzgebühren pro vertriebenem Produkt, so genannte Royalties. Stellt man sich nun vor, Trolltech würde das Ziel erreichen und Qt/Embedded als Standard für grafische Oberflächen im Bereich der PDAs durchsetzen, so hätte dies weitreichende Folgen. Entwickler müssten sich dann zwischen der GPL- oder der kommerziellen Version entscheiden. Eine Zwischenlösung gibt es nicht. Es gäbe keine Möglichkeit, den Source-Code eines Programms nicht freizugeben, es aber trotzdem frei zu verteilen. Jede Software ohne Source-Code müsste von dem Vertreiber zwangsläufig verkauft werden, da dieser Royalties an Trolltech für jedes abgegebene Stück zahlen muss. Nun bin ich persönlich sicherlich der Letzte, der Closed-Source-Software propagiert. Doch im Falle von Qt/Embedded sehe ich das Problem, dass viele Programme eigentlich frei verfügbar sein sollten, aber nicht als Source-Code zur Verfügung gestellt werden dürfen, weil sie Informationen enthalten, die beispielsweise unter NDAs stehen. Solche Programme würden erst gar nicht entwickelt und Linux-Benutzer müssten auf viele Applikationen verzichten. Und weil Qt/Embedded kein weiteres Toolkit parallel zulässt, kann eine Applikation dieser Art nicht einmal über Umwege auf einem Qt/Embedded-Linux-System laufen. FazitQt/Embedded zeigt, dass eine ansprechende grafische Oberfläche auch auf Embedded-Linux Geräten möglich ist. Das Lizenzmodell ist jedoch fragwürdig, solange die zugrunde liegende Architektur keine weiteren Toolkits parallel zu Qt/Embedded zulässt oder zumindest die zu zahlenden Royalties pro Stück wegfallen. Wir stehen bei grafischen Oberflächen für Embedded Linux noch ganz am Anfang. Entscheidungen für oder gegen ein bestimmtes Toolkit in einem Projekt können noch den Grundstein für einen De-facto-Standard für grafische Oberflächen setzen. Würde sich das aktuelle Qt/Embedded samt Lizenzmodell durchsetzen, sehe ich die Gefahr, dass die GPL in diesem Fall die Freiheit der Benutzer einschränkt, nämlich bei der Auswahl der später verfügbaren Applikationen. |
Der Autor |
|
Nils Faerber ist begeisterter Linux-Veteran und Entwickler, was in der Gründung der Firma Kernel concepts mündete, die sich mit Linux/Unix- Systementwicklung beschäftigt. Zu erreichen ist er unter: nils@kernelconcepts.de |
Ausprobieren
Einer der Vorteile von Linux auf PDAs ist, dass man nicht gleich einen 1000 Mark teuren PDA kaufen muss, um mit Qt/Embedded zu experimentieren: Neben Portierungen auf Compaq iPaq und Casio Cassiopeia läuft QPE auch auf normalen x86-PCs unter Linux, wenn ein Framebuffer- Device oder ein virtueller Framebuffer vorhanden ist. Für den ersten Einblick eignet sich die QPE-Demo-Diskette [5] — Trolltech hat es geschafft, auf einer einzigen 1.44- MByte-Diskette ein Linux-System mit QPE unterzubringen, das auf einem normalen PC mit Vesa-kompatibler Grafikkarte (die über den unbeschleunigten Vesa-Framebuffer angesteuert wird) lauffähig ist.
Konqueror
Ein moderner PDA ohne Internet-Anbindung macht nur halb so viel Spaß — ein Web-Browser ist also ein Muss für einen Linux-PDA. Allerdings stellt ein vom Desktop bekannter Browser wie Netscape für die eingeschränkten Speicherverhältnisse der tragbaren Geräte einfach zu hohe Ansprüche an die Ressourcen.
Eine Alternative ist der in KDE 2 enthaltene Browser und Filemanager Konqueror, der auf Qt/Embedded angepasst wurde: Allerdings ist Konqueror natürlich nicht für die niedrig auflösenden Displays von PDAs entwickelt worden. Da der Quellcode aber frei zur Verfügung steht, hat Simon Hausmann [3] damit begonnen, den Browser auf eine Bildschirmauflösung von 240 mal 320 Punkte zu optimieren.
Die erste veröffentlichte Version (0.1) sieht schon recht viel versprechend aus. Hausmanns Ziel ist es, eine komplette Web-Browsing-Umgebung für Qt/Embedded zu entwickeln. Sie soll Unterstützung für SSL mitbringen, für Cookies, Javascript und die nicht-blockierende Ein-und Ausgabe, für HTML 4 mit CSS (Cascading Style Sheets) und noch einige weitere Leistungsmerkmale mehr. Also genau das, was man von einem ausgewachsenen Webbrowser mittlerweile erwarten kann. ( bku)n
Infos |
|
[1] Qt/Embedded: http://www.trolltech.com [2] Konqueror: http://www.konqueror.org [3] Konqueror auf Qt/Embedded: http://www.mieterra.com/konqueror/ [4] Konqueror Download: http://devel-home.kde.org/~hausmann/konqueror-embedded-0.1.tar.gz [5] QPE Demo Disk: http://www.trolltech.com/products/qt/embedded/qpe-disks.html [6] KDE homepage: http://www.kde.org |









