1 पॉइंट द्वारा GN⁺ 2024-04-08 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • 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 प्रक्रिया

    • repository clone करें
    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 टिप्पणियां

 
GN⁺ 2024-04-08
Hacker News की राय
  • Mountain View के Computer History Museum गया था और डिस्प्ले केस के अंदर Palm Pilot देखकर एकदम से बूढ़ा महसूस हुआ
    कोई चीज़ जो मुश्किल से 30 साल पहले मेरी ज़िंदगी का अहम हिस्सा थी, उसे ऐसे प्रदर्शित करना जैसे वह किसी प्राचीन सभ्यता के खंडहरों से निकाली गई हो, गैरकानूनी होना चाहिए। यह बहुत ही नाइंसाफ़ी है

    • मेरे पास अब भी अटारी के डिब्बे में मेरा असली PalmPilot रखा है। उसका होना ही जीवन का एक बड़ा सबक था
      मैंने उस समय अपने बॉस से कहा था कि वह मुझे यह दिला दें, और उन्होंने सच में दिला भी दिया, लेकिन साथ ही कहा, “क्या तुम अभी अपनी ज़िंदगी और प्रोजेक्ट्स को व्यवस्थित करने के लिए कुछ इस्तेमाल कर रहे हो? अगर नहीं, तो शायद PalmPilot भी मदद नहीं करेगा”
      वह बिल्कुल सही थे
    • कुछ महीने पहले Reddit पर मैंने एक पोस्ट देखी जिसमें किसी ने अपने दादाजी का पुराना Game Boy ढूंढ लिया था
    • Computer History Museum में Dreamcast भी प्रदर्शित है, और वह मुझे इससे भी ज़्यादा चुभा
      मेरे दिमाग़ के किसी कोने में अब भी एक अनसुलझे ट्रॉमा जैसा हिस्सा है जो किशोरावस्था के दिनों से Dreamcast की बड़ी वापसी का इंतज़ार कर रहा है
    • London के Science Museum में मोबाइल फ़ोन, कंप्यूटर और कंसोल का एक प्रदर्शनी कक्ष है
      अपने पार्टनर के साथ वहाँ उन डिवाइसों की ओर इशारा करना जिन्हें हमने कभी own किया था, बहुत मज़ेदार है, और उन्हें फिर से देखना सच में अच्छा लगता है
    • मेरे पास अब भी VisorPhone मॉड्यूल वाला Visor है। उसे iPhone से 5 साल पहले आया पहला touch-only smartphone माना जा सकता है :)
      वह बड़ा, बेढंगा और काफ़ी 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 यह सब अपने आप संभाल लेते हैं। अब चीज़ें आसान हैं, लेकिन फिर भी वह तरीका याद आता है

    • अगर आप सीधे Win32 API इस्तेमाल करें तो Windows अब भी ऐसा ही है
      अब तक बने लगभग सभी GUI toolkits अंततः इसी संरचना पर आधारित हैं, लेकिन ज़्यादातर modern toolkits में यह queue और loop अंदर छिपे रहते हैं, इसलिए उनकी मौजूदगी का पता आम तौर पर तभी चलता है जब आप debugger stack देखें या कुछ crash हो जाए
    • मुझे लगता है 16-bit Windows और classic Mac OS भी कुछ ऐसे ही थे
      MMU के बिना सिस्टम में multitasking करनी हो, तो लगता है कि रनटाइम पर heap defragmentation लगभग अनिवार्य रही होगी
    • आधुनिक hardware में gigabytes RAM होती है, इसलिए Palm Pilot III के 2MB की तुलना में ऐसा implementation बहुत आसान है
      बस malloc का इस्तेमाल कीजिए, memory को move मत कीजिए, और ऐसे blocks के lock/unlock को no-op बना दीजिए
      अगर lock state जाँचने के लिए कोई OS call है, तो उसे कहीं store करना होगा, लेकिन वह भी मुश्किल नहीं है। उस ज़माने के तरीके को वैसा का वैसा implement करना कठिन कम है, इस्तेमाल करने वालों के लिए जटिल ज़्यादा है
    • आधुनिक hardware का फ़ायदा यह है कि memory पर लगभग कोई कड़ी पाबंदी नहीं रहती
      आप जितने चाहें उतने बड़े memory chunks के साथ complex APIs implement कर सकते हैं, और 128MB RAM जैसी capacity आज के हिसाब से बहुत छोटी मानी जाती है
    • मुझे Palm games बहुत पसंद थे। उस दौर के mobile games सबसे बेहतरीन थे, और modern games उनकी बराबरी नहीं कर पाते
  • साथ में देखने लायक एक और प्रोजेक्ट rePalm भी है। यह RP2040 जैसे ARM microcontrollers पर PalmOS चलाने का प्रोजेक्ट है: http://dmitry.gr/?r=05.Projects&proj=27.%20rePalm

  • Space Trader खेलते हुए कई घंटे गँवाने का सोचकर ही उत्साह हो रहा है
    मिडिल स्कूल में मेरे पास Palm Vx था, और क्लास के दौरान डेस्क के नीचे वह game खेलने की अच्छी यादें हैं

    • Peter Spronck के साथ काम करते हुए मैंने Space Trader के आख़िरी अतिरिक्त content और कुछ quests बनाए थे। उदाहरण के लिए The Scarab जैसी चीज़ें
      वह दौर याद आता है
    • गैरेज में मेरे पास Palm Vx के दो यूनिट पड़े हैं। मुझे भी वह game बहुत पसंद है
  • यह शीर्षक पढ़कर दिल की धड़कन तेज़ हो गई। काश इसे Android पर चलने लायक बनाया जाए ताकि मैं अपने primary phone को “replace” कर सकूँ और उन बेहतर दिनों में लौट सकूँ

    • मुझे अब भी Palm के calendar और contacts apps की याद आती है
      मैं Centro तक Palm इस्तेमाल करता रहा, और उसके बाद से मुझे Palm version जितने पसंद आने वाले contacts/calendar apps नहीं मिले। या तो वे बहुत साधारण होते हैं और बुनियादी features गायब रहते हैं, या फिर उनका UI बेवजह जटिल होता है
    • अगर पूरे सिस्टम को Wasm पर चलाया जाए, तो Palm apps को कहीं भी चलाया जा सकता है
      यह कुछ वैसा ही होगा जैसे लोग गंभीरता से web pages के भीतर DOS apps चलाते हैं
    • आप Graffiti इस्तेमाल कर सकते हैं
      https://play.google.com/store/apps/details?id=com.access_com...
    • SDL इस्तेमाल हो रहा है, इसलिए port करना आसान लग रहा है
  • मैंने पहले इसमें निवेश किया था क्योंकि मुझे लगता था कि Palm आखिरकार iPhone जैसी कोई चीज़ बनाएगा
    अफ़सोस कि Palm ऐसा नहीं कर पाया, और जब Apple ने कर दिखाया तब तक Palm खत्म हो चुका था

    • Palm के पास Treo line थी
      अंततः यह भी कहा जा सकता है कि 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 से लड़ना मुश्किल होता
    • बड़ी समस्याओं में से एक यह थी कि Palm को software company PalmSource और hardware company Palm One में बाँट दिया गया था
      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 की लहर छूट ही जाती
    • मैंने सुना था कि इसमें carriers की भी कुछ ज़िम्मेदारी थी। शुरुआती दौर में अगर Handspring, Treo के साथ क्या-क्या किया जा सकता है उस पर पाबंदी न मानता, तो carriers Treo line को रखना भी नहीं चाहते थे
      Apple के पास iPod था, और उससे भी अहम बात, उसके पास ग्राहक थे। Apple इन ग्राहकों को carriers तक ले जा सकता था, इसलिए वह ज़्यादा शर्तें मनवा सकता था
      https://www.youtube.com/watch?v=b9_Vh9h3Ohw में मैं जिस हिस्से की बात कर रहा हूँ, वह लगभग 20 मिनट के आसपास है
    • मैंने Handspring/Palm smartphone line की लगभग हर चीज़ इस्तेमाल की: Visor + Visor Phone, Treo 270, Treo 600, Treo 650, और आख़िर में Palm Pré
      वह iPhone नहीं था, लेकिन काम के tool के रूप में बेहद असरदार था
    • यहाँ GPL license देखकर हँसी आ गई। इसे commercialisation का जोखिम मानना मुश्किल लगता है, है न?
  • इसे modern phone hardware, या कम से कम एक पीढ़ी पुराने phone hardware पर चलाने के लिए क्या चाहिए होगा?
    लगता है इससे बहुत सादगी और बेतुकी हद तक लंबी battery life के साथ हमारी ज़रूरत की ज़्यादातर चीज़ें की जा सकती हैं। शायद यह PinePhone को भी Rolls Royce जैसा महसूस करा दे

    • README के अनुसार यह ARM पर native चलता है, लेकिन OS से ज़्यादा किसी program जैसा लगता है
      अगर 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...
    • अच्छा होता अगर modern mobile operating systems में optimization और stability पर और ज़्यादा काम किया जाता
  • साथ में देखने लायक एक और चीज़ browser में चलने वाला Palm emulator CloudpilotEmu है
    https://cloudpilot-emu.github.io/
    जब मैंने इसे install करके फिर से Vexed खेला, तो सच में बहुत खुश हुआ

    • Cloudpilot कमाल है। मेरे हिसाब से यह सबसे परिष्कृत PWA में से एक है
      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 होगा जो इस आकलन को ग़लत साबित कर दे?

    • battery life जो कई हफ्तों तक चले, ज़्यादा सरल app design, और page up/down buttons की कमी खलती है