Y, aparentemente, los relojes en Palm OS encontrar谩n a su comprador:

Palm OS es un sistema operativo para computadoras de mano, que estuvo en la cima de la popularidad desde 1998 hasta la primera mitad de la d茅cada de 2000. Es muy simple y no requiere recursos, consume energ铆a de la bater铆a con cuidado y est谩 especialmente dise帽ado para su uso en computadoras de mano. Pero en 2004-2005, los dispositivos Palm OS dieron paso a los dispositivos con Windows Mobile:

(fuente)
Esto sucedi贸 por varias razones, en parte debido a errores de administraci贸n y en parte debido a las peculiaridades del sistema operativo en s铆 mismo: en 2004 Palm OS arrastr贸 una larga cola de compatibilidad hacia atr谩s, lo que impidi贸 que se desarrollara y avanzara. Lo que vali贸 la pena, por ejemplo, fue la falta de protecci贸n de la memoria: un error en la aplicaci贸n podr铆a provocar un congelamiento o bloqueo de todo el sistema operativo, como en los d铆as de Windows 9x o Mac OS 9. O la implementaci贸n del sistema de archivos: los archivos se almacenaban como registros en la base de datos y el tama帽o de un registro No podr铆a exceder los 64 kilobytes. Probablemente, en 1996 esta fue una buena soluci贸n, pero dicho sistema de almacenamiento de datos no se adapt贸 para grandes archivos multimedia y tarjetas de memoria que aparecieron m谩s tarde.
Bueno, no puede ignorar el cambio de arquitectura en Palm OS 5.0 de Motorola 68k a ARM. Luego, para compatibilidad con aplicaciones m谩s antiguas, se agreg贸 un traductor binario al sistema operativo, que transcodific贸 las instrucciones de M68k a ARM sobre la marcha. En principio, incluso con esa capa, las aplicaciones antiguas funcionaban en procesadores nuevos no peor que en su 68K nativo, ya que las llamadas al sistema Palm OS se hicieron de forma nativa en ARM, y la p茅rdida de rendimiento de la transmisi贸n se compens贸 con un aumento de varias veces en la frecuencia de los nuevos procesadores en comparaci贸n con Motorola Dragonball. El verdadero problema era que los desarrolladores no obtuvieron las herramientas para crear aplicaciones ARM nativas. El c贸digo para Palm OS 5 todav铆a se compil贸 para 68k, e incluso las aplicaciones est谩ndar funcionaron a trav茅s de la capa de traductor.
Sin embargo, a pesar de las muchas caracter铆sticas arquitect贸nicas de Palm OS, sus puntos fuertes no han dejado de ser puntos fuertes. Sigue siendo un sistema simple, de bajo nivel y bajo recurso. En 2015, utilic茅 el Palm Pilot con un procesador de 16 MHz como planificador diario, 隆y estaba completamente c贸modo! Adem谩s, muchos amaban este sistema precisamente por simplicidad, y muchos ten铆an suficientes aplicaciones b谩sicas. Lectores, jugadores, diarios y planificadores, juegos: todo esto existe en abundancia en Palm OS. Puede encontrar la aplicaci贸n para este sistema operativo hoy.
Por lo tanto, despu茅s de tantos a帽os, la comunidad de fan谩ticos de este sistema ha sobrevivido, lo que respalda sitios con aplicaciones, mantiene su propio subreddit y contin煤a utilizando palmeras.

Pero uno de los miembros de la comunidad fue m谩s all谩 y decidi贸 transferir Palm OS a un hardware m谩s moderno y encontrar una aplicaci贸n 煤til para este proyecto.
Dmitry Greenberg, un programador de Google, ha estado creando ajustes y hacks para dispositivos Palm OS desde 2003, incluido WarpSpeed, un programa para overclocking de PDA, y PowerSDHC, un controlador para tarjetas de memoria SDHC.
En Google, Dmitry se ocup贸 principalmente de los sistemas integrados. Particularmente, particip贸 en el desarrollo del sistema operativo para el reloj inteligente Android Wear, el reproductor multimedia Nexus Q y la plataforma Android TV.
Despu茅s de retirarse de Google, Dmitry decidi贸 crear una plataforma para relojes inteligentes basada en Palm OS 5.x, el sistema operativo que se actualiz贸 por 煤ltima vez hace 15 a帽os:

A primera vista, el plan es excelente: es poco probable que las plataformas de relojes inteligentes modernos se puedan comparar con Palm OS en t茅rminos de consumo de recursos y duraci贸n de la bater铆a.
El problema es que los c贸digos fuente de Palm OS nunca se han publicado. S铆, algunos c贸digos fuente aparecieron en el dominio p煤blico en los libros de texto de desarrollo de aplicaciones, pero esto no es suficiente. La fuente fue para PalmSource y para los licenciatarios, principalmente compa帽铆as que lanzaron sus dispositivos en Palm OS, en t茅rminos de NDA, por supuesto. Por lo tanto, no es posible encontrar el c贸digo fuente de este sistema operativo despu茅s de tantos a帽os, y la legalidad de su uso ser谩 cuestionada.
Sigue habiendo un camino dif铆cil y espinoso para los entusiastas m谩s duros con fuerza de voluntad de hormig贸n armado: ingenier铆a inversa. Dmitry eligi贸 este camino, gradualmente, en varias etapas, implementando su plan.
Primero debe escribir una herramienta para desempaquetar im谩genes ROM de dispositivos Palm OS. Luego fue necesario desmontar los componentes principales del sistema operativo obtenidos de la imagen desempaquetada. Luego, el trabajo m谩s largo y m谩s mon贸tono, debe comprender la l贸gica de las funciones API del sistema y escribir sus propias implementaciones de estas funciones. Y lo m谩s dif铆cil es escribir el n煤cleo del sistema operativo, ya que los existentes (por ejemplo, Linux) no admiten algunas funciones del n煤cleo de Palm OS (suspensi贸n de subprocesos, activar / desactivar la multitarea preventiva).
Puede leer el historial completo de reescritura de Palm OS desde cero en el blog de Dmitry , solo revisar茅 brevemente la implementaci贸n de las etapas principales. Dmitry tard贸 varios meses en implementar las API del sistema, lo que ser铆a suficiente para cargar el sistema operativo. Unas semanas m谩s, para la ingenier铆a inversa del subsistema de gr谩ficos, y dos meses, para escribir c贸digo para soportar el dibujo. En este punto, la funcionalidad implementada fue suficiente para iniciar el sistema operativo en la parte superior del kernel de Linux en QEMU y cargar una imagen de alg煤n dispositivo Palm OS en este entorno.

PRIMERA bota de rePalm (c) Dmitry Grinberg
Para pasar de un emulador a un hardware real, todav铆a era necesario resolver muchos problemas: elegir una plataforma de hardware de trabajo bien documentada y estable, escribir el n煤cleo del sistema operativo para la arquitectura seleccionada, escribir un traductor ARM en Thumb (el procesador Cortex-M4 seleccionado por Dmitry solo admite instrucciones de doble byte Thumb, en ese caso mientras que muchos componentes de Palm OS usan instrucciones ARM completas de 4 bytes) y escriben un compilador JIT (!!!) para que la traducci贸n dual M68k -> ARM -> Thumb funcione a una velocidad adecuada.
Despu茅s de un a帽o de desarrollo activo, rePalm se lanz贸 en la placa de depuraci贸n STM32F429, los gr谩ficos, una pantalla t谩ctil y una tarjeta SD funcionan, la sincronizaci贸n a trav茅s de HotSync funciona, y la mayor铆a de las aplicaciones y juegos escritos en Palm OS 5.x tambi茅n funcionan muy bien. Los planes incluyen soporte para Wi-Fi y Bluetooth, soporte para sonido y conexi贸n del dispositivo a trav茅s de USB en modo de almacenamiento masivo, y actualizaci贸n de la biblioteca SSL. Dmitry complementa su publicaci贸n de blog a medida que se desarrolla, y tambi茅n publica regularmente actualizaciones de proyectos en el subreddit r / Palm .

(c) Dmitry Grinberg
Es agradable seguir el trabajo de una persona apasionada y ver c贸mo se desarrolla un proyecto interesante y ambicioso. Pero vale la pena recordar que Dmitry es principalmente un ingeniero y programador. Para 茅l, la soluci贸n a un problema de ingenier铆a (poner Palm OS en l铆nea con el mundo moderno) es m谩s alta que crear un producto comercial, ya sea un reloj inteligente u otra cosa. Estoy seguro de que el proyecto tendr谩 muchas aplicaciones interesantes, pero lo que suceder谩 despu茅s, y si veremos la versi贸n moderna de Fossil WristPDA, es dif铆cil de decir. Queda por desearle buena suerte a Dmitry y seguir el desarrollo de rePalm.

(c) Dmitry Grinberg
PD: Gracias a Newbilius por la idea de volver a publicar este art铆culo aqu铆 desde el blog. 隆M谩s personas deber铆an saber sobre proyectos tan geniales!