برنامج مراقبة الأجهزة الافتراضية المدمج

برنامج مراقبة الأجهزة الافتراضية المدمج هو برنامج مراقبة الأجهزة الافتراضية الذي يدعم متطلبات الأنظمة المدمجة .

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

تشمل السمات النموذجية للتقنية الافتراضية المدمجة الكفاءة والأمان والاتصال والعزل وقدرات الوقت الحقيقي. [ 1 ]

خلفية

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

برنامج إدارة الأجهزة الافتراضية

يُوفّر برنامج إدارة الأجهزة الافتراضية (Hypervisor) بيئة أو أكثر من بيئات المحاكاة الافتراضية للبرمجيات، حيث يمكن لبرامج أخرى، بما في ذلك أنظمة التشغيل ، أن تعمل مع إمكانية الوصول الكامل إلى مكونات النظام المادية، بينما في الواقع يخضع هذا الوصول لسيطرة برنامج إدارة الأجهزة الافتراضية بشكل كامل. تُسمى هذه البيئات الافتراضية بالأجهزة الافتراضية (VM)، وعادةً ما يدعم برنامج إدارة الأجهزة الافتراضية إدارة عدة أجهزة افتراضية في وقت واحد.

تصنيف

يتم تصنيف برامج إدارة الأجهزة الافتراضية بشكل عام إما إلى النوع 1 أو النوع 2، اعتمادًا على ما إذا كان برنامج إدارة الأجهزة الافتراضية يعمل حصريًا في وضع المشرف أو الوضع المميز (النوع 1) أو يتم استضافته بواسطة نظام التشغيل كتطبيق عادي (النوع 2).

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

برنامج مراقبة الأجهزة الافتراضية المدمج

غالباً ما يكون برنامج إدارة الأجهزة الافتراضية المدمج من النوع الأول، والذي يدعم متطلبات تطوير الأنظمة المدمجة . راجع المراجع [ 2 ] و [ 3 ] لمزيد من التفاصيل.

يتم تلخيص هذه المتطلبات أدناه.

  • برنامج مراقبة أجهزة افتراضية صغير وسريع يدعم العديد من الأجهزة الافتراضية المعزولة؛
  • دعم التغليف الخفيف والآمن لمكونات النظام الفرعي متوسطة الحجم التي تتفاعل بقوة؛
  • اتصال عالي النطاق الترددي ومنخفض زمن الوصول بين مكونات النظام، يخضع لسياسة أمنية قابلة للتكوين على مستوى النظام؛
  • تأثير ضئيل على موارد النظام ودعم ضمانات زمن الاستجابة في الوقت الفعلي؛
  • القدرة على تطبيق سياسة جدولة بين الأجهزة الافتراضية وتقديم الدعم لمكونات النظام في الوقت الحقيقي؛

تطبيق

يُوفّر برنامج إدارة الأجهزة الافتراضية المُضمّن عادةً عدة أجهزة افتراضية، يُحاكي كل منها منصة أجهزة تُنفّذ عليها البرامج الافتراضية. قد يُحاكي الجهاز الافتراضي الأجهزة الأصلية، وفي هذه الحالة، سيعمل الكود المُضمّن الذي يعمل على الجهاز الحقيقي على الجهاز الافتراضي والعكس صحيح. لا يكون محاكاة الأجهزة الأصلية ممكنًا أو مرغوبًا فيه دائمًا، وقد يتم تعريف منصة افتراضية بدلاً من ذلك.

عندما توفر الآلة الافتراضية منصة افتراضية، يجب نقل برامج الضيف لتشغيلها في هذه البيئة، ولكن بما أنه يمكن تعريف منصة افتراضية دون الاعتماد على الأجهزة الأصلية، فيمكن تشغيل برامج الضيف التي تدعم منصة افتراضية دون تعديل عبر منصات أجهزة مختلفة يدعمها برنامج إدارة الأجهزة الافتراضية.

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

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

تصميم المشرف

تعتمد تطبيقات الأنظمة المدمجة في الغالب على تصميمات النواة المصغرة والنواة المنفصلة ، ​​مع دمج المحاكاة الافتراضية كخاصية أساسية. وقد طُبّق هذا النهج مع نظام التشغيل PikeOS عام 2005. [ 4 ] وقدّمت شركات مثل Open Kernel Labs (النواة المصغرة متبوعة بنواة منفصلة) و LynuxWorks (النواة المنفصلة) أمثلة على هذه المناهج. ويبدو أن VirtualLogix ترى أن استخدام برنامج مراقبة مخصص للآلة الافتراضية (VMM) سيكون أصغر حجمًا وأكثر كفاءة. ولا تزال هذه المسألة محل نقاش مستمر. [ 5 ] [ 6 ] [ 7 ] ومع ذلك، فإن النقطة الأساسية محل النقاش واحدة لدى جميع الأطراف، وهي أن سرعة وحجم التطبيق (لمستوى معين من الوظائف) لهما أهمية بالغة. على سبيل المثال: "... يجب أن تكون برامج مراقبة الآلات الافتراضية للاستخدام المدمج قادرة على العمل في الوقت الحقيقي، وأن تكون أيضًا اقتصادية في استخدام الموارد."

متطلبات الموارد

تُعاني الأنظمة المُدمجة عادةً من قيودٍ كبيرة على الموارد نظرًا لتكلفة الأجهزة وقيودها التقنية. لذا، من الضروري أن يكون مُشرف الأجهزة الافتراضية المُدمج عالي الكفاءة قدر الإمكان. تسمح التصاميم القائمة على النواة المُصغّرة ونواة الفصل بإنشاء مُشرفات أجهزة افتراضية صغيرة الحجم وفعّالة. وبالتالي، يتراوح حجم ذاكرة مُشرفات الأجهزة الافتراضية المُدمجة عادةً بين عشرات ومئات الكيلوبايتات، وذلك بحسب كفاءة التنفيذ ومستوى الوظائف المُقدّمة. أما التنفيذ الذي يتطلب عدة ميغابايتات من الذاكرة (أو أكثر) فهو غير مقبول عمومًا.

بفضل حجم وحدة التحكم في الاختبار (TCB) الصغير في برنامج إدارة الأجهزة الافتراضية المدمج من النوع الأول، يمكن جعل النظام عالي الأمان والموثوقية. [ 8 ] يمكن استخدام تقنيات هندسة البرمجيات القياسية، مثل فحص التعليمات البرمجية والاختبار المنهجي، لتقليل عدد الأخطاء في قاعدة التعليمات البرمجية الصغيرة هذه إلى جزء ضئيل من العيوب المتوقعة في نظام إدارة الأجهزة الافتراضية ونظام التشغيل الضيف، والذي قد يتراوح حجمه الإجمالي بين 100,000 و300,000 سطر. [ 9 ]

اتصال الجهاز الظاهري

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

يمكن استخدام آلية اتصال بين العمليات (IPC) لتوفير هذه الوظائف، بالإضافة إلى استدعاء جميع خدمات النظام، ويتم تنفيذها بطريقة تضمن الحفاظ على مستوى عزل الأجهزة الافتراضية المطلوب. ونظرًا لتأثيرها الكبير على أداء النظام، يجب تحسين آلية الاتصال بين العمليات هذه بشكل كبير لتقليل زمن الاستجابة إلى أدنى حد. [ 10 ]

متطلبات الأجهزة

يحتاج برنامج إدارة الأجهزة الافتراضية المدمج إلى تحكم كامل في موارد النظام، بما في ذلك الوصول إلى الذاكرة، لضمان عدم قدرة البرامج على الخروج من بيئة الجهاز الافتراضي. ولذلك، يتطلب برنامج إدارة الأجهزة الافتراضية من وحدة المعالجة المركزية المستهدفة توفير دعم إدارة الذاكرة (عادةً باستخدام وحدة إدارة الذاكرة ). وقد حذت العديد من المعالجات المدمجة، مثل ARM و MIPS و PowerPC، حذو موردي رقائق أجهزة سطح المكتب والخوادم في إضافة دعم مادي للتقنية الافتراضية. ومع ذلك، لا تزال نسبة كبيرة من المعالجات المدمجة لا توفر هذا الدعم، مما يستدعي وجود برنامج إدارة أجهزة افتراضية يدعم التقنية الافتراضية الجزئية .

تتميز معالجات ARM بأن معظم تصميمات معالجات فئة التطبيقات تدعم تقنية تُسمى ARM TrustZone، والتي توفر دعمًا ماديًا لآلة افتراضية واحدة ذات صلاحيات وأخرى بدونها. عادةً ما يتم تشغيل نظام تشغيل بيئة تنفيذ موثوقة (TEE) مصغر في البيئة الآمنة، بينما يتم تشغيل نواة النظام الأصلية في البيئة غير الآمنة.

حالات الاستخدام

بعض حالات الاستخدام الأكثر شيوعًا لبرنامج مراقبة الأجهزة الافتراضية المضمنة هي: [ 11 ] [ 12 ]

1. استقلالية نظام التشغيل

قد يمتلك مصممو الأنظمة المدمجة العديد من برامج تشغيل الأجهزة وخدمات النظام الخاصة بمنصة مستهدفة. إذا تطلب الأمر دعم أكثر من نظام تشغيل واحد على المنصة، سواءً بشكل متزامن أو متتابع باستخدام تصميم أجهزة مشترك، فإن برنامج إدارة الأجهزة الافتراضية المدمج (Hypervisor) يُسهّل المهمة بشكل كبير. يمكن تنفيذ برامج التشغيل وخدمات النظام هذه مرة واحدة فقط للبيئة الافتراضية، لتصبح متاحة لأي نظام تشغيل مُستضاف. كما يُتيح هذا المستوى من التجريد لمطور الأنظمة المدمجة إمكانية تنفيذ أو تغيير برنامج تشغيل أو خدمة، سواءً في الأجهزة أو البرامج، في أي وقت، دون أن يلاحظ نظام التشغيل المُستضاف ذلك.

2. دعم أنظمة تشغيل متعددة على معالج واحد

يُستخدم هذا عادةً لتشغيل نظام تشغيل في الوقت الحقيقي (RTOS) للوظائف الأساسية في الوقت الحقيقي (مثل حزمة الاتصالات)، وفي الوقت نفسه تشغيل نظام تشغيل للأغراض العامة (GPOS) مثل لينكس أو ويندوز ، لدعم تطبيقات المستخدم، مثل متصفح الويب أو التقويم. قد يكون الهدف هو ترقية تصميم موجود دون تعقيدات إضافية ناتجة عن معالج ثانٍ، أو ببساطة تقليل تكلفة المواد (BoM).

3. أمن النظام

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

4. موثوقية النظام

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

5. التحديث الديناميكي لبرامج النظام

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

6. إعادة استخدام التعليمات البرمجية القديمة

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

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

حتى بدون الوصول إلى المصدر، يمكن تنفيذ التعليمات البرمجية الثنائية القديمة في الأنظمة التي تعمل بمعالجات تدعم المحاكاة الافتراضية للأجهزة، مثل تقنيات AMD-V و Intel VT وأحدث معالجات ARM التي تدعم المحاكاة الافتراضية. [ 13 ] يمكن تشغيل التعليمات البرمجية الثنائية القديمة دون أي تعديل في جهاز افتراضي، حيث يتولى برنامج إدارة الأجهزة الافتراضية المدمج جميع عمليات تعيين الموارد، بافتراض أن أجهزة النظام توفر وظائف مكافئة.

7. حماية الملكية الفكرية

قد تحتاج الملكية الفكرية القيّمة إلى الحماية من السرقة أو سوء الاستخدام عند شحن منصة مضمنة لمزيد من التطوير من قِبل عميل (على سبيل المثال) مُصنِّع المعدات الأصلية . يُمكّن برنامج إدارة الأجهزة الافتراضية المضمن من تقييد وصول مكونات برمجيات النظام الأخرى إلى جزء مُحدد من النظام يحتوي على الملكية الفكرية التي تحتاج إلى الحماية.

8. فصل تراخيص البرامج

يمكن فصل الملكية الفكرية للبرمجيات التي تعمل بموجب نظام ترخيص معين عن الملكية الفكرية للبرمجيات الأخرى التي تعمل بموجب نظام مختلف. على سبيل المثال، يمكن للمشرف المدمج أن يوفر بيئة تنفيذ معزولة للبرمجيات الاحتكارية التي تتشارك المعالج مع البرمجيات مفتوحة المصدر الخاضعة لرخصة جنو العمومية (GPL). [ 14 ]

9. نقل التطبيقات من أنظمة أحادية النواة إلى أنظمة متعددة النوى

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

المنتجات التجارية

  • بوتقة من شركة ستار لاب [ 15 ]
  • برنامج إدارة الأجهزة الافتراضية متعدد الأنظمة - يسمح بتشغيل التطبيقات بشكل أصلي على منصة نظام تشغيل واحدة من شركة MapuSoft Technologies, Inc.
  • برنامج OKL4 Hypervisor - يدعم الأجهزة الذكية المتصلة القائمة على معالجات ARM (المدمجة والمحمولة). يُستخدم في التطبيقات الحساسة أمنيًا ودفاعيًا. وتتولى شركة Cog Systems تقديم الدعم التجاري له.
  • مُشرف INTEGRITY المتعدد [ 16 ] - خدمة افتراضية للنواة المصغرة من النوع الثاني لنظام التشغيل INTEGRITY RTOS الحاصل على شهادة السلامة/الأمان

مراجع

  1. المحاكاة الافتراضية للأنظمة المدمجة
  2. مؤرشف بتاريخ 2018-04-02 في أرشيف الإنترنت (Wayback Machine) : دور المحاكاة الافتراضية في الأنظمة المدمجة
  3. أُرشف بتاريخ 10 أكتوبر 2008 في أرشيف الإنترنت (Wayback Machine) . تُساعد تقنيات المحاكاة الافتراضية وبرامج إدارة الأجهزة الافتراضية في تصميم الأنظمة المدمجة.
  4. مؤرشف بتاريخ ٢١ نوفمبر ٢٠١٠ في أرشيف الإنترنت (Wayback Machine) : خمس سنوات من إعادة ابتكار تصميم الأنظمة المدمجة
  5. مقارنة بين النواة الصغيرة ومراقبي الآلات الافتراضية
  6. هل تم تصميم أنظمة مراقبة الآلات الافتراضية المصغرة بشكل صحيح؟
  7. تمت أرشفة هذا المنشور بتاريخ 11 مايو 2008 على موقع Wayback Machine (ردًا على) هل تم تصميم أنظمة مراقبة الآلات الافتراضية بشكل صحيح؟
  8. هل نظامك آمن؟
  9. مؤرشف بتاريخ 2011-09-02 في أرشيف الإنترنت (Wayback Machine) - أنظمة الحوسبة الموثوقة
  10. تحسين أداء IPC من خلال تصميم النواة
  11. هايزر، جيرنوت (27 نوفمبر 2007). المحاكاة الافتراضية للأنظمة المدمجة (ملف PDF) (تقرير فني). الصفحات 10-16 . 
  12. ستروبل، ماريوس (2013). المحاكاة الافتراضية للأنظمة المدمجة الموثوقة . ميونخ: دار نشر GRIN GmbH. الصفحات 11-17 . ISBN  978-3-656-49071-5.
  13. أُرشف بتاريخ 3 مايو 2013 في أرشيف الإنترنت (Wayback Machine) - ملحقات المحاكاة الافتراضية لمعالجات ARM
  14. الأسئلة الشائعة حول رخصة جنو العمومية
  15. كروسيبل - تقنية المحاكاة الافتراضية المدمجة الآمنة
  16. "مُشاهد النزاهة المتعدد" . www.ghs.com . تم الاطلاع عليه بتاريخ 2024-06-20 .