E, aparentemente, os relógios no Palm OS encontrarão seu comprador:

O Palm OS é um sistema operacional para computadores de mão, que estava no auge de popularidade entre 1998 e a primeira metade dos anos 2000. É muito simples e não exige recursos, consome cuidadosamente a energia da bateria e é extraordinariamente projetado para uso em computadores de mão. Mas em 2004-2005, os dispositivos Palm OS deram lugar aos dispositivos Windows Mobile:

(fonte)
Isso aconteceu por vários motivos, em parte devido a erros de gerenciamento e em parte devido às peculiaridades do próprio sistema operacional: em 2004, o Palm OS arrastou uma longa cauda de compatibilidade com versões anteriores, o que impediu o desenvolvimento e o avanço. O que valia, por exemplo, a falta de proteção de memória: um erro no aplicativo poderia levar a um congelamento ou falha de todo o sistema operacional, como nos dias do Windows 9x ou Mac OS 9. Ou implementação do sistema de arquivos: os arquivos eram armazenados como registros no banco de dados e o tamanho de um registro não pode exceder 64 kilobytes. Provavelmente, em 1996, essa foi uma boa solução, mas esse sistema de armazenamento de dados não foi adaptado para grandes arquivos multimídia e cartões de memória que apareceram mais tarde.
Bem, você não pode ignorar a mudança de arquitetura no Palm OS 5.0 do Motorola 68k para o ARM. Em seguida, para compatibilidade com aplicativos mais antigos, um tradutor binário foi adicionado ao sistema operacional, que rapidamente transcodificou as instruções do M68k para o ARM. Em princípio, mesmo com essa camada, aplicativos antigos funcionavam em novos processadores não tão ruins quanto em seus 68K nativos, já que as chamadas do sistema Palm OS eram feitas de forma nativa no ARM, e a perda de desempenho da transmissão foi compensada por um aumento de várias vezes na frequência de novos processadores em comparação com o Motorola Dragonball. O verdadeiro problema era que os desenvolvedores não obtiveram as ferramentas para criar aplicativos ARM nativos. O código do Palm OS 5 ainda foi compilado para 68k, e até aplicativos padrão funcionaram na camada do tradutor.
No entanto, apesar dos muitos recursos arquitetônicos do Palm OS, seus pontos fortes não deixaram de ser pontos fortes. Ainda é um sistema simples, de baixo nível e baixo recurso. Em 2015, usei o Palm Pilot com um processador de 16 MHz como planejador diário e fiquei completamente à vontade! Além disso, muitos adoraram esse sistema precisamente pela simplicidade e muitos tinham aplicativos básicos suficientes. Leitores, jogadores, diários e planejadores, jogos - tudo isso existe em abundância no Palm OS. Você pode encontrar aplicativos para este sistema operacional hoje.
Portanto, após tantos anos, a comunidade de fãs desse sistema sobreviveu, que suporta sites com aplicativos, mantém seu próprio subreddit e continua a usar palmeiras.

Mas um dos membros da comunidade foi além, decidindo transferir o Palm OS para um hardware mais moderno e encontrar um aplicativo útil para este projeto.
Dmitry Greenberg, programador do Google, cria ajustes e hacks para dispositivos Palm OS desde 2003, incluindo o WarpSpeed, um programa para overclock de PDAs, e o PowerSDHC, um driver para cartões de memória SDHC.
No Google, Dmitry lidava principalmente com sistemas embarcados. Em particular, ele participou do desenvolvimento do sistema operacional do smartwatch Android Wear, do media player Nexus Q e da plataforma Android TV.
Depois de se aposentar do Google, Dmitry decidiu criar uma plataforma para relógios inteligentes baseada no Palm OS 5.x, o sistema operacional que foi atualizado pela última vez há 15 anos:

À primeira vista, o plano é excelente: é improvável que as plataformas modernas de relógios inteligentes possam ser comparadas ao Palm OS em termos de consumo de recursos e duração da bateria.
O problema é que os códigos-fonte do Palm OS nunca foram publicados. Sim, alguns códigos-fonte apareceram em domínio público nos livros didáticos de desenvolvimento de aplicativos, mas isso não é suficiente. A fonte era para o PalmSource e para os licenciados, principalmente empresas que lançavam seus dispositivos no Palm OS - em termos da NDA, é claro. Portanto, não é possível encontrar o código-fonte desse sistema operacional depois de tantos anos, e a legalidade de seu uso estará em questão.
Ainda existe um caminho difícil e difícil para os entusiastas mais exigentes com força de vontade em concreto armado: engenharia reversa. Foi esse caminho que Dmitry escolheu, gradualmente, em várias etapas, implementando seu plano.
Primeiro, você deve escrever uma ferramenta para descompactar imagens ROM de dispositivos Palm OS. Em seguida, foi necessário desmontar os principais componentes do sistema operacional obtidos a partir da imagem descompactada. Então - o trabalho mais longo e monótono - você deve entender a lógica das funções da API do sistema e escrever suas próprias implementações dessas funções. E o mais difícil é escrever o kernel do sistema operacional, já que os existentes (por exemplo, linux) não suportam algumas funções do kernel do Palm OS (suspensão de threads, ativação / desativação de multitarefas preemptivas).
Você pode ler o histórico completo da reescrita do Palm OS a partir do zero no blog de Dmitry. Analisarei apenas brevemente a implementação das etapas principais. Dmitry levou vários meses para implementar APIs do sistema, o que seria suficiente para carregar o sistema operacional. Mais algumas semanas - para engenharia reversa do subsistema gráfico e dois meses - para escrever código para dar suporte ao desenho. Nesse ponto, a funcionalidade implementada era suficiente para iniciar o sistema operacional sobre o kernel do linux no QEMU e carregar uma imagem de algum dispositivo Palm OS nesse ambiente.

Primeira inicialização do rePalm (c) Dmitry Grinberg
Para passar de um emulador para um hardware real, ainda era necessário resolver muitos problemas: escolha uma plataforma de hardware de trabalho estável e bem documentada, escreva o kernel do SO para a arquitetura selecionada, escreva um tradutor ARM no Thumb (o processador Cortex-M4 selecionado por Dmitry suporta apenas instruções Thumb de byte duplo, nesse momento enquanto muitos componentes do Palm OS usam instruções ARM completas de 4 bytes) e escrevem um compilador JIT (!!!) para que a tradução dupla M68k -> ARM -> Thumb funcione a uma velocidade adequada.
Após um ano de desenvolvimento ativo, o rePalm é lançado na placa de depuração STM32F429, os gráficos, a tela sensível ao toque e o cartão SD funcionam, a sincronização via HotSync funciona e a maioria dos aplicativos e jogos escritos no Palm OS 5.x funcionam muito bem. Os planos incluem suporte para Wi-Fi e Bluetooth, suporte para som e conexão do dispositivo via USB no modo de armazenamento em massa e atualização da biblioteca SSL. Dmitry complementa sua postagem no blog à medida que se desenvolve e também publica regularmente atualizações de projetos no sub-editor do r / Palm .

c) Dmitry Grinberg
É bom acompanhar o trabalho de uma pessoa apaixonada e observar como um projeto interessante e ambicioso se desenvolve. Mas vale lembrar que Dmitry é principalmente um engenheiro e programador. Para ele, a solução para um problema de engenharia (alinhar o Palm OS ao mundo moderno) é maior do que criar um produto comercial, seja um relógio inteligente ou qualquer outra coisa. Estou certo de que o projeto terá muitas aplicações interessantes, mas é difícil dizer o que acontecerá a seguir e se veremos a versão moderna do Fossil WristPDA. Resta desejar boa sorte a Dmitry e acompanhar o desenvolvimento do rePalm.

c) Dmitry Grinberg
PS Agradecemos a Newbilius pela idéia de publicar este artigo aqui no blog. Mais pessoas devem saber sobre projetos tão legais!