- PumpkinOS x86, ARM जैसी आधुनिक आर्किटेक्चर पर चलने वाला PalmOS का पुनः-इम्प्लिमेंटेशन है, और यह PalmOS ROM के बिना m68K PalmOS एप्लिकेशन चला सकता है
- डिफ़ॉल्ट रूप से चलने वाला ऐप Launcher है, Preferences में आगे चलकर सेटिंग विकल्प दिए जाएंगे, और Command अभी एक प्रयोगात्मक command shell के रूप में उपलब्ध है
- इस रिलीज़ में PalmOS के 4 PIM ऐप AddressBook, MemoPad, ToDoList, DateBook शामिल हैं, और PalmOS SDK में वितरित source code को PumpkinOS पर compile होने लायक संशोधित किया गया है
- AddressBook और MemoPad के record, PalmOS के समकक्ष ऐप्स के साथ compatible लगते हैं, लेकिन word size और endianness के अंतर की वजह से ToDoList और DateBook के record compatible नहीं हैं
- पूरा प्रोजेक्ट अभी प्रयोगात्मक चरण में है, कुछ फीचर्स का बिल्कुल परीक्षण नहीं हुआ है, और Emscripten build में software rendering, ज़्यादा CPU उपयोग, और browser freeze जैसी समस्याएँ हो सकती हैं
PumpkinOS का लक्ष्य और दायरा
- PumpkinOS आधुनिक आर्किटेक्चर पर PalmOS को दोबारा लागू करने वाला प्रोजेक्ट है
- लक्षित आर्किटेक्चर में x86, ARM आदि शामिल हैं
- सामान्य PalmOS emulator से अलग, इसमें PalmOS ROM की आवश्यकता नहीं होती
- यह m68K PalmOS एप्लिकेशन चला सकता है
- PumpkinOS के अलग-अलग पहलुओं पर लेखों का संग्रह WordPress PalmOS category में देखा जा सकता है
बुनियादी एप्लिकेशन और वर्तमान स्थिति
- Launcher वह ऐप है जो PumpkinOS शुरू होने पर सबसे पहले चलता है
- यह अन्य एप्लिकेशन शुरू करने के लिए एक panel दिखाता है
- Preferences में लंबे समय में PumpkinOS के setting options शामिल किए जाने की योजना है
- Command एक command shell है और अभी प्रयोगात्मक है
शामिल PalmOS PIM ऐप्स
- इस रिलीज़ में PalmOS के 4 PIM ऐप शामिल हैं
- AddressBook
- MemoPad
- ToDoList
- DateBook
- इन ऐप्स का source code एक या अधिक PalmOS SDK में वितरित किया गया था, और इसे PumpkinOS पर सही तरह compile होने के लिए संशोधित किया गया है
- record compatibility हर ऐप में अलग है
- AddressBook और MemoPad में बनाए गए record, PalmOS के समकक्ष ऐप्स के साथ compatible लगते हैं
- ToDoList और DateBook में बनाए गए record, word size और endianness के अंतर की वजह से compatible नहीं हैं
- परीक्षण का दायरा सीमित है
- सिर्फ़ कुछ record बनाकर और संपादित करके देखने तक ही परीक्षण किया गया है
- अभी भी कुछ व्यवहार संबंधी असामान्यताएँ हैं
- कुछ फीचर्स का बिल्कुल परीक्षण नहीं हुआ है
- मौजूदा लक्ष्य PumpkinOS के भविष्य के स्वरूप की एक झलक दिखाना है
लाइसेंस
- PumpkinOS GPL v3 के तहत licensed है
license directory में PumpkinOS में उपयोग किए गए विभिन्न components की अलग-अलग license जानकारी शामिल है
- यदि कोई license जानकारी छूटी हो या गलत हो, तो इसकी सूचना देने को कहा गया है
build करने का तरीका
- PumpkinOS को source से build करना होगा
- IDE की आवश्यकता नहीं है
- command line से build किया जा सकता है
-
Windows, Linux, WSL2
- 64-बिट Windows पर MSYS2 का उपयोग किया जा सकता है
- MINGW64 terminal में अतिरिक्त packages install करें
pacman -S gcc binutils make git
- 64-बिट Linux आधारित OS पर
gcc, binutils, make, git की आवश्यकता है
- Linux पर SDL2 development package भी install करना होगा
- Debian आधारित सिस्टम पर यह command उपयोग करें
sudo apt install gcc binutils make git libsdl2-dev
- Windows 11 और नवीनतम Windows 10 पर WSL2 में भी build किया जा सकता है
- WSL2 terminal में Linux build निर्देशों का पालन करें
-
सामान्य build प्रक्रिया
git clone https://github.com/migueletto/PumpkinOS.git
- source directory में जाएँ और
make चलाएँ
cd PumpkinOS/src
make
- build सफल होने पर ये output बनते हैं
- root directory में
pumpkin executable
bin directory में dynamic libraries
vfs/app_install directory में PRC files
Emscripten build और web पर चलाना
- प्रयोगात्मक रूप से Emscripten का उपयोग करके build किया जा सकता है
- Emscripten install करने का तरीका README के दायरे से बाहर है
cd PumpkinOS/src
make OSNAME=Emscripten
- यह command
src/emscripten folder के अंदर pumpkin.zip बनाती है
- इस zip file में web server पर PumpkinOS deploy करने के लिए ज़रूरी files शामिल हैं
- यदि Linux के मानक
apache2 web server का उपयोग कर रहे हों, तो एक उदाहरण प्रक्रिया यह है
/var/www/html/pumpkin folder बनाएँ
- zip file को उस folder में extract करें
- local server पर browser में
/pumpkin/pumpkin.html खोलने पर PumpkinOS दिख सकता है
- Emscripten source directory में Python web server चलाने का तरीका भी है
cd PumpkinOS/src/emscripten
python3 -m http.server 8080
- यह build अभी बहुत प्रयोगात्मक है और कुछ सीमाएँ हैं
- OS, browser, और GPU integration की स्थिति के अनुसार अप्रत्याशित रूप से software rendering पर fallback हो सकता है
- ज़्यादा CPU उपयोग और browser freeze हो सकता है
- browser को private mode में चलाने पर एप्लिकेशन नहीं चलता
- localhost के अलावा किसी server पर HTTPS की जगह HTTP से पहुँचने पर यह load नहीं होता
चलाना, install करना, debugging
- 64-बिट Windows पर
pumpkin.bat चलाएँ
- Linux या WSL2 पर
pumpkin.sh चलाएँ
- चलाने पर PumpkinOS नई window में खुलेगा
- चलाने के समय
vfs/app_install के अंदर की सभी PRC फाइलें हटा दी जाती हैं और vfs/app_storage के अंदर के फ़ोल्डर में विस्तारित कर दी जाती हैं
- मौजूदा चरण कुल मिलाकर प्रयोगात्मक है, इसलिए कई समस्याएँ हो सकती हैं
- चलना सफल हो या नहीं, root directory में
pumpkin.log file बनती है
- समस्या होने पर इस file के तीसरे column में
"E" से चिह्नित पंक्तियाँ देखें
- प्रश्नों के साथ log file भेजने का भी स्वागत है
- PumpkinOS Drag & Drop को support करता है
- PalmOS PRC file को window पर drag & drop करने से वह install हो जाती है और Launcher में दिखती है
- PRC को सीधे
vfs/app_install directory में copy करके PumpkinOS को फिर से शुरू भी किया जा सकता है
- चाहें तो Windows, Linux, WSL2 पर
gdb से debugging की जा सकती है
- Windows पर
pumpkin.bat की आख़िरी पंक्ति को इस तरह बदलें
gdb.exe --args .\\pumpkin.exe -d 1 -f pumpkin.log -s libscriptlua .\\script\\pumpkin.lua
- Linux और WSL2 पर
pumpkin.sh की आख़िरी पंक्ति को इस तरह बदलें
gdb --args ./pumpkin -d 1 -f pumpkin.log -s libscriptlua ./script/pumpkin.lua
1 टिप्पणियां
Hacker News की राय
Mountain View के Computer History Museum गया था और डिस्प्ले केस के अंदर Palm Pilot देखकर एकदम से बूढ़ा महसूस हुआ
कोई चीज़ जो मुश्किल से 30 साल पहले मेरी ज़िंदगी का अहम हिस्सा थी, उसे ऐसे प्रदर्शित करना जैसे वह किसी प्राचीन सभ्यता के खंडहरों से निकाली गई हो, गैरकानूनी होना चाहिए। यह बहुत ही नाइंसाफ़ी है
मैंने उस समय अपने बॉस से कहा था कि वह मुझे यह दिला दें, और उन्होंने सच में दिला भी दिया, लेकिन साथ ही कहा, “क्या तुम अभी अपनी ज़िंदगी और प्रोजेक्ट्स को व्यवस्थित करने के लिए कुछ इस्तेमाल कर रहे हो? अगर नहीं, तो शायद PalmPilot भी मदद नहीं करेगा”
वह बिल्कुल सही थे
मेरे दिमाग़ के किसी कोने में अब भी एक अनसुलझे ट्रॉमा जैसा हिस्सा है जो किशोरावस्था के दिनों से Dreamcast की बड़ी वापसी का इंतज़ार कर रहा है
अपने पार्टनर के साथ वहाँ उन डिवाइसों की ओर इशारा करना जिन्हें हमने कभी own किया था, बहुत मज़ेदार है, और उन्हें फिर से देखना सच में अच्छा लगता है
वह बड़ा, बेढंगा और काफ़ी impractical था, लेकिन Palm Desktop के साथ पूरी तरह integrated अनुभव बेहद smooth था। बाद में मैंने Linux पर jPilot इस्तेमाल किया
PumpkinOS प्रोजेक्ट वाकई कमाल का है। यह कल्पना करना भी मुश्किल है कि सामान्य Palm apps जिन सभी system calls की उम्मीद करते हैं, उनके साथ compatible बनाने में कितना काम लगा होगा
मुझे याद है कि Palm memory handling के साथ काफ़ी अजीब चीज़ें करता था। थोड़ा भी बड़ा data ऐसे special memory blocks में रखना पड़ता था जिन्हें OS अपनी मर्ज़ी से relocate कर सकता था, और access के दौरान उन्हें स्थिर रखने के लिए उस block के handle को lock करना पड़ता था
ऐसी चीज़ों को PumpkinOS में implement करना कठिन भी रहा होगा और मज़ेदार भी। मैंने पहले Palm OS के लिए छोटे games बनाए थे, और उस समय Palm OS Development Suite के साथ programs बनाने की सुविधा देने वाले अगले OS version का सच में इंतज़ार कर रहा था
यह आख़िरी OS भी था जिसमें app के अंदर central event loop होता था। आजकल UI frameworks यह सब अपने आप संभाल लेते हैं। अब चीज़ें आसान हैं, लेकिन फिर भी वह तरीका याद आता है
अब तक बने लगभग सभी GUI toolkits अंततः इसी संरचना पर आधारित हैं, लेकिन ज़्यादातर modern toolkits में यह queue और loop अंदर छिपे रहते हैं, इसलिए उनकी मौजूदगी का पता आम तौर पर तभी चलता है जब आप debugger stack देखें या कुछ crash हो जाए
MMU के बिना सिस्टम में multitasking करनी हो, तो लगता है कि रनटाइम पर heap defragmentation लगभग अनिवार्य रही होगी
बस
mallocका इस्तेमाल कीजिए, memory को move मत कीजिए, और ऐसे blocks के lock/unlock को no-op बना दीजिएअगर lock state जाँचने के लिए कोई OS call है, तो उसे कहीं store करना होगा, लेकिन वह भी मुश्किल नहीं है। उस ज़माने के तरीके को वैसा का वैसा implement करना कठिन कम है, इस्तेमाल करने वालों के लिए जटिल ज़्यादा है
आप जितने चाहें उतने बड़े memory chunks के साथ complex APIs implement कर सकते हैं, और 128MB RAM जैसी capacity आज के हिसाब से बहुत छोटी मानी जाती है
साथ में देखने लायक एक और प्रोजेक्ट rePalm भी है। यह RP2040 जैसे ARM microcontrollers पर PalmOS चलाने का प्रोजेक्ट है: http://dmitry.gr/?r=05.Projects&proj=27.%20rePalm
PumpkinOS / 3 साल पहले | 52 टिप्पणियाँ
https://news.ycombinator.com/item?id=28466858
rePalm से जुड़ी चर्चा:
Raspberry Pi पर PalmOS, 10 सितंबर 2021 को Tijdreiziger द्वारा पोस्ट, 169 points | 86 टिप्पणियाँ
https://news.ycombinator.com/item?id=28487817
Space Trader खेलते हुए कई घंटे गँवाने का सोचकर ही उत्साह हो रहा है
मिडिल स्कूल में मेरे पास Palm Vx था, और क्लास के दौरान डेस्क के नीचे वह game खेलने की अच्छी यादें हैं
वह दौर याद आता है
यह शीर्षक पढ़कर दिल की धड़कन तेज़ हो गई। काश इसे Android पर चलने लायक बनाया जाए ताकि मैं अपने primary phone को “replace” कर सकूँ और उन बेहतर दिनों में लौट सकूँ
मैं Centro तक Palm इस्तेमाल करता रहा, और उसके बाद से मुझे Palm version जितने पसंद आने वाले contacts/calendar apps नहीं मिले। या तो वे बहुत साधारण होते हैं और बुनियादी features गायब रहते हैं, या फिर उनका UI बेवजह जटिल होता है
यह कुछ वैसा ही होगा जैसे लोग गंभीरता से web pages के भीतर DOS apps चलाते हैं
https://play.google.com/store/apps/details?id=com.access_com...
मैंने पहले इसमें निवेश किया था क्योंकि मुझे लगता था कि Palm आखिरकार iPhone जैसी कोई चीज़ बनाएगा
अफ़सोस कि Palm ऐसा नहीं कर पाया, और जब Apple ने कर दिखाया तब तक Palm खत्म हो चुका था
अंततः यह भी कहा जा सकता है कि Palm को गिराने वाली चीज़ उसकी शुरुआती सफलता और shareware/freeware tools का विशाल ecosystem था
Palm OS अपनी उम्र दिखाने लगा था, क्योंकि वह single-threaded, RAM-resident, virtual memory के बिना चलने वाला OS था, इसलिए कुछ नया करना ज़रूरी था, लेकिन ऐसा करने पर पुराने fans, जो मौजूदा software library पर निर्भर थे, उनसे दूरी बनना तय था
वह chicken-and-egg समस्या कभी हल नहीं हो पाई, और OS तथा hardware का अलगाव, Handspring जैसी spin-off, फिर दोबारा merger—इनमें से किसी ने भी मदद नहीं की। Cobalt OS कभी किसी असली device में नहीं आया, और Pre एक महत्वाकांक्षी नई शुरुआत थी, लेकिन अगर वह पहले भी आ जाता, तब भी iPhone से लड़ना मुश्किल होता
PalmSource ने Linux-आधारित OS डिज़ाइन किया, फिर उसका अधिग्रहण हो गया और वह गायब हो गया, जबकि Palm One ने फिर से अपना नाम Palm रखा और PalmOS-आधारित शुरुआती smartphone बनाए
लेकिन तब तक PalmOS काफ़ी पुराना पड़ चुका था, और हालत यह थी कि 32-bit OS पर 16-bit apps चल रहे थे
बाद में Palm ने webOS बनाया, लेकिन कुछ अजीब hardware फ़ैसले किए और iPhone तथा Android से मुकाबला नहीं कर पाया। फिर भी वह Blackberry या Nokia से बेहतर प्रतिस्पर्धी बन सकता था, जो capacitive screens की ओर बदलाव में असफल रहे
Palm की समस्या यह थी कि वह बहुत देर कर चुका था, लेकिन अगर विभाजन नहीं हुआ होता और PalmOS का उत्तराधिकारी बनाया गया होता, तब भी शायद capacitive smartphones की लहर छूट ही जाती
Apple के पास iPod था, और उससे भी अहम बात, उसके पास ग्राहक थे। Apple इन ग्राहकों को carriers तक ले जा सकता था, इसलिए वह ज़्यादा शर्तें मनवा सकता था
https://www.youtube.com/watch?v=b9_Vh9h3Ohw में मैं जिस हिस्से की बात कर रहा हूँ, वह लगभग 20 मिनट के आसपास है
वह iPhone नहीं था, लेकिन काम के tool के रूप में बेहद असरदार था
इसे modern phone hardware, या कम से कम एक पीढ़ी पुराने phone hardware पर चलाने के लिए क्या चाहिए होगा?
लगता है इससे बहुत सादगी और बेतुकी हद तक लंबी battery life के साथ हमारी ज़रूरत की ज़्यादातर चीज़ें की जा सकती हैं। शायद यह PinePhone को भी Rolls Royce जैसा महसूस करा दे
अगर GUI code को हर platform framework के हिसाब से फिर से लिखा जाए, तो शायद इसे Android या iOS पर चलने लायक अपडेट किया जा सकता है, लेकिन इसे bootable OS बनाना ज़्यादा मुश्किल लगता है
लेखक ने पिछले साल minimal x86 kernel और QEMU के साथ इसे bootable OS बनाने पर एक पोस्ट लिखी थी, इसलिए लगता है कि उसे ARM devices के लिए भी फिर से इस्तेमाल किया जा सकता है [1]
https://pmig96.wordpress.com/2023/02/24/pumpkinos-busybox-an...
साथ में देखने लायक एक और चीज़ browser में चलने वाला Palm emulator CloudpilotEmu है
https://cloudpilot-emu.github.io/
जब मैंने इसे install करके फिर से Vexed खेला, तो सच में बहुत खुश हुआ
Vexed के बारे में नहीं सुना, लेकिन मेरे लिए Space Trader का वापस आना सच में बहुत खुशी की बात थी
Palm phone युग की शुरुआत से ही मैं Sprint का ग्राहक था
दो साल पहले तक भी मैं एक color Treo को फोन की तरह इस्तेमाल कर रहा था, और उसका physical keyboard वाकई बहुत अच्छा था। मेरी उंगलियाँ थोड़ी विकृत हैं, इसलिए touchscreen मुश्किल लगती है
T-Mobile के साथ merger के बाद wireless service वाला हिस्सा बंद हो गया, और उसका गायब हो जाना बहुत खला
iPhone आए लगभग 6 महीने हो चुके थे और Android phones भी आ चुके थे, तब कहा जाता था कि Pre “iPhone killer” है
विभाग के पहले iPhone user को Pre की कुछ ऐसी खूबियाँ दिखाने के बाद, जो तुलना में बहुत बड़ी बात नहीं थीं, मैंने कहा था कि Palm के लाखों users मेरा पक्ष साबित कर देंगे
और उन्होंने सच में अच्छी तरह साबित किया
अच्छा है कि यह project मौजूद है, क्योंकि इससे ऐसे software की उम्र बढ़ती है जिन्हें शायद दोबारा चलाने का मौका कभी नहीं मिलता
लेकिन मुझे जिज्ञासा है कि यह nostalgia की वजह से है, या उस software की सचमुच कोई ज़रूरत या इच्छा आज भी है
Palm, Blackberry, Psion को मिस करने वाली बातें बहुत सुनने को मिलती हैं, लेकिन क्या हम सच में, खास इस्तेमालों से बाहर भी, पुराने दौर में लौटना चाहते हैं? मुझे पता है कि IMAX को stack के कुछ हिस्से चलाने के लिए Palm emulator चाहिए
“modern” Psion 5 खोजते हुए मैंने देखा कि उस टीम के कुछ लोगों ने Android-आधारित Gemini PDA बनाया था। कुछ reviewers ने इसी बात को साफ़ तौर पर इसकी कमी माना
अगर modern connectivity को support करने वाला नया EPOC OS होता, तो इनके लिए वह निश्चित रूप से सफल दिखता, लेकिन सोचने पर लगा कि मैं शायद उस पर भी ज़्यादातर Linux ही चलाता। बशर्ते UK keyboard वाला नया unit कहीं stock में मिल जाए
लेकिन क्या हम सच में वही चाहते हैं? पिछले 20 से अधिक सालों में बहुत प्रगति हुई है, और ज़्यादातर लोगों को अगर रोज़मर्रा के इस्तेमाल के लिए Android या iOS की जगह PalmOS दे दिया जाए, तो वे शायद एक हफ्ते के भीतर झुंझलाकर उसे लौटा दें
ऐसा कौन-सा killer feature होगा जो इस आकलन को ग़लत साबित कर दे?