- PumpkinOS adalah implementasi ulang PalmOS yang berjalan di arsitektur modern seperti x86 dan ARM, serta dapat menjalankan aplikasi PalmOS m68K tanpa ROM PalmOS
- Aplikasi yang dijalankan secara default adalah Launcher; Preferences direncanakan akan berisi opsi konfigurasi, sementara Command masih disediakan sebagai shell perintah eksperimental
- Rilis ini menyertakan empat aplikasi PIM PalmOS: AddressBook, MemoPad, ToDoList, DateBook. Kode sumber yang dulu didistribusikan dalam PalmOS SDK telah dimodifikasi agar dapat dikompilasi di PumpkinOS
- Record dari AddressBook dan MemoPad tampaknya akan kompatibel dengan aplikasi padanannya di PalmOS, tetapi record ToDoList dan DateBook tidak kompatibel karena perbedaan word size dan endianness
- Seluruh proyek masih berada pada tahap eksperimental; sebagian fitur sama sekali belum diuji, dan build Emscripten juga dapat mengalami masalah seperti software rendering, penggunaan CPU tinggi, dan browser terkunci
Tujuan dan cakupan PumpkinOS
- PumpkinOS adalah proyek yang mengimplementasikan ulang PalmOS untuk arsitektur modern
- Arsitektur target mencakup x86, ARM, dan lainnya
- Berbeda dari emulator PalmOS pada umumnya, tidak memerlukan ROM PalmOS
- Dapat menjalankan aplikasi PalmOS m68K
- Kumpulan tulisan yang membahas berbagai aspek PumpkinOS dapat dilihat di kategori PalmOS WordPress
Aplikasi dasar dan status saat ini
- Launcher adalah aplikasi yang pertama kali dijalankan saat PumpkinOS dimulai
- Menampilkan panel untuk menjalankan aplikasi lain
- Preferences dalam jangka panjang direncanakan akan berisi opsi konfigurasi PumpkinOS
- Command adalah shell perintah dan masih bersifat eksperimental
Aplikasi PIM PalmOS yang disertakan
- Rilis ini menyertakan empat aplikasi PIM PalmOS
- AddressBook
- MemoPad
- ToDoList
- DateBook
- Kode sumber aplikasi-aplikasi ini berasal dari yang pernah didistribusikan dalam satu atau lebih PalmOS SDK, dan telah dimodifikasi agar dapat dikompilasi dengan benar di PumpkinOS
- Kompatibilitas record berbeda-beda menurut aplikasi
- Record yang dibuat di AddressBook dan MemoPad tampaknya akan kompatibel dengan aplikasi padanannya di PalmOS
- Record yang dibuat di ToDoList dan DateBook tidak kompatibel karena perbedaan word size dan endianness
- Cakupan pengujiannya terbatas
- Baru diuji sebatas membuat dan mengedit beberapa record
- Masih ada beberapa perilaku yang tidak normal
- Sebagian fitur sama sekali belum diuji
- Tujuan saat ini adalah memberi pratinjau seperti apa arah PumpkinOS di masa depan
Lisensi
- PumpkinOS dilisensikan di bawah GPL v3
- Direktori
license berisi informasi lisensi terpisah untuk berbagai komponen yang digunakan oleh PumpkinOS
- Pengembang meminta agar diberi tahu jika ada informasi lisensi yang hilang atau keliru
Cara build
- PumpkinOS harus di-build dari source
- IDE tidak diperlukan
- Build dapat dilakukan dari command line
-
Windows, Linux, WSL2
- Di Windows 64-bit, MSYS2 dapat digunakan
- Instal paket tambahan di terminal MINGW64
pacman -S gcc binutils make git
- Pada OS berbasis Linux 64-bit, diperlukan
gcc, binutils, make, dan git
- Di Linux, paket pengembangan SDL2 juga harus diinstal
- Pada turunan Debian, gunakan perintah berikut
sudo apt install gcc binutils make git libsdl2-dev
- Di Windows 11 dan Windows 10 terbaru, build juga dapat dilakukan di WSL2
- Ikuti instruksi build Linux dari terminal WSL2
-
Prosedur build umum
git clone https://github.com/migueletto/PumpkinOS.git
- Masuk ke direktori source dan jalankan
make
cd PumpkinOS/src
make
- Jika build berhasil, artefak berikut akan dibuat
- File executable
pumpkin di direktori root
- Dynamic library di direktori
bin
- File PRC di direktori
vfs/app_install
Build Emscripten dan menjalankan di web
- Secara eksperimental, build dapat dilakukan menggunakan Emscripten
- Cara instalasi Emscripten berada di luar cakupan README
cd PumpkinOS/src
make OSNAME=Emscripten
- Perintah ini membuat
pumpkin.zip di dalam folder src/emscripten
- File zip ini berisi file yang diperlukan untuk men-deploy PumpkinOS ke web server
- Jika menggunakan web server standar Linux
apache2, contoh prosedurnya adalah sebagai berikut
- Buat folder
/var/www/html/pumpkin
- Ekstrak file zip ke folder tersebut
- Buka browser ke
/pumpkin/pumpkin.html di server lokal, maka PumpkinOS dapat ditampilkan
- Ada juga cara menjalankan web server Python dari direktori source Emscripten
cd PumpkinOS/src/emscripten
python3 -m http.server 8080
- Build ini masih sangat eksperimental dan memiliki beberapa keterbatasan
- Bergantung pada OS, browser, dan status integrasi GPU, build dapat secara tak terduga fallback ke software rendering
- Penggunaan CPU tinggi dan browser terkunci dapat terjadi
- Jika browser dijalankan dalam private mode, aplikasi tidak berjalan
- Jika diakses dari server selain localhost melalui HTTP alih-alih HTTPS, aplikasi tidak akan dimuat
Menjalankan, instalasi, dan debugging
- Di Windows 64-bit, jalankan
pumpkin.bat
- Di Linux atau WSL2, jalankan
pumpkin.sh
- Saat dijalankan, PumpkinOS terbuka di jendela baru
- Saat startup, semua PRC di
vfs/app_install akan dihapus dan diekspansi ke folder di dalam vfs/app_storage
- Tahap saat ini secara keseluruhan masih eksperimental, sehingga berbagai masalah dapat terjadi
- Terlepas dari apakah proses berjalan sukses atau tidak, file
pumpkin.log akan dibuat di direktori root
- Jika terjadi masalah, periksa baris yang ditandai dengan
"E" pada kolom ketiga file ini
- Pengembang menyatakan dapat menerima pertanyaan dan file log
- PumpkinOS mendukung Drag & Drop
- Jika file PRC PalmOS diseret dan dijatuhkan ke jendela, file akan diinstal dan muncul di Launcher
- PRC juga dapat disalin langsung ke direktori
vfs/app_install, lalu restart PumpkinOS
- Jika diinginkan, debugging dapat dilakukan dengan
gdb di Windows, Linux, dan WSL2
- Di Windows, ubah baris terakhir
pumpkin.bat menjadi seperti berikut
gdb.exe --args .\pumpkin.exe -d 1 -f pumpkin.log -s libscriptlua .\script\pumpkin.lua
- Di Linux dan WSL2, ubah baris terakhir
pumpkin.sh menjadi seperti berikut
gdb --args ./pumpkin -d 1 -f pumpkin.log -s libscriptlua ./script/pumpkin.lua
1 komentar
Komentar Hacker News
Saya pergi ke Computer History Museum di Mountain View, lalu melihat Palm Pilot di dalam kotak pameran dan langsung merasa tua
Seharusnya ilegal memamerkan benda yang baru sekitar 30 tahun lalu menjadi bagian penting hidup saya seolah-olah benda itu digali dari reruntuhan peradaban kuno. Rasanya sangat tidak adil
Saat itu saya meminta atasan saya membelikannya, dan ia benar-benar membelikannya, tetapi ia berkata, “Sekarang kamu memakai sesuatu untuk mengatur hidup dan proyekmu? Kalau tidak, PalmPilot juga sepertinya tidak akan membantu”
Ia benar-benar benar
Masih ada satu sudut otak saya yang seperti trauma tak terselesaikan, yang sejak remaja masih menunggu Dreamcast bangkit besar-besaran
Sangat menyenangkan menunjuk satu per satu perangkat yang pernah kami miliki bersama pasangan, dan benar-benar seru melihatnya lagi
Besar, kikuk, dan cukup tidak praktis, tetapi pengalaman yang sepenuhnya terintegrasi dengan Palm Desktop sangat mulus. Belakangan saya memakai jPilot di Linux
Proyek PumpkinOS benar-benar luar biasa. Saya tidak bisa membayangkan berapa banyak usaha yang dibutuhkan untuk membuatnya kompatibel dengan semua system call yang biasanya diharapkan aplikasi Palm
Saya ingat Palm melakukan hal-hal yang cukup aneh dalam penanganan memori. Data yang sedikit lebih besar harus dimasukkan ke blok memori khusus yang bisa dipindah-pindahkan oleh sistem operasi sesukanya, dan agar tetap stabil selama diakses, handle blok itu harus dikunci
Mengimplementasikan hal-hal seperti itu di PumpkinOS pasti sulit sekaligus menarik. Dulu saya membuat beberapa game kecil untuk Palm OS, dan saat itu saya sangat menantikan versi OS berikutnya yang memungkinkan membuat program dengan Palm OS Development Suite yang baru keluar
Itu juga OS terakhir yang aplikasinya punya central event loop. Sekarang UI framework menangani semuanya. Sekarang memang lebih mudah, tapi saya tetap merindukan cara itu
Semua GUI toolkit yang pernah dibuat pada akhirnya punya struktur seperti itu, tetapi di sebagian besar toolkit modern, queue dan loop ini tersembunyi di dalam, sehingga keberadaannya baru terasa saat melihat stack debugger atau ketika sesuatu crash
Untuk melakukan multitasking di sistem tanpa MMU, sepertinya defragmentasi heap saat runtime hampir wajib dilakukan
Cukup pakai
malloc, jangan pindahkan memorinya, dan jadikan lock serta unlock blok seperti itu sebagai operasi yang tidak melakukan apa-apaKalau ada OS call untuk memeriksa status lock, status itu perlu disimpan di suatu tempat, tetapi itu juga tidak sulit. Mengimplementasikannya persis seperti cara saat itu bukan sulit, melainkan hanya membuat pihak yang menggunakannya menjadi rumit
API yang kompleks bisa diimplementasikan dengan bongkahan memori sebesar yang diinginkan, dan kapasitas seperti 128MB RAM tergolong sangat kecil menurut standar sekarang
Proyek lain yang layak dilihat bersama ini adalah rePalm. Ini proyek untuk menjalankan PalmOS di mikrokontroler ARM seperti RP2040: http://dmitry.gr/?r=05.Projects&proj=27.%20rePalm
PumpkinOS / 3 tahun lalu | 52 komentar
https://news.ycombinator.com/item?id=28466858
Diskusi terkait rePalm:
PalmOS on Raspberry Pi, tulisan yang diposting oleh Tijdreiziger pada 10 September 2021, 169 poin | 86 komentar
https://news.ycombinator.com/item?id=28487817
Saya sudah tidak sabar membayangkan akan menghabiskan beberapa jam untuk main Space Trader
Waktu SMP saya punya Palm Vx, dan saya punya kenangan indah memainkan game itu di bawah meja saat jam pelajaran
Saya rindu masa itu
Membaca judul ini membuat jantung saya berdebar. Saya ingin membuatnya berjalan di Android, “mengganti” ponsel utama saya, dan kembali ke masa yang lebih baik
Saya terus memakai Palm sampai Centro, dan setelah itu tidak pernah menemukan aplikasi kontak/kalender yang saya sukai seperti versi Palm. Entah fitur sederhana dan mendasar tidak ada, atau UI-nya terlalu rumit tanpa perlu
Itu akan mirip dengan orang-orang yang serius menjalankan aplikasi DOS di dalam halaman web
https://play.google.com/store/apps/details?id=com.access_com...
Dulu saya pernah berinvestasi karena berpikir Palm pada akhirnya akan membuat sesuatu seperti iPhone
Sayangnya Palm tidak berhasil melakukannya, dan ketika Apple berhasil, Palm pun tamat
Pada akhirnya, bisa dibilang yang menjatuhkan Palm adalah kesuksesan awalnya sendiri dan ekosistem alat shareware/freeware yang sangat besar
Palm OS mulai terlihat tua sebagai OS single-thread, selalu berada di RAM, tanpa memori virtual, jadi mereka harus mencoba sesuatu yang baru, tetapi itu pasti akan mengasingkan penggemar lama yang memakai pustaka software lama
Mereka tidak pernah berhasil memecahkan masalah ayam-dan-telur itu, dan pemisahan OS dari hardware, spin-off seperti Handspring, maupun merger ulang juga tidak membantu. Cobalt OS tidak pernah masuk ke perangkat nyata, dan Pre adalah awal baru yang ambisius, tetapi sekalipun keluar lebih awal, kemungkinan tetap sulit melawan iPhone
PalmSource sempat merancang OS berbasis Linux, lalu diakuisisi dan menghilang, sementara Palm One kembali mengganti namanya menjadi Palm dan membuat smartphone awal berbasis PalmOS
Namun saat itu PalmOS sudah cukup usang, menjalankan aplikasi 16-bit di atas OS 32-bit
Setelah itu Palm membuat webOS, tetapi mengambil keputusan hardware yang aneh dan tidak mampu bersaing dengan iPhone serta Android. Meski begitu, mereka masih bisa menjadi pesaing dibandingkan Blackberry atau Nokia yang gagal beralih ke layar kapasitif
Masalah Palm adalah mereka terlambat, tetapi kalau tidak dipisah dan membuat penerus PalmOS, sepertinya mereka tetap akan melewatkan arus smartphone kapasitif
Apple punya iPod, dan yang lebih penting, punya pelanggan. Karena Apple bisa membawa pelanggan-pelanggan ini ke operator, mereka bisa lebih banyak mendikte
Bagian yang saya maksud ada sekitar menit ke-20 di https://www.youtube.com/watch?v=b9_Vh9h3Ohw
Memang bukan iPhone, tetapi sebagai alat kerja sangat efisien
Apa yang dibutuhkan untuk menjalankan ini di hardware ponsel modern, atau mungkin hardware ponsel satu generasi sebelumnya?
Dengan kesederhanaan luar biasa dan daya tahan baterai yang absurd, sepertinya ini bisa melakukan sebagian besar hal yang kita inginkan. Mungkin bahkan bisa membuat PinePhone terasa seperti Rolls Royce
Kalau kode GUI ditulis ulang dengan framework tiap platform, sepertinya bisa diperbarui agar berjalan di Android atau iOS, tetapi menjadikannya OS yang bisa boot tampak lebih sulit
Tahun lalu penulisnya menulis artikel tentang menjadikannya OS yang bisa boot dengan kernel x86 minimal dan QEMU, jadi mungkin bisa digunakan ulang untuk perangkat ARM juga [1]
https://pmig96.wordpress.com/2023/02/24/pumpkinos-busybox-an...
Ada juga CloudpilotEmu, emulator Palm yang berjalan di dalam browser, yang layak dilihat
https://cloudpilot-emu.github.io/
Saya benar-benar senang ketika bisa memasangnya dan memainkan Vexed lagi
Saya belum pernah dengar Vexed, tetapi dalam kasus saya, saya sangat senang Space Trader kembali
Saya pelanggan Sprint sejak era ponsel Palm dimulai
Sampai dua tahun lalu pun saya masih memakai Treo berwarna sebagai telepon, dan keyboard fisik-nya benar-benar enak digunakan. Soalnya jari saya agak berubah bentuk, jadi touchscreen sulit bagi saya
Merger dengan T-Mobile membuat bagian komunikasi nirkabelnya terhenti, dan saya sangat sedih melihatnya hilang
Sekitar 6 bulan setelah iPhone keluar dan ponsel Android juga muncul, dia bilang Pre adalah “pembunuh iPhone”
Setelah menunjukkan kepada pengguna iPhone pertama di departemen kami beberapa fitur Pre yang jika dibandingkan sebenarnya tidak terlalu hebat, dia bilang jutaan pengguna Palm akan membuktikan ucapannya
Dan memang mereka membuktikannya dengan jelas
Senang proyek ini ada karena memperpanjang umur software yang mungkin tidak akan pernah punya kesempatan berjalan lagi
Namun saya penasaran apakah ini karena nostalgia, atau karena ada kebutuhan atau keinginan nyata terhadap software itu
Banyak cerita tentang merindukan Palm, Blackberry, dan Psion, tetapi di luar penggunaan khusus, apakah orang benar-benar ingin kembali ke masa itu? Saya tahu IMAX membutuhkan emulator Palm untuk menjalankan sebagian stack-nya
Saat mencari Psion 5 “modern”, saya melihat sebagian tim terkait membuat Gemini PDA berbasis Android. Sebagian reviewer jelas menganggap hal itu sebagai kekurangan
Kalau ada sistem operasi EPOC baru yang mendukung konektivitas modern, bagi mereka itu tampak seperti keberhasilan yang jelas, tetapi setelah dipikir-pikir, saya mungkin terutama akan menjalankan Linux di atasnya. Asalkan bisa menemukan unit baru dengan keyboard Inggris dalam stok
Tapi apakah kita benar-benar menginginkan itu? Selama lebih dari 20 tahun terakhir sudah ada banyak kemajuan, dan kalau kebanyakan orang diberi PalmOS sebagai pengganti Android atau iOS untuk penggunaan sehari-hari, rasanya mereka akan frustrasi dan mengembalikannya dalam seminggu
Apa fitur penentu yang akan membuat penilaian ini keliru?