سؤال

طريقة واحدة للنظر إليها - تبدأ Linux المدمجة مع Linux لسطح المكتب وتخطي الأجزاء غير المطلوبة للأنظمة المضمنة (هل هذا صحيح بالفعل؟) ، في حين تم تصميم ECOS من الألف إلى الياء للأنظمة المضمنة.

الآن ، افترض معالج ARM ، ربما ARM 7 - هل يحدث الأداء فرقًا؟ في الواقع ، نتحدث عن نظام تحميل منخفض للغاية ، MAX 500 Transactions في اليوم.

أي مزايا لواحد على الآخر (أو الفرييرتو ، إلخ)؟ الاستقرار ، النضج ، الأداء ، أدوات التنمية ، أي شيء آخر؟

كل ما يمكنني التفكير فيه هو أنه إذا كنت كذلك تأكيد أنني لن أقوم أبدًا بالتوصيل إلى O/S آخر ، ثم إذا ذهبت مع Linux المضمّن ، فلست بحاجة إلى طبقة تجريد O/S للسماح لي بإجراء اختبار الوحدة على المضيف (مربع Linux لسطح المكتب).

أي أفكار أو تعليقات؟ شكرًا.

هل كانت مفيدة؟

المحلول

كل جهاز قمت بوضعه على Linux بدأ من الألف إلى الياء ولم يكن نسخة مجردة من بعض التوزيع.

ECOS و Linux لها أهداف مختلفة. يهدف Linux إلى أن يكون نظامًا متميزًا يشبه UNIX ، وبالتالي لا يهتم كثيرًا بمتطلبات النظام الحد الأدنى. ECOS هو نظام تشغيل في الوقت الفعلي مصمم للأنظمة التي غالباً ما تكون مقيدة للموارد. هناك الكثير من التداخل بين اثنين من الحالات وفي العديد من المواقف ستعمل بشكل جيد على قدم المساواة.

في تجربتي ، إذا كان نظامك يحتوي على الموارد ومتطلباتك غير تافهة ، فسيتم التطوير بشكل أسرع مع Linux. من الأسهل العثور على مطوري Linux المختصين من مطوري RTOS ، والأدوات أرخص ، والعمليات محمية من بعضها البعض ، وتميل إلى الحصول على رؤية أفضل في نظام الجري ، إلخ.

بديل (أفضل ، IMHO) عن ECOS هو RTEMS (http://www.rtems.com). لقد كانت موجودة لفترة أطول وآخر مرة راجعت فيها ، ودعمت أكثر من بنيات من ECOS. كما أنه يحتوي على جهاز كمبيوتر BSP ويعمل تحت QEMU للمضاهاة.

نصائح أخرى

لا توجد فائدة حقيقية في وضع Linux على ARM7 IMO ؛ ARM7 لا يوجد لديه MMU وحماية الذاكرة هو سبب أساسي لاستخدام نظام التشغيل مثل Linux. سيتم تشغيل Uclinux على أهداف بدون MMU ، لكنك فقدت أحد أكثر الأسباب إقناعًا لاستخدام Linux ، وما زلت بحاجة إلى موارد الذاكرة الضخمة (فلاش 4 أمتار ، سيكون ذاكرة الوصول العشوائي 16M الحد الأدنى المعقول).

لا تحتوي العديد من أجهزة ARM7 على حافلات ذاكرة خارجية لتوصيل تلك الذاكرة ، وعلى فلاش رقاقة وذاكرة الوصول العشوائي عادة ما تتراوح من 32 كيلو متر حسب الجهاز.

Linux ليس "في الوقت الفعلي" في الوقت الجوهري. بالنسبة للقدرة في الوقت الفعلي ، غالبًا ما يكون مقترنًا بنواة في الوقت الفعلي ، حيث تعمل Linux بشكل أساسي كمهمة خاملة ، أو على الأهداف ذات القدرة كآلة افتراضية منفصلة. لذلك إذا كانت الاستجابة الحتمية والسريعة للأحداث الخارجية أمرًا متطلبًا ، فستحتاج إلى RTOs مثل ECOS.

ECOS رائعة من حيث أن لديها نظامًا بيئيًا كبيرًا من الميزات الإضافية ودعم الأجهزة الذي ينافس معظم العروض التجارية. ومع ذلك ، من المحتمل أن يكون هناك شيء مثل Freertos أسهل في "طرح" ولكن لا يوفر أكثر من جدولة مؤشرات الترابط وآليات الاتصال بين العمليات. يجب الحصول على أشياء مثل نظام الملفات أو TCP/IP من أطراف ثالثة (على الرغم من وجود حلول صغيرة ومجانية مناسبة للأنظمة المضمنة لذلك).

إذا كنت تستخدم نواة بسيطة مثل Freertos أو UC/OS-III ، فلن تضيع الكثير من الوقت ، وبالتالي فإن الاستثمار ليس مثبطًا لاستخدام شيء آخر في المرة القادمة. من ناحية أخرى ، قد يثبطك Linux عن استخدام شيء أصغر وأكثر استهدافًا في المرة القادمة ، وقد تكلف المشاريع اللاحقة الجولة أكثر بكثير مما يحتاجون إلى دعم نظام التشغيل المفضل لديك.

Linux المدمجة == Linux في 99 ٪ من جميع الحالات. يمكنك فقط تكوين النواة بشكل مختلف.

الفرق الأكبر في الأداء هو أنه مع ECOS ، يمكنك ، اعتمادًا على التنفيذ / التكوين ، أن يكون لديك وقت استجابة متوقع أثناء وجود Linux تحت رحمة وحدة التحكم في المقاطعة.

لدى Linux قاعدة معجبين أكبر بكثير من ECOS ، وبالتالي فهي تساعد في التطوير ، ويدعم مجموعة واسعة من وحدة المعالجة المركزية. اعتمادًا أيضًا على برامج التشغيل التي تريدها ، يمكنك تجميع البرنامج وتشغيله على جهاز كمبيوتر يعمل Linux.

يمكن لـ Linux اكتشاف القفل / deadlocks وإرسال استجابات / إعادة تشغيل تلقائية للحفاظ على توفر النظام العالي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top