- PumpkinOS, x86, ARM gibi modern mimarilerde çalışan bir PalmOS yeniden uygulaması ve PalmOS ROM’u olmadan m68K PalmOS uygulamalarını çalıştırabiliyor
- Varsayılan çalışan uygulama Launcher; Preferences gelecekte ayar seçeneklerini barındıracak ve Command ise şimdilik deneysel bir komut kabuğu olarak sunuluyor
- Bu sürüm, PalmOS’un 4 PIM uygulamasını içeriyor: AddressBook, MemoPad, ToDoList, DateBook; PalmOS SDK ile dağıtılmış kaynak kodları PumpkinOS’ta derlenecek şekilde düzenlenmiş
- AddressBook ve MemoPad kayıtları PalmOS’taki karşılık gelen uygulamalarla uyumlu görünüyor; ancak word size ve endianness farkları nedeniyle ToDoList ve DateBook kayıtları uyumlu değil
- Projenin tamamı hâlâ deneysel aşamada; bazı özellikler hiç test edilmedi ve Emscripten derlemelerinde yazılım tabanlı render, yüksek CPU kullanımı ve tarayıcı kilitlenmesi gibi sorunlar görülebilir
PumpkinOS’un hedefi ve kapsamı
- PumpkinOS, PalmOS’u modern mimariler üzerinde yeniden uygulayan bir proje
- Hedef mimariler arasında x86, ARM ve benzerleri yer alıyor
- Tipik PalmOS emülatörlerinden farklı olarak PalmOS ROM’u gerektirmiyor
- m68K PalmOS uygulamalarını çalıştırabiliyor
- PumpkinOS’un çeşitli yönlerini ele alan yazı dizisi WordPress PalmOS kategorisi altında görülebilir
Temel uygulamalar ve mevcut durum
- Launcher, PumpkinOS başladığında ilk çalışan uygulama
- Diğer uygulamaları başlatabileceğiniz bir panel gösteriyor
- Preferences, uzun vadede PumpkinOS ayar seçeneklerini barındıracak
- Command, bir komut kabuğu ve hâlâ deneysel
Dahil edilen PalmOS PIM uygulamaları
- Bu sürüm, PalmOS’un 4 PIM uygulamasını içeriyor
- AddressBook
- MemoPad
- ToDoList
- DateBook
- Bu uygulamaların kaynak kodları, bir veya daha fazla PalmOS SDK sürümüyle dağıtılmıştı ve PumpkinOS’ta doğru şekilde derlenecek biçimde düzenlendi
- Kayıt uyumluluğu uygulamaya göre değişiyor
- AddressBook ve MemoPad ile oluşturulan kayıtlar, PalmOS’taki karşılık gelen uygulamalarla uyumlu görünüyor
- ToDoList ve DateBook ile oluşturulan kayıtlar, word size ve endianness farkları nedeniyle uyumlu değil
- Test kapsamı sınırlı
- Yalnızca birkaç kayıt oluşturma ve düzenleme seviyesine kadar test edildi
- Hâlâ bazı anormal davranışlar var
- Bazı özellikler hiç test edilmedi
- Şimdiki amaç, PumpkinOS’un gelecekte alacağı hâli önceden göstermek
Lisans
- PumpkinOS, GPL v3 ile lisanslanmış
license dizini, PumpkinOS’ta kullanılan çeşitli bileşenlerin ayrı lisans bilgilerini içeriyor
- Eksik ya da hatalı lisans bilgisi varsa bildirilmesi isteniyor
Derleme yöntemi
- PumpkinOS’un kaynak koddan derlenmesi gerekiyor
- IDE gerekmiyor
- Komut satırından derlenebiliyor
-
Windows, Linux, WSL2
- 64 bit Windows’ta MSYS2 kullanılabilir
- MINGW64 terminalinde ek paketler kurulur
pacman -S gcc binutils make git
- 64 bit Linux tabanlı işletim sistemlerinde
gcc, binutils, make, git gerekiyor
- Linux’ta ayrıca SDL2 geliştirme paketi de kurulmalı
- Debian tabanlı sistemlerde şu komut kullanılır
sudo apt install gcc binutils make git libsdl2-dev
- Windows 11 ve güncel Windows 10 sürümlerinde WSL2 üzerinde de derlenebilir
- WSL2 terminalinde Linux derleme talimatları izlenebilir
-
Ortak derleme adımları
git clone https://github.com/migueletto/PumpkinOS.git
- Kaynak dizinine geçip
make çalıştırın
cd PumpkinOS/src
make
- Derleme başarılı olursa şu çıktılar oluşur
- Kök dizinde
pumpkin çalıştırılabilir dosyası
bin dizininde dinamik kütüphaneler
vfs/app_install dizininde PRC dosyaları
Emscripten derlemesi ve web’de çalıştırma
- Deneysel olarak Emscripten ile derleme yapılabiliyor
- Emscripten kurulumu README kapsamı dışında
cd PumpkinOS/src
make OSNAME=Emscripten
- Bu komut,
src/emscripten klasörü içinde pumpkin.zip oluşturur
- Bu zip dosyası, PumpkinOS’u bir web sunucusunda dağıtmak için gereken dosyaları içerir
- Linux’un standart
apache2 web sunucusu kullanılıyorsa örnek adımlar şöyle
/var/www/html/pumpkin klasörünü oluşturun
- Zip dosyasını bu klasöre çıkarın
- Yerel sunucuda tarayıcıyı
/pumpkin/pumpkin.html adresiyle açarsanız PumpkinOS görüntülenebilir
- Emscripten kaynak dizininde Python web sunucusu çalıştırma seçeneği de var
cd PumpkinOS/src/emscripten
python3 -m http.server 8080
- Bu derleme hâlâ oldukça deneysel ve bazı kısıtları var
- OS, tarayıcı ve GPU entegrasyon durumuna göre beklenmedik şekilde yazılım tabanlı render moduna düşebilir
- Yüksek CPU kullanımı ve tarayıcı kilitlenmeleri yaşanabilir
- Tarayıcı private mode’da çalıştırılırsa uygulama açılmaz
- localhost dışındaki bir sunucuya HTTPS yerine HTTP ile erişilirse yüklenmez
Çalıştırma, kurulum, hata ayıklama
- 64 bit Windows’ta
pumpkin.bat çalıştırılır
- Linux veya WSL2’de
pumpkin.sh çalıştırılır
- Çalıştırıldığında PumpkinOS yeni bir pencerede açılır
- Başlatma sırasında
vfs/app_install içindeki tüm PRC’ler kaldırılır ve vfs/app_storage içindeki klasöre açılır
- Mevcut aşama genel olarak deneysel olduğu için çeşitli sorunlar olabilir
- Çalıştırma başarılı olsun ya da olmasın, kök dizinde
pumpkin.log dosyası oluşturulur
- Sorun çıkarsa bu dosyada üçüncü sütununda
"E" bulunan satırları kontrol edin
- Soru ve log dosyasının iletilebileceği belirtiliyor
- PumpkinOS, Drag & Drop desteği sunuyor
- Bir PalmOS PRC dosyasını pencerenin üzerine sürükleyip bırakırsanız kurulur ve Launcher’da görünür
- İsterseniz PRC’yi doğrudan
vfs/app_install dizinine kopyalayıp PumpkinOS’u yeniden başlatabilirsiniz
- İstenirse Windows, Linux ve WSL2 üzerinde
gdb ile hata ayıklama yapılabilir
- Windows’ta
pumpkin.bat dosyasının son satırı şöyle değiştirilir
gdb.exe --args .\pumpkin.exe -d 1 -f pumpkin.log -s libscriptlua .\script\pumpkin.lua
- Linux ve WSL2’de
pumpkin.sh dosyasının son satırı şöyle değiştirilir
gdb --args ./pumpkin -d 1 -f pumpkin.log -s libscriptlua ./script/pumpkin.lua
1 yorum
Hacker News yorumları
Mountain View'daki Computer History Museum'a gidip sergi vitrinindeki Palm Pilot'ı görünce birden yaşlandığımı hissettim
Daha 30 yıl kadar önce hayatımın önemli bir parçası olan bir şeyi, antik bir uygarlığın kalıntılarından çıkarılmış gibi sergilemek yasak olmalı. Çok haksızlık
O zamanlar patronumdan bana bir tane almasını istemiştim, gerçekten de aldı; ama patronum “Şu an hayatını ve projeni düzenlemek için bir şey kullanıyor musun? Kullanmıyorsan PalmPilot da yardımcı olmaz gibi geliyor” demişti
Gerçekten de haklıydı
Beynimin bir köşesinde, ergenlik yıllarımdaki Dreamcast'in büyük bir geri dönüş yapmasını hâlâ bekleyen, çözülmemiş bir travma gibi duran bir parça var
Partnerimle birlikte o zamana kadar sahip olduğumuz cihazları tek tek işaret etmek çok eğlenceli; onları yeniden görmek gerçekten keyifli
Büyük, kaba ve oldukça kullanışsızdı; ama Palm Desktop ile tamamen entegre deneyim çok akıcıydı. Sonraları Linux'ta jPilot kullandım
PumpkinOS projesi gerçekten inanılmaz. Sıradan bir Palm uygulamasının beklediği tüm sistem çağrılarıyla uyumlu hâle getirmek için ne kadar emek gerekmiş olabileceğini hayal edemiyorum
Palm'ın bellek yönetiminde epey tuhaf şeyler yaptığını hatırlıyorum. Biraz büyük verileri, işletim sisteminin istediği gibi yeniden konumlandırabildiği özel bellek bloklarına koymak gerekiyordu; erişim sırasında sabit kalmalarını sağlamak için de o bloğun handle'ını kilitlemek gerekirdi
Bunları PumpkinOS'ta uygulamak zor ve bir o kadar da eğlenceli olmuş olmalı. Eskiden Palm OS için küçük oyunlar yapmıştım; o dönemde yeni çıkan Palm OS Development Suite ile program geliştirmeyi mümkün kılacak bir sonraki OS sürümünü gerçekten sabırsızlıkla bekliyordum
Uygulamalarda merkezi olay döngüsü olan son OS'lerden biriydi de. Günümüzde UI framework'leri her şeyi bizim yerimize hallediyor. Şimdi daha kolay, ama yine de o yöntemi özlüyorum
Bugüne kadar yapılmış tüm GUI toolkit'leri eninde sonunda bu yapıya dayanır; ama modern toolkit'lerin çoğunda bu kuyruk ve döngü içerde saklıdır, varlığını ancak debugger stack'ine baktığınızda ya da bir şey çöktüğünde sezebilirsiniz
MMU olmayan bir sistemde çoklu görev yapmak için, çalışma sırasında heap parçalarını birleştirmek neredeyse şart olmuş olmalı
Sadece
mallockullanır, belleği taşımaz, bu tür blokları kilitleme ve serbest bırakma işlemlerini hiçbir şey yapmayan işlemler hâline getirirsinizKilit durumunu kontrol eden bir OS çağrısı varsa bunu bir yerde saklamak gerekir, ama o da zor değil. O dönemdeki yöntemi birebir uygulamak da zor olmaktan çok, kullanan tarafı karmaşıklaştıran bir şey
İstediğiniz kadar büyük bellek parçalarıyla karmaşık bir API'yi uygulayabilirsiniz; 128MB RAM gibi bir kapasite bugünün ölçülerine göre çok küçük
Birlikte bakmaya değer bir proje de rePalm. RP2040 gibi ARM mikrodenetleyiciler üzerinde PalmOS çalıştıran bir proje: http://dmitry.gr/?r=05.Projects&proj=27.%20rePalm
PumpkinOS / 3 yıl önce | 52 yorum
https://news.ycombinator.com/item?id=28466858
rePalm ile ilgili tartışma:
Raspberry Pi üzerinde PalmOS, 10 Eylül 2021'de Tijdreiziger tarafından gönderildi, 169 puan | 86 yorum
https://news.ycombinator.com/item?id=28487817
Space Trader oynayarak saatlerimi harcama fikrine şimdiden heyecanlanıyorum
Ortaokuldayken bir Palm Vx'im vardı; ders sırasında sıranın altında o oyunu oynadığıma dair güzel anılarım var
O günleri özlüyorum
Bu başlığı okuyunca kalbim hızlandı. Android'de çalışır hâle getirip ana telefonumu “değiştirmek” ve daha güzel zamanlara dönmek istiyorum
Centro'ya kadar Palm kullanmaya devam ettim; ondan sonra Palm sürümü kadar hoşuma giden bir kişiler/takvim uygulaması bulamadım. Ya basit ve temel özellikler eksik oluyor ya da UI gereksiz yere karmaşık
İnsanların web sayfası içinde ciddi ciddi DOS uygulamaları çalıştırmasına benzer bir şey olur
https://play.google.com/store/apps/details?id=com.access_com...
Eskiden Palm’ın eninde sonunda iPhone benzeri bir şey yapacağını düşünerek yatırım yapmıştım
Ne yazık ki Palm bunu başaramadı; Apple başardığında ise Palm’ın işi bitmişti
Sonunda Palm’ı yıkan şeyin ilk başarısı ve dev shareware/freeware araç ekosistemi olduğu da söylenebilir
Palm OS tek iş parçacıklı, RAM’de yerleşik çalışan, sanal belleği olmayan bir işletim sistemi olarak yaşını belli ediyordu; bu yüzden yeni bir şey denemesi gerekiyordu ama bunu yapmak, mevcut yazılım kitaplığını kullanan eski hayranları kaçınılmaz olarak dışlayacaktı
Bu tavuk-yumurta sorununu hiçbir zaman çözemedi; işletim sistemi ile donanımın ayrılması, Handspring gibi bir şirketin ayrılması ve sonra yeniden birleşilmesi de yardımcı olmadı. Cobalt OS gerçek cihazlara hiç giremedi; Pre ise iddialı bir yeni başlangıçtı ama daha erken çıksaydı bile iPhone’la mücadele etmesi zor olurdu
PalmSource Linux tabanlı bir işletim sistemi tasarlarken satın alındı ve ortadan kayboldu; Palm One ise yeniden Palm adını aldıktan sonra PalmOS tabanlı ilk akıllı telefonları yaptı
Ama o sırada PalmOS zaten epey eskimişti ve 32 bit bir işletim sistemi üzerinde 16 bit uygulamalar çalıştırıyordu
Daha sonra Palm webOS’u yaptı, ama tuhaf donanım kararları aldı ve iPhone ile Android’le rekabet edemedi. Yine de kapasitif ekrana geçişte başarısız olan Blackberry veya Nokia’ya kıyasla bir rakip olabilirdi
Palm’ın sorunu çok geç kalmış olmasıydı; ama ayrılmadan PalmOS’un devamını geliştirmiş olsaydı, kapasitif akıllı telefon dalgasını yine kaçıracakmış gibi görünüyor
Apple’ın iPod’u vardı ve daha önemlisi müşterileri vardı. Apple bu müşterileri operatörlere götürebildiği için daha fazla şeyi dikte edebiliyordu
https://www.youtube.com/watch?v=b9_Vh9h3Ohw adresinde bahsettiğim kısım yaklaşık 20. dakikada
iPhone değildi ama bir iş aracı olarak aşırı verimliydi
Bunu modern telefon donanımına, hatta bir önceki nesil telefon donanımına taşımak için ne gerekir?
Muazzam sadeliği ve akıl almaz pil ömrüyle istediğimiz şeylerin çoğunu yapabilecek gibi. Muhtemelen PinePhone’u bile Rolls Royce gibi hissettirebilir
GUI kodu her platformun framework’üyle yeniden yazılırsa Android veya iOS üzerinde çalışacak şekilde güncellenebilir gibi görünüyor; ancak önyüklenebilir bir işletim sistemi yapmak daha zor görünüyor
Yazar geçen yıl minimal bir x86 çekirdeği ve QEMU kullanarak bunu önyüklenebilir bir işletim sistemi yapma üzerine bir yazı yazmıştı; ARM cihazları için de yeniden kullanılabilir gibi [1]
https://pmig96.wordpress.com/2023/02/24/pumpkinos-busybox-an...
Birlikte bakmaya değer bir diğer şey de tarayıcı içinde çalışan Palm emülatörü CloudpilotEmu
https://cloudpilot-emu.github.io/
Kurup Vexed’i yeniden oynayabildiğimde gerçekten mutlu olmuştum
Vexed’i duymamıştım ama benim için Space Trader’ın geri dönmesi gerçekten sevindiriciydi
Palm telefon dönemi başladığından beri Sprint müşterisiydim
İki yıl öncesine kadar renkli Treo’yu telefon olarak kullandım ve o fiziksel klavye gerçekten çok kullanışlıydı. Parmaklarım biraz deforme olduğu için dokunmatik ekran benim için zor
T-Mobile ile birleşme kablosuz iletişim tarafını kesti; yok olup gitmesine çok üzülüyorum
iPhone çıktıktan yaklaşık 6 ay sonra ve Android telefonlar da ortaya çıktığında, Pre’nin “iPhone katili” olduğunu söylemişti
Bölümdeki ilk iPhone kullanıcısına Pre’nin kıyaslandığında pek de etkileyici olmayan özelliklerini gösterdikten sonra, Palm’ın milyonlarca kullanıcısının bana göstereceğini söylemişti
Gerçekten de güzelce gösterdi
Bu projenin var olup bir daha çalışma şansı olmayacak yazılımların ömrünü uzatması iyi
Ama bunun nostalji yüzünden mi, yoksa o yazılıma yönelik gerçek bir ihtiyaç veya istek yüzünden mi olduğunu merak ediyorum
Palm, Blackberry ve Psion özlemiyle ilgili çok hikâye var; ama özel amaçların dışında gerçekten eskiye dönmek istiyor muyuz? IMAX’in yığınının bir kısmını çalıştırmak için Palm emülatörüne ihtiyaç duyduğunu biliyorum
“Modern” bir Psion 5 ararken, ilgili ekipten bazılarının Android tabanlı Gemini PDA’yı yaptığını gördüm. Bazı incelemeciler bunu açıkça bir dezavantaj olarak gördü
Modern bağlantıyı destekleyen yeni bir EPOC işletim sistemi olsaydı onlar için kesin bir başarı gibi görünürdü; ama düşününce ben onun üzerinde muhtemelen çoğunlukla Linux çalıştırırdım. Birleşik Krallık klavyeli yeni bir ürünü stokta bulabilirsem tabii
Peki gerçekten bunu istiyor muyuz? Son 20 yılı aşkın sürede çok ilerleme oldu ve çoğu kişiye günlük kullanım için Android veya iOS yerine PalmOS verseniz, bir hafta içinde bunalıp geri verecek gibi
Bu yargıyı yanlış çıkaracak belirleyici özellik ne olurdu?