نظام رودوس التشغيلي: الفرق بين النسختين

[نسخة منشورة][نسخة منشورة]
تم حذف المحتوى تمت إضافة المحتوى
وسام (نقاش | مساهمات)
ط إضافة بوابة علم الحاسوب
وسم: تعديل شريط البوابات
ط بوت:أضاف 1 تصنيف
سطر 7:
| الرخصة = رخصة BSD
| الموقع الالكتروني = http://www8.informatik.uni-wuerzburg.de/wissenschaftforschung/rodos/
}}
 
'''نظام رودوس''' {{إنج|Rodos (Realtime Onboard Dependable Operating System)}} هو [[نظام تشغيل الوقت الحقيقي|نظام تشغيل في الوقت الفعلي]] [[نظام مضمن|للأنظمة المدمجة]] وتم تصميمه لمجالات التطبيق التي تتطلب موثوقية عالية.
 
== نبذة في التاريخ ==
تم تطوير '''Rodos''' في المركز [[مركز الطيران والفضاء الألماني|الألماني للفضاء]] وله جذوره في نظام التشغيل '''BOSS'''. يتم استخدامه لبرنامج الأقمار الصناعية الدقيقة الحالي [[مركز الطيران والفضاء الألماني|لمركز الفضاء الألماني]]. يعمل النظام على القمر الصناعي التشغيلي '''TET-1''' وسيتم استخدامه للقمر الصناعي '''BiROS''' المطوّر حالياً.
 
تم تعزيز رودوس وتوسيع نطاقه في المركز [[مركز الطيران والفضاء الألماني|الألماني للفضاء]] وكذلك قسم تكنولوجيا المعلومات الفضائية في [[جامعة فورتسبورغ]].
 
== المميزات ==
جانب مهم من Rodos هو الوسيطة المتكاملة في الوقت الحقيقي. يوفر تطوير برنامج التحكم والحمولة في الجزء العلوي من البرامج الوسيطة الحد الأقصى من الوحدات النمطية اليوم. يمكن تطوير التطبيقات / الوحدات بشكل مستقل ومن السهل جداً تبادل الوحدات فيما بعد دون القلق بشأن الآثار الجانبية، لأن كل الوحدات يتم تغليفها ككتل بناء ('''BB''') ويمكن الوصول إليها ويمكنها الوصول إلى الموارد الأخرى فقط عن طريق واجهات محددة بشكل جيد.
 
تم تطبيق Rodos كإطار عمل برمجي في '''++C''' مع واجهة تطبيق موجهة للكائنات ('''API'''). يتم تنظيمها في طبقات:
* الطبقة الدنيا ('''1''') هي المسؤولة عن التحكم في أجهزة النظام المدمجة ('''HAL''': طبقة تجريد الأجهزة).
* الطبقة التالية ('''2''') نواة: تدير الموارد المحلية والخيوط والوقت. على رأس النواة، لدينا الوسيطة
* (الطبقة '''3''') التي تتيح التواصل بين BBs باستخدام بروتوكول البث المتعدد لمشترك الناشر. وعلى الجزء العلوي من البرنامج الوسيط، يمكن للمستخدم تنفيذ تطبيقاته
* (الطبقة '''4''') كشبكة برامج موزعة تضم BBs بسيط. واجهة برمجة تطبيقات '''Building Blocks''' في الجزء العلوي من البرنامج الوسيط هي واجهة موجهة نحو الخدمة. تتفاعل BBs من خلال تقديم الخدمات إلى BBs الأخرى واستخدام الخدمات من BBs الأخرى.
 
كما ذكر من قبل، كان الغرض الأصلي من رودوس هو التحكم في الأقمار الصناعية. وقد تم تصميمه ليكون بمثابة عقول نظام '''Avionic''' ويقدم للمرة الأولى ([[2001]]) مفهوم '''NetworkCentric'''. تتكون آلة إلكترونيات الطيران الأساسية للشبكة المركزية من عدة مكونات متجانسة تعمل معاً لتنفيذ الحوسبة الموثوقة بطريقة بسيطة. في نظام NetworkCentric، لدينا شبكة برمجيات من BBs ومركبات ربط الشبكة (اتصالات لاسلكية) وأجهزة كمبيوتر داخل المركبات (الحافلات وروابط نقطة إلى نقطة)، وأجهزة ذكية (مرفقة بالحافلات)، وأجهزة بسيطة متصلة بأجهزة الكمبيوتر الأمامية. للتواصل مع (العقدة) الوحدات الخارجية، بما في ذلك الأجهزة ووحدات الحوسبة الأخرى، توفر كل عقدة بوابة إلى الشبكة وحول الأجهزة العديدة الموجودة في الشبكة (قد يتم ربط أجهزة '''IO Devs''' وعقد الحوسبة) بالنظام. تبادل الرسائل التي توفرها الوسيطة والبوابات غير متزامن، باستخدام بروتوكول الناشر-المشترك. لم يتم إنشاء مسارات اتصال ثابتة ويمكن إعادة تكوين النظام بسهولة في وقت التشغيل. على سبيل المثال، يمكن تشغيل عدة نسخ متماثلة من البرنامج نفسه في عقد مختلفة ونشر النتيجة باستخدام نفس الموضوع، دون معرفة بعضها البعض. يمكن للناخب الاشتراك في هذا الموضوع والتصويت على النتيجة الصحيحة. يمكن أن ينتقل التطبيق من عقدة إلى عقدة أو حتى إلى مركبات أخرى دون الحاجة إلى إعادة تكوين نظام الاتصالات. يوزع جوهر البرامج الوسيطة الرسائل محلياً فقط، ولكن باستخدام البوابات المدمجة إلى شبكة NetworkCentric، يمكن أن تصل الرسائل إلى أي عقدة وتطبيق في الشبكة. يشتمل الاتصال في النظام بأكمله على تطبيقات البرامج وعقد الحوسبة وحتى أجهزة الإدخال / الإخراج. يقوم الناشرون بنشر الرسائل في إطار موضوع معين. يحصل المشتركون (صفر، واحد أو أكثر) في موضوع معين على جميع الرسائل التي يتم نشرها تحت هذا الموضوع. كما ذكرنا من قبل، لا يوجد فرق في هذا الاتصال في أي عقدة (وحدة أو جهاز حوسبة) يعمل الناشر والمشتركون وما بعدها، فقد يكونون أي مزيج من مهام البرامج وأجهزة الأجهزة لإنشاء مسار نقل، حيث يجب على كل من الناشر والمشترك مشاركة نفس الموضوع. الموضوع هو زوج يتكون من نوع بيانات وعدد صحيح يمثل معرف الموضوع. يقوم كل من البرنامج الوسيط ومفتاح شبكة الأجهزة (يطلق عليهما رمز التبديل الوسيطة) بتفسير نفس بروتوكول الناشر / المشترك. <ref>{{مرجع ويب| مسار = http://www.montenegros.de/sergio/public/iaa09-coreavionics.pdf| عنوان =| مسار الأرشيف = https://web.archive.org/web/20160309181709/http://www.montenegros.de/sergio/public/iaa09-coreavionics.pdf | تاريخ الأرشيف = 9 مارس 2016 }}</ref>
[[ملف:Rodos_Middleware.jpg|تصغير| Rodos موضوعات للبرامج والأجهزة]]
يمكّن Rodos المستخدم من كتابة تطبيقات في الوقت الفعلي لمختلف [[معمارية الحاسوب|البنيات]] بطريقة سهلة وفعالة. أثناء التطوير، تم إيلاء اهتمام خاص لتنفيذ الميزات المختلفة لـ Rodos بطريقة بسيطة ومع ذلك. تم تجنب التعقيد غير الضروري لتزويد المستخدم بنظام مباشر ومرتّب بشكل واضح. Rodos يدعم الميزات النموذجية لأنظمة التشغيل في الوقت الحقيقي، مثل [[خيط (حاسوب)|المواضيع]] [[سيمافور (حوسبة)|والإشارات]].
 
من بين الميزات الأخرى التي يقدمها Rodos: <ref>{{مرجع ويب| مسار = http://www.montenegros.de/sergio/public/dasia2009-rodos.pdf| عنوان =| مسار الأرشيف = https://web.archive.org/web/20170517005907/http://www.montenegros.de/sergio/public/dasia2009-rodos.pdf | تاريخ الأرشيف = 17 مايو 2017 }}</ref>
 
* [[برمجة كائنية التوجه|وجوه المنحى]] [[سي++|C ++]] في الواجهات.
سطر 48:
PRINTF("Hello World!\n");
}
} helloworld;
</syntaxhighlight> يتم توسيع مؤشر ترابط الفئة بواسطة إجراء تشغيل مخصص () ، والذي يكتب Hello World إلى الإخراج القياسي مع PRINTF. يمكن الوصول إلى جميع مكونات Rodos اللازمة لتطوير التطبيق عبر ملف الرأس rodos.h.
 
=== المنشورات ===
يستخدم Rodos ''[[جدولة (حاسوب)|جدولة]] استباقية ذات أولوية عادلة'' . يتم تنفيذ [[خيط (حاسوب)|مؤشر الترابط]] ذي الأولوية العليا أثناء إيقاف تشغيل مؤشرات الترابط ذات الأولوية الأقل ( تعدد المهام الاستباقية ). إذا كان هناك أكثر من مؤشر ترابط واحد له نفس الأولوية ، يحصل كل منهم على حصة ثابتة من وقت الحوسبة ويتم تنفيذها بالتناوب.
 
'''مثال:''' <syntaxhighlight lang="cpp">
سطر 78:
}
} lowprio;
</syntaxhighlight> مؤشر الترابط '''''LowPriorityThread''''' يكتب باستمرار الحرف "." ويتم مقاطعة كل ثانية بواسطة مؤشر ترابط '''''HighPriorityThread''''' ، الذي يكتب الحرف "*".
 
=== المواضيع ===
يستخدم Rodos ما يسمى ''الموضوعات'' لتمكين الاتصال بين مؤشرات الترابط وعبّارة بين أنظمة مختلفة. يمثل ''الموضوع'' رسالة من نوع معين. يمكن أن ينشر سلسلة الرسائل ''مواضيع'' وكذلك الاشتراك في ''موضوع'' لاستلام جميع الرسائل التي تنتمي إلى نوع الرسالة. يتوافق نظام الرسائل مع نمط النشر والاشتراك .
 
فيما يلي مثال بسيط مع ناشر واحد ''ومشترك'' واحد ، يستخدم كلاهما ''عداد'' ''الموضوعات'' ''1 الذي'' يحتوي على قيمة عدد صحيح واحد فقط.
 
'''مثال:''' <syntaxhighlight lang="cpp">
Topic<long> counter1(-1, "counter1");
 
class MyPublisher : public Thread {
سطر 108:
}
}subscriber;
</syntaxhighlight> ''ينشر '''Publisher-Thread''''' كل ثلاث ثوان قيمة عداد تصاعدي ، بينما يعرض مؤشر ''الترابط المشترك'' ببساطة قيمة الأعداد الصحيحة المستلمة.
 
== البنى المدعومة ==
[[مجموعة التعليمات|أبنية مجموعة التعليمات]] المدعومة:
 
* ARM7 (على سبيل المثال ARM Cortex-M3، [[رسبري باي|Raspberry Pi]] 's SoC)
* [[أتمل|Atmel]] AVR32
* STM32 32 بت
* [[باور بي سي|PowerPC]] (PowerPC 405)
 
علاوة على ذلك، يمكن تشغيل Rodos كضيف على نظام تشغيل مضيف مختلف مثل:
 
* [[لينكس]]
* [[نظام تشغيل FreeRTOS|FreeRTOS]]
* RTEMS
* [[مايكروسوفت ويندوز]]
* TinyOS
* أنظمة التشغيل المتوافقة مع [[بوزيكس|POSIX]]
 
سطر 132:
== روابط خارجية ==
 
* [http://www8.informatik.uni-wuerzburg.de/wissenschaftforschung/rodos/ جامعة فورتسبورغ - إطار رودوس]
{{شريط بوابات|تقنية المعلومات|برمجيات حرة|علم الحاسوب}}
 
[[تصنيف:أنظمة التشغيل ARM]]
[[تصنيف:صفحات بترجمات غير مراجعة]]
[[تصنيف:نظم تشغيل مضمنة]]