Der Autor des rePalm-Projekts hat Palm OS von Grund auf neu geschrieben und plant, es in eine Smart-Watch-Plattform umzuwandeln

Und anscheinend werden Uhren unter Palm OS ihren Käufer finden:


Bild


Palm OS ist ein Betriebssystem für Handheld-Computer, das von 1998 bis zur ersten Hälfte der 2000er Jahre auf dem Höhepunkt seiner Popularität stand. Es ist sehr einfach und beansprucht keine Ressourcen, verbraucht sorgfältig Batteriestrom und ist bemerkenswert für die Verwendung in Handheld-Computern konzipiert. In den Jahren 2004-2005 machten Palm OS-Geräte Windows Mobile-Geräten Platz:


Bild
(Quelle)


Dies geschah aus verschiedenen Gründen, teils aufgrund von Verwaltungsfehlern, teils aufgrund der Besonderheiten des Betriebssystems selbst: Im Jahr 2004 zog Palm OS einen langen Schwanz der Abwärtskompatibilität mit sich, der die Entwicklung und Weiterentwicklung des Betriebssystems verhinderte. Zum Beispiel das Fehlen von Speicherschutzkosten: Ein Fehler in der Anwendung kann dazu führen, dass das gesamte System einfriert oder abstürzt, wie in den Tagen von Windows 9x oder Mac OS 9. Oder Implementierung des Dateisystems: Dateien wurden als Datensätze in der Datenbank gespeichert und haben die Größe eines Datensatzes konnte 64 Kilobyte nicht überschreiten. Wahrscheinlich war dies 1996 eine gute Lösung, aber ein solches Datenspeichersystem wurde nicht für große Multimediadateien und Speicherkarten angepasst, die später erschienen.


Nun, Sie können die Änderung der Architektur in Palm OS 5.0 von Motorola 68k auf ARM nicht ignorieren. Aus Gründen der Kompatibilität mit älteren Anwendungen wurde dem Betriebssystem ein Binärübersetzer hinzugefügt, der Anweisungen von M68k in ARM im laufenden Betrieb umcodierte. Selbst mit einer solchen Schicht funktionierten alte Anwendungen auf neuen Prozessoren nicht schlechter als auf ihrem nativen 68K, da Palm OS-Systemaufrufe nativ auf ARM getätigt wurden und der Leistungsverlust durch Rundfunk durch eine mehrfache Erhöhung der Häufigkeit neuer Prozessoren im Vergleich zu Motorola Dragonball ausgeglichen wurde. Das eigentliche Problem war, dass die Entwickler nicht über die Tools zum Erstellen nativer ARM-Anwendungen verfügten. Der Code für Palm OS 5 wurde noch für 68 KB kompiliert, und selbst Standardanwendungen arbeiteten über die Übersetzerebene.


Trotz der vielen architektonischen Merkmale von Palm OS sind seine Stärken immer wieder Stärken. Es ist immer noch ein einfaches System auf niedriger Ebene und mit geringen Ressourcen. 2015 habe ich den Palm Pilot mit einem 16-MHz-Prozessor als Tagesplaner verwendet und mich rundum wohlgefühlt! Darüber hinaus liebten viele dieses System genau der Einfachheit halber und viele hatten genug grundlegende Anwendungen. Leser, Spieler, Tagebücher und Planer, Spiele - all dies gibt es unter Palm OS in Hülle und Fülle. Sie können heute eine Anwendung für dieses Betriebssystem finden.


Daher hat nach so vielen Jahren die Community der Fans dieses Systems überlebt, das Websites mit Anwendungen unterstützt, einen eigenen Subreddit verwaltet und weiterhin Palmen verwendet.


Bild


Eines der Community-Mitglieder ging jedoch noch weiter und beschloss, Palm OS auf modernere Hardware zu übertragen und eine nützliche Anwendung für dieses Projekt zu finden.


Dmitry Greenberg, ein Google-Programmierer, erstellt seit 2003 Optimierungen und Hacks für Palm OS-Geräte, darunter WarpSpeed, ein Programm zum Übertakten von PDAs, und PowerSDHC, ein Treiber für SDHC-Speicherkarten.


Bei Google befasste sich Dmitry hauptsächlich mit eingebetteten Systemen. Insbesondere war er an der Entwicklung des Betriebssystems für die Android Wear Smartwatch, den Nexus Q Media Player und die Android TV-Plattform beteiligt.


Nach seinem Rücktritt von Google beschloss Dmitry, eine Plattform für Smartwatches zu erstellen, die auf Palm OS 5.x basiert, dem Betriebssystem, das zuletzt vor 15 Jahren aktualisiert wurde:


Bild


Auf den ersten Blick ist der Plan ausgezeichnet: Es ist unwahrscheinlich, dass moderne Smartwatch-Plattformen hinsichtlich Ressourcenverbrauch und Akkulaufzeit mit Palm OS verglichen werden können.


Das Problem ist, dass Palm OS-Quellcodes nie veröffentlicht wurden. Ja, einige Quellcodes wurden in Lehrbüchern zur Anwendungsentwicklung öffentlich zugänglich gemacht, dies reicht jedoch nicht aus. Die Quelle war für PalmSource und für Lizenznehmer, hauptsächlich Unternehmen, die ihre Geräte unter Palm OS veröffentlicht haben - natürlich zu NDA-Bedingungen. Daher ist es nach so vielen Jahren nicht möglich, den Quellcode dieses Betriebssystems zu finden, und die Rechtmäßigkeit seiner Verwendung wird in Frage gestellt.


Für die Hardcore-Enthusiasten mit Stahlbeton-Willenskraft bleibt ein schwieriger und heikler Weg: Reverse Engineering. Diesen Weg wählte Dmitry nach und nach in mehreren Schritten, um seinen Plan umzusetzen.


Zuerst sollten Sie ein Tool zum Entpacken von ROM-Images von Palm OS-Geräten schreiben. Dann war es notwendig, die Hauptkomponenten des Betriebssystems zu zerlegen, die aus dem entpackten Image erhalten wurden. Dann - der längste und eintönigste Job - sollten Sie die Logik der System-API-Funktionen verstehen und Ihre eigenen Implementierungen dieser Funktionen schreiben. Am schwierigsten ist es, den Kernel des Betriebssystems zu schreiben, da vorhandene (z. B. Linux) einige Palm OS-Kernelfunktionen (Suspendieren von Threads, Aktivieren / Deaktivieren von präemptivem Multitasking) nicht unterstützen.


Sie können den vollständigen Verlauf des Umschreibens von Palm OS von Grund auf auf Dmitrys Blog lesen. Ich werde nur kurz auf die Implementierung der Hauptphasen eingehen. Dmitry brauchte mehrere Monate, um System-APIs zu implementieren, die ausreichen würden, um das Betriebssystem zu laden. Noch ein paar Wochen - für das Reverse Engineering des Grafiksubsystems und zwei Monate - für das Schreiben von Code zur Unterstützung des Zeichnens. Zu diesem Zeitpunkt reichte die implementierte Funktionalität aus, um das Betriebssystem über dem Linux-Kernel in QEMU zu starten und ein Image eines Palm OS-Geräts in dieser Umgebung zu laden.


* FIRST * boot von rePalm (c) Dmitry Grinberg
ERSTER Boot von rePalm (c) Dmitry Grinberg


Um von einem Emulator auf echte Hardware umzusteigen, mussten noch viele Probleme gelöst werden: Wählen Sie eine gut dokumentierte und stabil funktionierende Hardwareplattform, schreiben Sie den Betriebssystemkern für die ausgewählte Architektur, schreiben Sie einen ARM-Übersetzer in Thumb (der von Dmitry ausgewählte Cortex-M4-Prozessor unterstützt dabei nur Doppelbyte-Thumb-Anweisungen Während viele Palm OS-Komponenten vollwertige 4-Byte-ARM-Anweisungen verwenden und einen JIT-Compiler (!!!) schreiben, damit die doppelte Übersetzung M68k -> ARM -> Thumb mit einer angemessenen Geschwindigkeit arbeitet.


Nach einem Jahr aktiver Entwicklung wird rePalm auf dem STM32F429-Debugging-Board gestartet. Grafiken, ein Touchscreen und eine SD-Karte funktionieren, die Synchronisierung über HotSync funktioniert und die meisten Anwendungen und Spiele, die unter Palm OS 5.x geschrieben wurden, funktionieren ebenfalls hervorragend. Die Pläne umfassen die Unterstützung von Wi-Fi und Bluetooth, die Unterstützung von Sound und die Verbindung des Geräts über USB im Massenspeichermodus sowie die Aktualisierung der SSL-Bibliothek. Dmitry ergänzt seinen Blog-Beitrag während der Entwicklung und veröffentlicht regelmäßig Projektaktualisierungen für den Subreddit r / Palm .


Bild
(c) Dmitry Grinberg




Es ist schön, die Arbeit einer leidenschaftlichen Person zu verfolgen und zu beobachten, wie sich ein interessantes und ehrgeiziges Projekt entwickelt. Es sei jedoch daran erinnert, dass Dmitry in erster Linie Ingenieur und Programmierer ist. Für ihn ist die Lösung eines technischen Problems (Anpassung von Palm OS an die moderne Welt) höher als die Entwicklung eines kommerziellen Produkts, sei es eine Smartwatch oder etwas anderes. Ich bin sicher, dass das Projekt viele interessante Anwendungen haben wird, aber was als nächstes passieren wird und ob wir die moderne Version von Fossil WristPDA sehen werden, ist schwer zu sagen. Es bleibt Dmitry viel Glück zu wünschen und die Entwicklung von rePalm zu verfolgen.


Bild
(c) Dmitry Grinberg


PS Vielen Dank an Newbilius für den Gedanken, diesen Artikel hier aus dem Blog neu zu veröffentlichen. Mehr Leute sollten über solche coolen Projekte Bescheid wissen!

Source: https://habr.com/ru/post/de452692/


All Articles