نمونه اولیه سیستم عامل فانتوم داخلی مبتنی بر Genode تا پایان سال آماده می شود

دیمیتری زاوالیشین در مورد پروژه ای برای پورت یک ماشین مجازی از سیستم عامل فانتوم برای کار در محیط سیستم عامل میکروکرنل Genode صحبت کرد. در این مصاحبه اشاره شده است که نسخه اصلی فانتوم در حال حاضر برای پروژه های آزمایشی آماده است و نسخه مبتنی بر Genode برای استفاده در پایان سال آماده خواهد شد. در عین حال، تنها یک نمونه اولیه مفهومی قابل اجرا در وب سایت پروژه اعلام شده است که پایداری و عملکرد آن به سطح مناسب برای مصارف صنعتی نرسیده است و در میان برنامه های فوری، شکل گیری نسخه آلفای مناسب برای آزمایش توسط توسعه دهندگان شخص ثالث ذکر شده است.

کد پروژه تحت مجوز LGPL توزیع شده است، اما آخرین تغییر در مخزن اصلی در نوامبر 2019 است. فعالیت عمومی مربوط به پروژه در یک مخزن با یک چنگال برای Genode متمرکز است که از دسامبر 2020 توسط Anton Antonov، دانشجوی دانشگاه Innopolis نگهداری می شود.

از اوایل دهه 2000، سیستم عامل فانتوم به عنوان پروژه شخصی دیمیتری زاوالیشین در حال توسعه است و از سال 2010 تحت بال شرکت Digital Zone ایجاد شده توسط دیمیتری منتقل شده است. این سیستم به دلیل تمرکز بر قابلیت اطمینان بالا و استفاده از مفهوم "همه چیز یک شی است" به جای "همه چیز یک فایل است" قابل توجه است، که به شما امکان می دهد بدون استفاده از فایل ها به دلیل حفظ وضعیت حافظه و یک چرخه مداوم کار برنامه های کاربردی در فانتوم خاتمه نمی یابند، بلکه فقط به حالت تعلیق در می آیند و از نقطه قطع شده از سر گرفته می شوند. تمام متغیرها و ساختارهای داده را می توان تا زمانی که برنامه نیاز دارد ذخیره کرد و برنامه نویس نیازی به نگرانی خاصی در مورد ذخیره داده ها ندارد.

برنامه های کاربردی در فانتوم در بایت کدی کامپایل می شوند که در یک ماشین مجازی مبتنی بر پشته، مشابه ماشین مجازی جاوا اجرا می شود. ماشین مجازی تداوم حافظه برنامه را تضمین می کند - سیستم به طور دوره ای عکس های فوری از وضعیت ماشین مجازی را به رسانه دائمی بازنشانی می کند. پس از خاموش شدن یا خرابی، کار می تواند از آخرین عکس لحظه ای حافظه ذخیره شده شروع شود. اسنپ ​​شات ها در حالت ناهمزمان و بدون توقف عملکرد ماشین مجازی ایجاد می شوند، اما یک برش یک بار مصرف در اسنپ شات ثبت می شود، گویی ماشین مجازی متوقف شده، در دیسک ذخیره شده و دوباره شروع به کار کرده است.

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

برای برنامه، به نظر می رسد کار مداوم است و به راه اندازی مجدد سیستم عامل، خرابی ها و خاموش شدن رایانه بستگی ندارد. مدل برنامه نویسی برای Phantom با اجرای یک سرور کاربردی بدون توقف برای یک زبان برنامه نویسی شی مقایسه می شود. انتقال برنامه های جاوا به فانتوم یکی از روش های اصلی توسعه برنامه در نظر گرفته می شود که با شباهت ماشین مجازی فانتوم به JVM تسهیل می شود. علاوه بر کامپایلر بایت کد برای زبان جاوا، پروژه قصد دارد کامپایلرهایی برای پایتون و سی شارپ ایجاد کند و همچنین یک مترجم از کد میانی WebAssembly پیاده سازی کند.

برای انجام عملیاتی که نیاز به کارایی بالایی دارند، مانند پردازش تصویر و صدا، می توان اشیاء باینری را با کد بومی در رشته های جداگانه اجرا کرد (LLVM برای جمع آوری اشیاء باینری استفاده می شود). برای دسترسی به خدمات هسته سطح پایین، برخی از کلاس های VM (کلاس های "داخلی") در سطح هسته سیستم عامل پیاده سازی می شوند. برای اجرای برنامه های لینوکس، یک لایه POSIX ارائه شده است که فراخوانی های لازم برای عملکرد فرآیندهای یونیکس را شبیه سازی می کند (هنوز پایداری برای برنامه های کاربردی در لایه POSIX ارائه نشده است).

نمونه اولیه سیستم عامل فانتوم داخلی مبتنی بر Genode تا پایان سال آماده می شود

سیستم عامل فانتوم سنتی، علاوه بر ماشین مجازی، شامل هسته مخصوص به خود با اجرای موضوعات، مدیر حافظه، جمع‌آوری زباله، مکانیسم‌های همگام‌سازی، سیستم ورودی/خروجی و درایورهای کار با سخت‌افزار است که اجرای پروژه را به‌طور چشمگیری پیچیده می‌کند. آمادگی برای استفاده گسترده به طور جداگانه، اجزایی با یک پشته شبکه، یک زیر سیستم گرافیکی و یک رابط کاربری در حال توسعه هستند. قابل ذکر است که زیرسیستم گرافیک و مدیر پنجره در سطح کرنل کار می کنند.

برای افزایش پایداری، قابلیت حمل و امنیت پروژه، تلاش شد تا ماشین مجازی فانتوم با استفاده از اجزای سیستم عامل میکروکرنل باز Genode که توسعه آن تحت نظارت شرکت آلمانی Genode Labs به کار می‌رود، کار کند. برای کسانی که می خواهند با Phantom مبتنی بر Genode آزمایش کنند، یک محیط ساخت ویژه مبتنی بر Docker آماده شده است.

استفاده از Genode امکان استفاده از میکروکرنل ها و درایورهای از قبل اثبات شده و همچنین انتقال درایورها به فضای کاربر را ممکن می کند (در شکل فعلی، درایورها به زبان C نوشته شده و در سطح هسته فانتوم اجرا می شوند). به طور خاص، امکان استفاده از میکروکرنل seL4 وجود خواهد داشت که تأیید اعتبار ریاضی را انجام داده است و تأیید می کند که پیاده سازی کاملاً با مشخصات مشخص شده در زبان رسمی مطابقت دارد. امکان تهیه مدرک مشابهی از قابلیت اطمینان برای ماشین مجازی فانتوم در نظر گرفته شده است که امکان تأیید کل محیط سیستم عامل را فراهم می کند.

حوزه کاربردی اصلی برای پورت مبتنی بر Genode، توسعه برنامه های کاربردی برای دستگاه های مختلف صنعتی و تعبیه شده است. در حال حاضر، مجموعه ای از تغییرات برای ماشین مجازی آماده شده است و اتصالاتی اضافه شده است که در بالای Genode برای اطمینان از پایداری اجزای هسته و رابط های اصلی سطح پایین کار می کند. خاطرنشان می شود که ماشین مجازی Phantom می تواند در محیط Genode 64 بیتی کار کند، اما هنوز هم لازم است VM را در حالت پایداری پیاده سازی کرد، زیرسیستم راننده را مجدداً کار کرد و اجزا را با یک پشته شبکه و یک زیر سیستم گرافیکی برای Genode تطبیق داد.

نمونه اولیه سیستم عامل فانتوم داخلی مبتنی بر Genode تا پایان سال آماده می شود
نمونه اولیه سیستم عامل فانتوم داخلی مبتنی بر Genode تا پایان سال آماده می شود
نمونه اولیه سیستم عامل فانتوم داخلی مبتنی بر Genode تا پایان سال آماده می شود


منبع: opennet.ru

اضافه کردن نظر