Dan, tampaknya, jam tangan di Palm OS akan menemukan pembeli mereka:

Palm OS adalah sistem operasi untuk komputer genggam, yang berada di puncak popularitas dari tahun 1998 hingga paruh pertama tahun 2000-an. Ini sangat sederhana dan tidak menuntut sumber daya, mengkonsumsi daya baterai dengan hati-hati dan sangat dirancang untuk digunakan pada komputer genggam. Namun pada 2004-2005, perangkat Palm OS memberi jalan ke perangkat Windows Mobile:

(sumber)
Ini terjadi karena berbagai alasan, sebagian karena kesalahan manajemen, dan sebagian karena kekhasan sistem operasi itu sendiri: pada tahun 2004 Palm OS menyeret ekor panjang kompatibilitas, yang mencegahnya berkembang dan bergerak maju. Apa yang layak, misalnya, kurangnya perlindungan memori: kesalahan dalam aplikasi dapat menyebabkan pembekuan atau kerusakan seluruh sistem operasi, seperti pada zaman Windows 9x atau Mac OS 9. Atau implementasi sistem file: file disimpan sebagai catatan dalam database, dan ukuran satu catatan tidak dapat melebihi 64 kilobyte. Mungkin, pada tahun 1996 ini adalah solusi yang baik, tetapi sistem penyimpanan data seperti itu tidak disesuaikan untuk file multimedia besar dan kartu memori yang muncul kemudian.
Yah, Anda tidak bisa mengabaikan perubahan arsitektur di Palm OS 5.0 dari Motorola 68k ke ARM. Kemudian, untuk kompatibilitas dengan aplikasi yang lebih lama, penerjemah biner ditambahkan ke sistem operasi, yang dengan cepat mentranskrip instruksi dari M68k ke ARM. Pada prinsipnya, bahkan dengan lapisan seperti itu, aplikasi lama bekerja pada prosesor baru tidak lebih buruk daripada pada 68K asli mereka, karena panggilan sistem Palm OS dibuat secara asli pada ARM, dan hilangnya kinerja dari penyiaran diimbangi oleh peningkatan beberapa kali lipat dalam frekuensi prosesor baru dibandingkan dengan Motorola Dragonball. Masalah sebenarnya adalah bahwa pengembang tidak mendapatkan alat untuk membuat aplikasi ARM asli. Kode untuk Palm OS 5 masih dikompilasi untuk 68k, dan bahkan aplikasi standar bekerja melalui lapisan penerjemah.
Namun demikian, terlepas dari banyak fitur arsitektur Palm OS, kekuatannya tidak berhenti menjadi kekuatan. Ini masih sederhana, level rendah, sistem sumber daya rendah. Pada 2015, saya menggunakan Palm Pilot dengan prosesor 16 MHz sebagai perencana harian, dan saya benar-benar nyaman! Selain itu, banyak yang menyukai sistem ini karena kesederhanaannya, dan banyak yang memiliki aplikasi dasar yang cukup. Pembaca, pemain, buku harian dan perencana, permainan - semua ini ada berlimpah di bawah Palm OS. Anda dapat menemukan aplikasi untuk sistem operasi ini hari ini.
Karena itu, setelah bertahun-tahun, komunitas penggemar sistem ini bertahan, yang mendukung situs dengan aplikasi, memelihara subredditnya sendiri dan terus menggunakan pohon-pohon palem.

Tetapi salah satu anggota komunitas melangkah lebih jauh, memutuskan untuk mentransfer Palm OS ke perangkat keras yang lebih modern dan menemukan aplikasi yang berguna untuk proyek ini.
Dmitry Greenberg, seorang programmer Google, telah menciptakan tweak dan hack untuk perangkat Palm OS sejak tahun 2003, termasuk WarpSpeed, sebuah program untuk overclocking PDA, dan PowerSDHC, sebuah driver untuk kartu memori SDHC.
Di Google, Dmitry terutama berurusan dengan sistem embedded. Secara khusus, ia berpartisipasi dalam pengembangan sistem operasi untuk smartwatch Android Wear, pemutar media Nexus Q dan platform Android TV.
Setelah pensiun dari Google, Dmitry memutuskan untuk membuat platform untuk jam tangan pintar berdasarkan Palm OS 5.x, sistem operasi yang terakhir diperbarui 15 tahun yang lalu:

Pada pandangan pertama, rencananya sangat bagus: tidak mungkin platform jam tangan pintar modern dapat dibandingkan dengan Palm OS dalam hal konsumsi sumber daya dan masa pakai baterai.
Masalahnya adalah bahwa kode sumber Palm OS tidak pernah dipublikasikan. Ya, beberapa potong kode sumber muncul di domain publik di buku teks pengembangan aplikasi, tetapi ini tidak cukup. Sumbernya adalah untuk PalmSource dan untuk pemegang lisensi, terutama perusahaan yang merilis perangkat mereka pada Palm OS - tentu saja dengan persyaratan NDA. Karena itu, tidak mungkin untuk menemukan kode sumber sistem operasi ini setelah bertahun-tahun, dan legalitas penggunaannya akan dipertanyakan.
Masih ada jalan yang sulit dan sulit bagi para penggemar berat dengan tekad beton bertulang: rekayasa balik. Inilah jalan yang Dmitry pilih, secara bertahap, dalam beberapa tahap, mengimplementasikan rencananya.
Pertama, Anda harus menulis alat untuk membongkar gambar ROM perangkat Palm OS. Maka perlu untuk membongkar komponen utama dari sistem operasi yang diperoleh dari gambar membongkar. Kemudian - pekerjaan terpanjang dan paling monoton - Anda harus memahami logika fungsi sistem API dan menulis implementasi Anda sendiri dari fungsi-fungsi ini. Dan, hal yang paling sulit adalah menulis kernel dari sistem operasi, karena yang sudah ada (misalnya, linux) tidak mendukung beberapa fungsi kernel Palm OS (penangguhan thread, menghidupkan / mematikan multitasking preemptive).
Anda dapat membaca riwayat lengkap penulisan ulang Palm OS dari awal di blog Dmitry , saya hanya akan meninjau secara singkat implementasi tahapan utama. Dmitry membutuhkan waktu beberapa bulan untuk mengimplementasikan API sistem, yang akan cukup untuk memuat OS. Beberapa minggu lagi - untuk rekayasa terbalik dari subsistem grafik, dan dua bulan - untuk menulis kode untuk mendukung gambar. Pada titik ini, fungsionalitas yang diterapkan sudah cukup untuk meluncurkan sistem operasi di atas kernel linux di QEMU, dan memuat gambar dari beberapa perangkat Palm OS di lingkungan ini.

Boot PERTAMA rePalm (c) Dmitry Grinberg
Untuk berpindah dari emulator ke perangkat keras nyata, masih diperlukan untuk menyelesaikan banyak masalah: pilih platform perangkat keras yang terdokumentasi dengan baik dan stabil, tulis kernel OS untuk arsitektur yang dipilih, tulis penerjemah ARM di Thumb (prosesor Cortex-M4 yang dipilih oleh Dmitry hanya mendukung instruksi Jempol bita ganda, pada saat itu sementara banyak komponen Palm OS menggunakan instruksi ARM 4-byte penuh), dan menulis kompiler JIT (!!!) sehingga terjemahan ganda M68k -> ARM -> Thumb bekerja pada kecepatan yang memadai.
Setelah satu tahun pengembangan aktif, rePalm diluncurkan pada papan debugging STM32F429, grafik, layar sentuh dan kerja kartu SD, sinkronisasi melalui karya HotSync, dan sebagian besar aplikasi dan game yang ditulis di bawah Palm OS 5.x juga bekerja dengan baik. Paket termasuk dukungan untuk Wi-Fi dan Bluetooth, dukungan untuk suara dan menghubungkan perangkat melalui USB dalam mode penyimpanan massal, dan memperbarui perpustakaan SSL. Dmitry menambah posting blog - nya seiring perkembangannya, dan juga secara rutin memposting pembaruan proyek ke r / Palm subreddit .

(c) Dmitry Grinberg
Sangat menyenangkan untuk mengikuti pekerjaan orang yang bersemangat dan menonton bagaimana proyek yang menarik dan ambisius berkembang. Tetapi perlu diingat bahwa Dmitry terutama seorang insinyur dan programmer. Baginya, memecahkan masalah teknik (membawa Palm OS sejalan dengan dunia modern) lebih tinggi daripada menciptakan produk komersial, baik itu jam tangan pintar atau yang lainnya. Saya yakin bahwa proyek ini akan memiliki banyak aplikasi yang menarik, tetapi apa yang akan terjadi selanjutnya, dan apakah kita akan melihat versi modern dari Fossil WristPDA, sulit untuk dikatakan. Tetap berharap semoga Dmitry selamat dan mengikuti perkembangan rePalm.

(c) Dmitry Grinberg
PS Terima kasih kepada Newbilius untuk pemikiran reposting artikel ini di sini dari blog. Lebih banyak orang harus tahu tentang proyek keren seperti itu!