HermiTux: یک هسته باینری با برنامه های Linux سازگار است

هرمی توکس

گروهی از محققان از دانشگاه پلی تکنیک ویرجینیا (ایالات متحده آمریکا)، دانشگاه فنی کوالکام و آخن راین-وستفالیا (آلمان) آنها در حال توسعه هستند هسته سبک هرمی توکس، مربوط به الگوی unikernel است.

HermiTux است در نظر گرفته شده است که اجازه می دهد برنامه ها را مستقیماً در hypervisor اجرا کنید بدون نیاز به لایه های اضافی ، که سازگاری دودویی را با برنامه های Linux در سطح ABI فراهم می کند.

کد HermiTux به زبان برنامه نویسی C نوشته شده است و تحت مجوز BSD توزیع می شود.

HermiTux حداقل محیط سیستم عامل را فراهم می کند با هسته خاص خود (unikernel) ، که منابع بسیار کمتری مصرف می کند نسبت به ایجاد محیط بر اساس هسته لینوکس معمولی.

با آن این به شما امکان می دهد تا سریع برنامه ها را در hypervisor راه اندازی کنید: زمان شروع از 0,1 ثانیه بیشتر نیست.

در آزمونهای عملکرد HermiTux، حدود 3٪ در محیط های دارای هسته لینوکس منظم عقب مانده است ، زیرا این امر باعث می شود I / O به سمت میزبان هدایت شود.

مصرف حافظه در محیط آزمایش 9 مگابایت بود که 10 برابر کمتر از استفاده از هسته لینوکس است (مصرف داکر به دلیل استفاده از هسته مشترک با محیط میزبان بدون استفاده از مجازی سازی کامل حدود 2 مگابایت بود).

درباره HermiTux

هرمی توکس برجسته شده است به عنوان در نظر گرفته شده برای توانایی اجرای برنامه های اصلاح نشده ایجاد شده برای لینوکس ، این از طریق پشتیبانی از قالب ELF انجام می شود، اجرای تماس های سیستم لینوکس و تقلید از سیستم های پرونده مجازی.

در مرحله فعلی توسعه HermiTux ، این 83 تماس سیستمی را اجرا می کند. در مجموع ، هسته لینوکس بیش از 350 تماس سیستمی را ارائه می دهد ، اما تنها بخش کوچکی از آنها در برنامه های واقعی استفاده می شود (برای پوشش 90٪ برنامه های توزیع منظم ، اجرای 200 تماس سیستمی کافی است).

برای کاهش تأخیر در هنگام پردازش تماس های سیستم ، مکانیزمی اختیاری برای تعریف مجدد (بازنویسی) تماس های سیستم برای فراخوانی توابع معمولی هسته اجرا می شود.

برای برنامه های مرتبط با ایستا ، می توان دستورات syscall را با فراخوانی عملکردها در یک فایل اجرایی جایگزین کرد.

برای برنامه های مرتبط با پویا ، جایگزینی در سطح استاندارد کتابخانه انجام می شود.

علاوه بر این، ابزارهایی برای تجزیه و تحلیل فراخوانی سیستم موجود در پرونده های اجرایی آماده شده است که به شما امکان می دهد حداقل یک تصویر HermiTux را جمع آوری کنید که فقط شامل کدهای لازم برای پردازش فقط تماس های سیستمی مورد استفاده در برنامه است.

هرمی توکس

ویژگی های HermiTux

هرمی توکس از یک hypervisor سبک مبتنی بر KVM استفاده می کند که باینری لینوکس را همراه با حداقل لایه بارگیری می کند از سیستم عامل در یک فضای مجازی ماشین مجازی واحد. هنگام اجرا ، تماس های سیستمی ایجاد شده توسط برنامه توسط هسته HermiTux گرفته می شود.

به صورت اختیاری ، HermiTux مکانیزمی برای بازنویسی فراخوانی تماسهای سیستمی فراهم می کند در تماس های عملکرد هسته مشترک ، تاخیر تماس سیستم را به طور قابل توجهی کاهش می دهد.

از نظر حفاظت ، مدولاریته گفته شده اجازه می دهدوبه جای فیلتر کردن ، سیستم های استفاده نشده تماس می گیرند (به عنوان مثال ، از طریق seccomp) به آنها را کاملا از هسته خارج کنید.

برنامه در یک فضای آدرس مشترک اجرا می شود (HermiTux به گونه ای طراحی شده است که در بالای یک hypervisor برنامه کاربردی اجرا شود).

پشتیبانی موضوعی اولیه (Pthreads Embedded) ارائه شده است.

به عنوان سیستم فایل ، MiniFS پیشنهاد شده است، که در آن پرونده ها در RAM (دیسک RAM) قرار می گیرند و برخی از عناصر سیستم فایل مجازی (/ dev / zero ، proc / cpuinfo و غیره) تقلید می شوند.

پشته TCP / IP مبتنی بر پروژه LWIP است و نسخه اصلاح شده پروژه Musl به عنوان کتابخانه استاندارد C استفاده می شود.

HermiTux نیازی به تجمیع مجدد برنامه ها ندارد و به شما امکان می دهد هم پرونده های اجرایی کامپایل شده (مربوط به حالت ایستا و پویا) و هم برنامه ها را به زبان های تفسیری (پایتون ، لوآ و غیره) اجرا کنید.

پیوند پروژه.


محتوای مقاله به اصول ما پیوست اخلاق تحریریه. برای گزارش یک خطا کلیک کنید اینجا.

اولین کسی باشید که نظر

نظر خود را بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند با *

*

*

  1. مسئول داده ها: میگل آنخل گاتون
  2. هدف از داده ها: کنترل هرزنامه ، مدیریت نظرات.
  3. مشروعیت: رضایت شما
  4. ارتباط داده ها: داده ها به اشخاص ثالث منتقل نمی شوند مگر با تعهد قانونی.
  5. ذخیره سازی داده ها: پایگاه داده به میزبانی شبکه های Occentus (EU)
  6. حقوق: در هر زمان می توانید اطلاعات خود را محدود ، بازیابی و حذف کنید.