قام مؤلف مشروع rePalm بإعادة كتابة نظام التشغيل Palm OS من البداية ويخطط لتحويله إلى منصة مراقبة ذكية

وعلى ما يبدو ، فإن الساعات الموجودة على نظام التشغيل Palm OS ستجد مشتريها:


صورة


Palm OS هو نظام تشغيل لأجهزة الكمبيوتر المحمولة ، والذي كان في ذروة شعبية من عام 1998 إلى النصف الأول من 2000s. إنها بسيطة للغاية ولا تتطلب موارد ، وتستهلك طاقة البطارية بعناية ومصممة بشكل رائع للاستخدام في أجهزة الكمبيوتر المحمولة. ولكن في الفترة 2004-2005 ، أفسحت أجهزة Palm OS أجهزة Windows Mobile:


صورة
(المصدر)


حدث هذا لأسباب مختلفة ، جزئيا بسبب أخطاء الإدارة ، وجزئيا بسبب خصوصيات نظام التشغيل نفسه: في عام 2004 جر نظام Palm OS ذيل طويل من التوافق مع الإصدارات السابقة ، مما منعه من التطور والمضي قدمًا. ما يستحق ، على سبيل المثال ، عدم وجود حماية للذاكرة: قد يؤدي وجود خطأ في التطبيق إلى تجميد أو تعطل نظام التشغيل بالكامل ، كما حدث في أيام نظام التشغيل Windows 9x أو Mac OS 9. أو تطبيق نظام الملفات: تم تخزين الملفات كسجلات في قاعدة البيانات ، وحجم سجل واحد لا يمكن أن يتجاوز 64 كيلو بايت. ربما كان هذا حلاً جيدًا في عام 1996 ، لكن نظام تخزين البيانات هذا لم يتم تكييفه لملفات الوسائط المتعددة الكبيرة وبطاقات الذاكرة التي ظهرت لاحقًا.


حسنًا ، لا يمكنك تجاهل تغيير العمارة في Palm OS 5.0 من Motorola 68k إلى ARM. ثم ، من أجل التوافق مع التطبيقات القديمة ، تمت إضافة مترجم ثنائي إلى نظام التشغيل ، والذي قام بترجمة التعليمات من M68k إلى ARM أثناء الطيران. من حيث المبدأ ، حتى في ظل هذه الطبقة ، عملت التطبيقات القديمة على معالجات جديدة ليس أسوأ من معالجتها الأصلية 68 كيلو ، حيث تم إجراء مكالمات نظام Palm OS أصليًا على ARM ، وتعويض فقدان الأداء عن البث بزيادة عدة أضعاف في تكرار المعالجات الجديدة مقارنة بموتورولا دراغون بول. كانت المشكلة الحقيقية أن المطورين لم يحصلوا على الأدوات اللازمة لإنشاء تطبيقات ARM الأصلية. لا يزال يتم تجميع رمز Palm OS 5 لمدة 68 كيلو ، وحتى التطبيقات القياسية عملت من خلال طبقة المترجم.


ومع ذلك ، على الرغم من الميزات المعمارية العديدة لنظام التشغيل Palm OS ، إلا أن نقاط قوتها لم تعد قوة. لا يزال نظامًا بسيطًا ومنخفض المستوى ومنخفض الموارد. في عام 2015 ، استخدمت Palm Pilot بمعالج 16 ميغا هرتز كمخطط يومي ، وكنت مرتاحًا تمامًا! علاوة على ذلك ، أحب الكثيرون هذا النظام على وجه التحديد للبساطة ، وكان لدى الكثير منهم تطبيقات أساسية كافية. القراء واللاعبين والمذكرات والمخططين والألعاب - كل هذا موجود بكثرة تحت نظام التشغيل Palm OS. يمكنك العثور على تطبيق لنظام التشغيل هذا اليوم.


لذلك ، بعد العديد من السنوات ، نجا مجتمع عشاق هذا النظام ، الذي يدعم المواقع مع التطبيقات ، ويحافظ على روتين فرعي خاص به ويستمر في استخدام أشجار النخيل.


صورة


ولكن ذهب أحد أفراد المجتمع إلى أبعد من ذلك ، حيث قرر نقل Palm OS إلى أجهزة أكثر حداثة وإيجاد تطبيق مفيد لهذا المشروع.


يقوم Dmitry Greenberg ، وهو مبرمج من Google ، بإنشاء قرصنة وخترق لأجهزة Palm OS منذ عام 2003 ، بما في ذلك WarpSpeed ​​، وهو برنامج لرفع تردد التشغيل PDA ، و PowerSDHC ، وهو برنامج تشغيل لبطاقات ذاكرة SDHC.


في Google ، تعامل Dmitry بشكل أساسي مع الأنظمة المدمجة. على وجه الخصوص ، شارك في تطوير نظام التشغيل لـ Android Wear smartwatch ، ومشغل الوسائط Nexus Q ومنصة Android TV.


بعد التقاعد من Google ، قرر Dmitry إنشاء نظام أساسي للساعات الذكية استنادًا إلى Palm OS 5.x ، نظام التشغيل الذي تم تحديثه آخر مرة منذ 15 عامًا:


صورة


للوهلة الأولى ، تعتبر الخطة ممتازة: من غير المرجح أن تتم مقارنة منصات الساعات الذكية الحديثة بنظام التشغيل بالم من حيث استهلاك الموارد وعمر البطارية.


المشكلة هي أنه لم يتم نشر أكواد مصدر نظام التشغيل بالم. نعم ، ظهرت بعض أجزاء أكواد المصدر في المجال العام في كتب تطوير التطبيقات ، لكن هذا لا يكفي. كان المصدر لشركة PalmSource وللأشخاص المرخص لهم ، وخاصة الشركات التي أصدرت أجهزتها على نظام التشغيل Palm OS - وفقًا لشروط NDA ، بالطبع. لذلك ، لا يمكن العثور على الكود المصدري لنظام التشغيل هذا بعد سنوات عديدة ، وستكون قانونية استخدامه قيد البحث.


لا يزال هناك طريق صعب وشائك لمعظم المتحمسين المتشددين مع قوة الإرادة ملموسة: الهندسة العكسية. هذا هو المسار الذي اختار ديمتري ، تدريجياً ، على مراحل عدة ، تنفيذ خطته.


يجب عليك أولاً كتابة أداة لتفريغ صور ROM لأجهزة Palm OS. ثم كان من الضروري تفكيك المكونات الرئيسية لنظام التشغيل التي تم الحصول عليها من الصورة غير المعبأة. بعد ذلك - المهمة الأطول والأكثر رتابة - يجب أن تفهم منطق وظائف API للنظام وأن تكتب تطبيقاتك الخاصة بهذه الوظائف. والأمر الأكثر صعوبة هو كتابة kernel لنظام التشغيل ، لأن تلك الموجودة (على سبيل المثال ، linux) لا تدعم بعض وظائف kernel Palm OS (تعليق الخيوط ، تشغيل / إيقاف تشغيل المهام المتعددة الوقائية).


يمكنك قراءة التاريخ الكامل لإعادة كتابة Palm OS من نقطة الصفر على مدونة Dmitry ، وسأقوم فقط باختصار بمراجعة تنفيذ المراحل الرئيسية. استغرق Dmitry عدة أشهر لتنفيذ واجهات برمجة التطبيقات للنظام ، والتي ستكون كافية لتحميل نظام التشغيل. بضعة أسابيع أخرى - للهندسة العكسية للنظام الفرعي للرسومات ، وشهرين - لكتابة التعليمات البرمجية لدعم الرسم. في هذه المرحلة ، كانت الوظيفة المطبقة كافية لتشغيل نظام التشغيل أعلى نواة لينكس في QEMU ، وتحميل صورة لبعض أجهزة Palm OS في هذه البيئة.


* التمهيد الأول * (ج) ديمتري غرينبرغ
التمهيد الأول لـ rePalm (c) Dmitry Grinberg


للانتقال من المحاكي إلى الأجهزة الحقيقية ، كان لا يزال من الضروري حل العديد من المشكلات: اختر نظامًا أساسيًا ثابتًا وثابتًا لأجهزة العمل ، اكتب نواة نظام التشغيل للهندسة المحددة ، اكتب مترجم ARM في Thumb (معالج Cortex-M4 المحدد بواسطة Dmitry يدعم فقط إرشادات الإبهام المزدوج البايت ، عند ذلك بينما تستخدم العديد من مكونات Palm OS إرشادات ARM كاملة 4 بايت) ، وكتابة مترجم JIT (!!!) بحيث تعمل الترجمة المزدوجة M68k -> ARM -> الإبهام بسرعة كافية.


بعد عام من التطوير النشط ، تم إطلاق rePalm على لوحة تصحيح STM32F429 ، والرسومات ، وشاشة تعمل باللمس ، وبطاقة SD ، والتزامن عبر أعمال HotSync ، ومعظم التطبيقات والألعاب المكتوبة تحت Palm OS 5.x تعمل بشكل رائع. تتضمن الخطط دعم Wi-Fi و Bluetooth ، ودعم الصوت وتوصيل الجهاز عبر USB في وضع التخزين كبير السعة ، وتحديث مكتبة SSL. يُكمل Dmitry منشور المدونة الخاص به أثناء تطوره ، كما ينشر تحديثات المشروع بانتظام إلى subreddit r / Palm .


صورة
(ج) ديمتري غرينبرغ




من الجيد متابعة عمل شخص عاطفي ومشاهدة كيف يتطور مشروع مثير للاهتمام وطموح. ولكن تجدر الإشارة إلى أن ديمتري هو مهندس ومبرمج في المقام الأول. بالنسبة له ، فإن حل مشكلة هندسية (جعل Palm OS متوافقًا مع العالم الحديث) أعلى من إنشاء منتج تجاري ، سواء كان ساعة ذكية أو أي شيء آخر. أنا متأكد من أن المشروع سيحتوي على العديد من التطبيقات المثيرة للاهتمام ، ولكن ما سيحدث بعد ذلك ، وما إذا كنا سنرى الإصدار الحديث من Fossil WristPDA ، من الصعب القول. يبقى أن أتمنى دميتري حظاً موفقاً ومتابعة تطور الريبال.


صورة
(ج) ديمتري غرينبرغ


ملاحظة: بفضل Newbilius لتفكر في إعادة نشر هذه المقالة هنا من بلوق. يجب أن يعرف المزيد من الناس عن هذه المشاريع الرائعة!

Source: https://habr.com/ru/post/ar452692/


All Articles