النواة الواحدة

مقارنة بين حزمة نظام التشغيل التقليدية ونواة نظام التشغيل MirageOS أحادية النواة

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

تعتمد بنية النواة الواحدة على مفاهيم طورتها Exokernel و Nemesis في أواخر التسعينيات.

تصميم

في نظام تشغيل المكتبة، يتم دفع حدود الحماية إلى أدنى طبقات الأجهزة، مما ينتج عنه:

  1. مجموعة من المكتبات التي تنفذ آليات مثل تلك اللازمة لتشغيل الأجهزة أو بروتوكولات الشبكة؛
  2. مجموعة من السياسات التي تفرض التحكم في الوصول والعزل في طبقة التطبيق.

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

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

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

من خلال تقليل كمية التعليمات البرمجية المنشورة، تقلل النواة الموحدة بالضرورة من مساحة الهجوم المحتملة ، وبالتالي تتمتع بخصائص أمنية محسّنة. [ 5 ] [ 6 ]

يبلغ حجم برنامج مراسلة قائم على نواة واحدة حوالي 4% من حجم قواعد التعليمات البرمجية المكافئة التي تستخدم نظام لينكس. [ 7 ]

بفضل طبيعة تصميمها، يُمكن إجراء تحسين شامل للنظام يشمل برامج تشغيل الأجهزة ومنطق التطبيقات، مما يُحسّن من التخصص. [ 8 ] [ 9 ] [ 10 ] على سبيل المثال، أظهرت تطبيقات جاهزة مثل nginx وSQLite وRedis التي تعمل على نواة أحادية تحسنًا في الأداء يتراوح بين 1.7 و2.7 ضعف. [ 11 ]

لقد ثبت بشكل منتظم أن أنظمة التشغيل أحادية النواة تبدأ التشغيل بسرعة فائقة، في الوقت المناسب للاستجابة للطلبات الواردة قبل انتهاء مهلة هذه الطلبات. [ 12 ] [ 13 ] [ 14 ]

تُتيح النواة الموحدة إمكانية إنشاء أنظمة تتبع بنية البرمجيات الموجهة نحو الخدمات أو بنية الخدمات المصغرة .

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

انظر أيضاً

مراجع

  1. 1 2 "Unikernels: Rise of the Virtual Library Operating System" . تم الاطلاع عليه بتاريخ 31 أغسطس 2015 .
  2. تانينباوم، أندرو س. (2008). أنظمة التشغيل الحديثة ( الطبعة الثالثة). برنتيس هول. الصفحات 50-51 . ISBN   978-0-13-600663-3... يتم استدعاء جميع استدعاءات النظام تقريبًا من برامج C عن طريق استدعاء إجراء مكتبة ... يقوم إجراء المكتبة ... بتنفيذ تعليمة TRAP للتبديل من وضع المستخدم إلى وضع النواة وبدء التنفيذ ...
  3. تبديل السياق# تبديل وضع المستخدم ووضع النواة
  4. تشيا-تشي، تساي؛ أرورا، كومار-سوراب؛ باندي، نهال؛ جاين، بهوشان؛ جانين، ويليام؛ جون، جيتين؛ كالودنر، هاري؛ كولكارني، فروسالي؛ أوليفيرا، دانييلا؛ بورتر، دونالد إي. (2014). "التعاون والعزل الأمني ​​لأنظمة تشغيل المكتبات لتطبيقات متعددة العمليات". وقائع المؤتمر الأوروبي التاسع لأنظمة الحاسوب (ملف PDF) . الصفحات 1-14 . CiteSeerX 10.1.1.589.1837 . doi : 10.1145/2592798.2592812 . ISBN   9781450327046S2CID 13771821. مؤرشف من الأصل (PDF) بتاريخ 2016-03-04 . تم الاطلاع عليه بتاريخ 2015-08-31 . 
  5. "لماذا يمكن أن تُحسّن النواة الأحادية أمن الإنترنت" . أبريل 2015. تم الاطلاع عليه في 31 أغسطس 2015 .
  6. مادهافابيدي، أنيل؛ مورتييه، ريتشارد؛ شارالامبوس، روتسوس؛ سكوت، ديفيد؛ سينغ، بالراج؛ غازاغناير، توماس؛ سميث، ستيفن؛ هاند، ستيفن؛ كروكروفت، جون (مارس 2013). "أحادي النواة: أنظمة تشغيل مكتبية للحوسبة السحابية" (ملف PDF) . إشعارات ACM SIGPLAN . 48 (4): 461-472 . doi : 10.1145/2499368.2451167 .
  7. كالوبر-ميرشينياك، ديفيد؛ مينرت، هانز؛ مادهافابيدي، أنيل؛ سيويل، بيتر (2015). "بروتوكول TLS غير المعطل تمامًا: دروس في إعادة هندسة مواصفات بروتوكول الأمان وتنفيذه" . وقائع ندوة USENIX الأمنية الرابعة والعشرين (USENIX Security 15) .
  8. ثيبو، صموئيل؛ ديجان، تيم (2008). "تحسين الأداء من خلال تضمين تطبيقات الحوسبة عالية الأداء في نطاقات زين خفيفة الوزن" (ملف PDF) . ورشة العمل الثانية حول المحاكاة الافتراضية على مستوى النظام للحوسبة عالية الأداء (HPCVIRT'08) . doi : 10.1145/1435452.1435454 .
  9. مادهافابيدي، أنيل؛ مورتييه، ريتشارد؛ سوهان، ريبدومان؛ غازانيير، توماس؛ هاند، ستيفن؛ ديغان، تيم؛ مكولي، ديريك؛ كروكروفت، جون (2010). "خفض مستوى LAMP: تخصص البرمجيات للحوسبة السحابية" (ملف PDF) . وقائع المؤتمر الثاني لـ USENIX حول المواضيع الساخنة في الحوسبة السحابية .
  10. مارتينز، جواو؛ محمد، أحمد؛ رايسيو، كوستين؛ هويسي، فيليبي (2013). "تمكين معالجة الشبكة السريعة والديناميكية باستخدام clickOS". وقائع ورشة عمل ACM SIGCOMM الثانية حول المواضيع الساخنة في الشبكات المعرفة بالبرمجيات (PDF) . الصفحات 67-72 . doi : 10.1145/2491185.2491195 . ISBN  9781450321785. S2CID 12514038 . 
  11. ^ كوينزر، سيمون. بادويو، فلاد أندريه؛ لوفيفر، هوغو؛ سانتانام، شاران؛ يونغ، الكسندر. كسب، غولتييه؛ سولداني، سيريل؛ لوبو، كوستين؛ تيودوريسكو، ستيفان؛ رودوكانو، كوستي؛ بانو ، كريستيان (2021-04-21). "Unikraft: Unikernels سريعة ومتخصصة بالطريقة السهلة" . وقائع المؤتمر الأوروبي السادس عشر لأنظمة الكمبيوتر . حدث عبر الإنترنت المملكة المتحدة: ACM. ص 376 – 394. أرخايف : 2104.12721 . دوى : 10.1145/3447786.3456248 . رقم ISBN  978-1-4503-8334-9. S2CID 241528818 . 
  12. "استدعاء النوى الأحادية في الوقت المناسب (الإصدار 0.2)" . ماغنوس سكيجستاد . تم الاطلاع عليه بتاريخ 30 أغسطس 2015 .
  13. "زيرج" . زيرج - عرض توضيحي لنسخة واحدة لكل طلب . مؤرشف من الأصل في 22 سبتمبر 2015. تم الاسترجاع في 30 أغسطس 2015 .
  14. مادهافابيدي، أنيل؛ ليونارد، توماس؛ سكجستاد، ماغنوس؛ غازانيير، توماس؛ شيتس، ديفيد؛ سكوت، ديفيد؛ مورتييه، ريتشارد؛ شودري، أمير؛ سينغ، بالراج؛ لودلام، جون؛ كروكروفت، جون؛ ليزلي، إيان (2015). "جيتسو: استدعاء أحادي النواة في الوقت المناسب" (ملف PDF) . المؤتمر الثاني عشر لـ USENIX حول تصميم وتنفيذ الأنظمة الشبكية (NSDI) . ISBN 978-1-931971-218.