L'auteur du projet rePalm a réécrit Palm OS à partir de zéro et prévoit de le transformer en une plateforme de montre intelligente

Et, apparemment, les montres sur Palm OS trouveront leur acheteur:


image


Palm OS est un système d'exploitation pour ordinateurs de poche, qui a connu un pic de popularité de 1998 à la première moitié des années 2000. Il est très simple et ne demande pas de ressources, consomme soigneusement la batterie et est remarquablement conçu pour être utilisé dans les ordinateurs de poche. Mais en 2004-2005, les appareils Palm OS ont cédé la place aux appareils Windows Mobile:


image
(source)


Cela s'est produit pour diverses raisons, en partie à cause d'erreurs de gestion et en partie à cause des particularités du système d'exploitation lui-même: en 2004, Palm OS a traîné une longue queue de compatibilité descendante, ce qui l'a empêché de se développer et d'aller de l'avant. Ce qui valait, par exemple, le manque de protection de la mémoire: une erreur dans l'application pouvait entraîner un gel ou un crash de tout le système d'exploitation, comme à l'époque de Windows 9x ou Mac OS 9. Ou l'implémentation du système de fichiers: les fichiers étaient stockés sous forme d'enregistrements dans la base de données, et la taille d'un enregistrement ne pouvait pas dépasser 64 kilo-octets. Probablement, en 1996, c'était une bonne solution, mais un tel système de stockage de données n'était pas adapté pour les gros fichiers multimédias et les cartes mémoire qui sont apparus plus tard.


Eh bien, vous ne pouvez pas ignorer le changement d'architecture dans Palm OS 5.0 de Motorola 68k à ARM. Ensuite, pour la compatibilité avec les anciennes applications, un traducteur binaire a été ajouté au système d'exploitation, qui transcodait les instructions de M68k à ARM à la volée. En principe, même avec une telle couche, les anciennes applications ne fonctionnaient pas moins bien sur les nouveaux processeurs que sur leur 68K natif, car les appels système Palm OS étaient effectués nativement sur ARM, et la perte de performances de la radiodiffusion était compensée par une augmentation de plusieurs fois de la fréquence des nouveaux processeurs par rapport à Motorola Dragonball. Le vrai problème était que les développeurs n'avaient pas les outils pour créer des applications ARM natives. Le code pour Palm OS 5 était toujours compilé pour 68 Ko, et même les applications standard fonctionnaient via la couche traducteur.


Néanmoins, malgré les nombreuses caractéristiques architecturales de Palm OS, ses points forts n'ont pas cessé d'être des points forts. Il s'agit toujours d'un système simple, de bas niveau et à faibles ressources. En 2015, j'ai utilisé le Palm Pilot avec un processeur 16 MHz comme agenda quotidien et j'étais complètement à l'aise! De plus, beaucoup aimaient ce système précisément pour la simplicité, et beaucoup avaient suffisamment d'applications de base. Lecteurs, joueurs, agendas et planificateurs, jeux - tout cela existe en abondance sous Palm OS. Vous pouvez trouver une application pour ce système d'exploitation aujourd'hui.


Par conséquent, après tant d'années, la communauté des fans de ce système a survécu, qui prend en charge les sites avec des applications, maintient son propre subreddit et continue d'utiliser des palmiers.


image


Mais l'un des membres de la communauté est allé plus loin, décidant de transférer Palm OS vers un matériel plus moderne et de trouver une application utile pour ce projet.


Dmitry Greenberg, un programmeur de Google, crée des ajustements et des hacks pour les appareils Palm OS depuis 2003, y compris WarpSpeed, un programme pour l'overclocking des PDA, et PowerSDHC, un pilote pour les cartes mémoire SDHC.


Chez Google, Dmitry s'occupait principalement des systèmes embarqués. Il a notamment participé au développement du système d'exploitation de la smartwatch Android Wear, du lecteur multimédia Nexus Q et de la plateforme Android TV.


Après avoir pris sa retraite de Google, Dmitry a décidé de créer une plate-forme pour montres intelligentes basée sur Palm OS 5.x, le système d'exploitation mis à jour il y a 15 ans:


image


À première vue, le plan est excellent: il est peu probable que les plates-formes de montres intelligentes modernes puissent être comparées à Palm OS en termes de consommation de ressources et d'autonomie de la batterie.


Le problème est que les codes source de Palm OS n'ont jamais été publiés. Oui, certains morceaux de codes sources sont apparus dans le domaine public dans les manuels de développement d'applications, mais ce n'est pas suffisant. La source était pour PalmSource et pour les licenciés, principalement les entreprises qui ont publié leurs appareils sur Palm OS - aux conditions de la NDA, bien sûr. Par conséquent, il n'est pas possible de trouver le code source de ce système d'exploitation après tant d'années, et la légalité de son utilisation sera remise en question.


Il reste un chemin difficile et épineux pour les passionnés les plus hardis à la volonté de béton armé: le reverse engineering. C'est cette voie que Dmitry a choisie, progressivement, en plusieurs étapes, pour mettre en œuvre son plan.


Vous devez d'abord écrire un outil pour décompresser les images ROM des appareils Palm OS. Il a ensuite fallu démonter les principaux composants du système d'exploitation obtenus à partir de l'image décompressée. Ensuite - le travail le plus long et le plus monotone - vous devez comprendre la logique des fonctions de l'API système et écrire vos propres implémentations de ces fonctions. Et, la chose la plus difficile est d'écrire le noyau du système d'exploitation, car ceux existants (par exemple, linux) ne prennent pas en charge certaines fonctions du noyau Palm OS (suspension des threads, activation / désactivation du multitâche préemptif).


Vous pouvez lire l'historique complet de la réécriture de Palm OS à partir de zéro sur le blog de Dmitry , je ne passerai en revue que brièvement la mise en œuvre des principales étapes. Dmitry a mis plusieurs mois à implémenter des API système, ce qui serait suffisant pour charger le système d'exploitation. Quelques semaines de plus - pour la rétro-ingénierie du sous-système graphique, et deux mois - pour écrire du code pour prendre en charge le dessin. À ce stade, la fonctionnalité implémentée était suffisante pour lancer le système d'exploitation sur le noyau Linux dans QEMU et charger une image d'un périphérique Palm OS dans cet environnement.


* FIRST * boot de rePalm (c) Dmitry Grinberg
PREMIÈRE botte de rePalm (c) Dmitry Grinberg


Pour passer d'un émulateur à un matériel réel, il fallait encore résoudre de nombreux problèmes: choisir une plate-forme matérielle fonctionnelle bien documentée et stable, écrire le noyau du système d'exploitation pour l'architecture sélectionnée, écrire un traducteur ARM dans Thumb (le processeur Cortex-M4 sélectionné par Dmitry ne prend en charge que les instructions Thumb à deux octets, à ce moment-là). tandis que de nombreux composants Palm OS utilisent des instructions ARM à 4 octets à part entière) et écrivent un compilateur JIT (!!!) pour que la double traduction M68k -> ARM -> Thumb fonctionne à une vitesse adéquate.


Après une année de développement actif, rePalm est lancé sur la carte de débogage STM32F429, les graphiques, un écran tactile et une carte SD fonctionnent, la synchronisation via HotSync fonctionne, et la plupart des applications et des jeux écrits sous Palm OS 5.x fonctionnent également très bien. Les plans incluent la prise en charge du Wi-Fi et du Bluetooth, la prise en charge du son et la connexion de l'appareil via USB en mode de stockage de masse, et la mise à jour de la bibliothèque SSL. Dmitry complète son article de blog au fur et à mesure de son développement, et publie également régulièrement des mises à jour de projet sur le sous-r / r / Palm .


image
c) Dmitry Grinberg




C'est agréable de suivre le travail d'une personne passionnée et de voir comment se développe un projet intéressant et ambitieux. Mais il convient de rappeler que Dmitry est avant tout un ingénieur et un programmeur. Pour lui, la solution à un problème d'ingénierie (aligner Palm OS sur le monde moderne) est plus élevée que la création d'un produit commercial, qu'il s'agisse d'une montre intelligente ou d'autre chose. Je suis sûr que le projet aura de nombreuses applications intéressantes, mais ce qui se passera ensuite, et si nous verrons la version moderne de Fossil WristPDA, est difficile à dire. Reste à souhaiter bonne chance à Dmitry et à suivre le développement de rePalm.


image
c) Dmitry Grinberg


PS Merci à Newbilius d' avoir pensé à republier cet article ici depuis le blog. Plus de gens devraient connaître ces projets sympas!

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


All Articles