1 poin oleh GN⁺ 2024-04-08 | 1 komentar | Bagikan ke WhatsApp
  • 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

    • Clone repository
    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

 
GN⁺ 2024-04-08
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

    • Saya masih punya PalmPilot asli saya di kotak di loteng. Keberadaannya sendiri menjadi pelajaran hidup yang besar
      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
    • Beberapa bulan lalu di Reddit saya melihat posting seseorang yang menemukan Game Boy tua milik kakeknya
    • Di Computer History Museum juga ada Dreamcast yang dipamerkan, dan itu jauh lebih mengganggu bagi saya
      Masih ada satu sudut otak saya yang seperti trauma tak terselesaikan, yang sejak remaja masih menunggu Dreamcast bangkit besar-besaran
    • Di Science Museum London ada ruang pameran yang mengumpulkan ponsel, komputer, dan konsol
      Sangat menyenangkan menunjuk satu per satu perangkat yang pernah kami miliki bersama pasangan, dan benar-benar seru melihatnya lagi
    • Saya masih punya Visor dengan modul VisorPhone. Bisa dibilang itu smartphone sentuh-saja pertama yang mendahului iPhone 5 tahun :)
      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

    • Kalau memakai Win32 API secara langsung, Windows juga masih seperti 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
    • Saya rasa cara seperti itu juga mirip dengan Windows 16-bit atau classic Mac OS
      Untuk melakukan multitasking di sistem tanpa MMU, sepertinya defragmentasi heap saat runtime hampir wajib dilakukan
    • Hardware modern punya RAM dalam hitungan gigabyte, jadi implementasi seperti itu sangat mudah dibandingkan 2MB pada Palm Pilot III
      Cukup pakai malloc, jangan pindahkan memorinya, dan jadikan lock serta unlock blok seperti itu sebagai operasi yang tidak melakukan apa-apa
      Kalau 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
    • Keuntungan hardware modern adalah kita tidak terlalu dibatasi memori
      API yang kompleks bisa diimplementasikan dengan bongkahan memori sebesar yang diinginkan, dan kapasitas seperti 128MB RAM tergolong sangat kecil menurut standar sekarang
    • Saya sangat menyukai game-game Palm. Mobile game pada masa itu adalah yang terbaik, dan game modern sama sekali tidak bisa dibandingkan
  • 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

  • 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 pernah bekerja bersama Peter Spronck dan membuat konten tambahan terakhir serta beberapa quest untuk Space Trader. Misalnya hal-hal seperti The Scarab
      Saya rindu masa itu
    • Di garasi saya ada dua Palm Vx. Saya juga sangat suka game 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 masih merindukan aplikasi kalender dan kontak Palm
      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
    • Kalau semuanya dijalankan lewat Wasm, aplikasi Palm bisa dijalankan di mana saja
      Itu akan mirip dengan orang-orang yang serius menjalankan aplikasi DOS di dalam halaman web
    • Graffiti bisa digunakan
      https://play.google.com/store/apps/details?id=com.access_com...
    • Karena memakai SDL, porting sepertinya akan mudah
  • 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

    • Palm punya lini Treo
      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
    • Salah satu masalah besar adalah Palm dipecah menjadi perusahaan software PalmSource dan perusahaan hardware Palm One
      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
    • Saya dengar operator seluler juga ikut bertanggung jawab. Pada awalnya, operator bahkan enggan menangani lini Treo kecuali mereka membatasi apa yang bisa dilakukan Handspring dengan Treo
      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
    • Saya memakai seluruh lini smartphone Handspring/Palm: Visor + Visor Phone, Treo 270, Treo 600, Treo 650, hingga terakhir Palm Pré
      Memang bukan iPhone, tetapi sebagai alat kerja sangat efisien
    • Saya tertawa melihat lisensi GPL di sini. Rasanya sulit melihat ada risiko komersialisasi
  • 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

    • Menurut README, ini berjalan native di ARM, tetapi tampaknya lebih mirip program daripada OS
      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...
    • Akan bagus kalau OS mobile modern mendapat lebih banyak upaya optimasi dan stabilisasi
  • 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

    • Cloudpilot luar biasa. Itu salah satu PWA paling canggih yang saya tahu
      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

    • Kedengarannya seperti orang yang dulu pernah bekerja dengan saya
      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?

    • Daya tahan baterai berminggu-minggu, desain aplikasi yang lebih sederhana, tombol page up/down yang saya rindukan