HermiTux: برنامج unikernel ثنائي متوافق مع تطبيقات Linux

هيرميتوكس

مجموعة من الباحثين من جامعة فيرجينيا بوليتكنيك (الولايات المتحدة الأمريكية)، كوالكوم وجامعة آخن راين فيستفالن التقنية (ألمانيا) إنهم يتطورون جوهر خفيف الوزن هيرميتوكس، المقابلة لنموذج unikernel.

HermiTux هو يهدف إلى السماح بتشغيل التطبيقات مباشرة على برنامج Hypervisor دون الحاجة إلى طبقات إضافية ، الذي يوفر توافقًا ثنائيًا مع تطبيقات Linux على مستوى ABI.

كود HermiTux إنه مكتوب بلغة البرمجة C ويتم توزيعه بموجب ترخيص BSD.

يوفر HermiTux الحد الأدنى من بيئة نظام التشغيل مع نواة خاصة بها (unikernel) ، والتي يستهلك موارد أقل بكثير مقارنة بإنشاء بيئات تستند إلى نواة Linux عادية.

مع هذا يسمح لك بتشغيل التطبيقات بسرعة على برنامج Hypervisor: لا يتجاوز وقت بدء التشغيل 0,1 ثانية.

في اختبارات أداء HermiTux، يتأخر حوالي 3٪ في البيئات التي تحتوي على نواة Linux عادية ، بسبب النفقات العامة لإعادة توجيه الإدخال / الإخراج إلى الجانب المضيف.

كان استهلاك الذاكرة في بيئة الاختبار 9 ميغا بايت ، وهو 10 مرات أقل من استخدام Linux kernel (كان استهلاك Docker حوالي 2 ميجابايت بسبب استخدام نواة مشتركة مع بيئة المضيف دون استخدام المحاكاة الافتراضية الكاملة)

حول HermiTux

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

في المرحلة الحالية من تطوير HermiTux ، هذا تنفذ 83 مكالمة نظام. في المجموع ، توفر Linux kernel أكثر من 350 استدعاء للنظام ، ولكن يتم استخدام جزء صغير منها فقط في التطبيقات الحقيقية (لتغطية 90٪ من برامج التوزيعات العادية ، يكفي تنفيذ 200 استدعاء للنظام) .

لتقليل التأخير أثناء معالجة استدعاءات النظام ، يتم تنفيذ آلية اختيارية لإعادة تعريف (إعادة كتابة) استدعاءات النظام لاستدعاء وظائف kernel النموذجية.

للتطبيقات ذات الصلة بشكل ثابت ، من الممكن استبدال جمل syscall باستدعاءات الدوال في ملف قابل للتنفيذ.

بالنسبة للتطبيقات ذات الصلة ديناميكيًا ، يتم الاستبدال على مستوى المكتبة القياسي.

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

هيرميتوكس

ميزات HermiTux

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

اختياريا ، HermiTux يوفر آلية لإعادة كتابة استدعاء استدعاءات النظام على استدعاءات وظائف kernel الشائعة ، مما يقلل بشكل كبير من زمن انتقال مكالمات النظام

من وجهة نظر الحماية ، قال النمطية تسمحوبدلاً من التصفية ، مكالمات النظام غير المستخدمة (على سبيل المثال ، عبر seccomp) إلى استبعادهم تمامًا من النواة.

يتم تشغيل التطبيق في مساحة عنوان مشتركة (تم تصميم HermiTux للتشغيل فوق برنامج Hypervisor لتطبيق واحد).

يتم توفير دعم الخيوط الأساسي (Pthreads Embedded).

كنظام ملفات ، يُقترح MiniFS، حيث يتم وضع الملفات في RAM (قرص RAM) ويتم محاكاة بعض عناصر أنظمة الملفات الافتراضية (/ dev / zero و proc / cpuinfo وما إلى ذلك).

يعتمد مكدس TCP / IP على مشروع LWIP ، ويتم استخدام نسخة معدلة من مشروع Musl كمكتبة C قياسية.

لا يتطلب HermiTux أي إعادة تجميع للتطبيقات ويسمح لك بتشغيل الملفات القابلة للتنفيذ المترجمة (المرتبطة بشكل ثابت وديناميكي) والتطبيقات باللغات المفسرة (Python و Lua وما إلى ذلك).

رابط المشروع.


كن أول من يعلق

اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.