MirageOS 4.0 کی ریلیز، ہائپر وائزر کے اوپر ایپلی کیشنز چلانے کے لیے ایک پلیٹ فارم

ڈیڑھ سال کی ترقی کے بعد، MirageOS 4.0 پروجیکٹ کی ریلیز شائع ہوئی ہے، جو ایک ایپلی کیشن کے لیے آپریٹنگ سسٹم بنانے کی اجازت دیتا ہے، جس میں ایپلیکیشن کو ایک خود ساختہ "unikernel" کے طور پر ڈیلیور کیا جاتا ہے، جو بغیر چلنے کے قابل ہے۔ آپریٹنگ سسٹمز، ایک علیحدہ OS کرنل اور کسی بھی تہہ کا استعمال۔ OCaml زبان کو ایپلی کیشنز تیار کرنے کے لیے استعمال کیا جاتا ہے۔ پروجیکٹ کوڈ مفت ISC لائسنس کے تحت تقسیم کیا جاتا ہے۔

آپریٹنگ سسٹم میں شامل تمام نچلی سطح کی فعالیت کو ایک لائبریری کی شکل میں لاگو کیا جاتا ہے جو درخواست کے ساتھ منسلک ہوتی ہے۔ ایپلیکیشن کسی بھی OS پر تیار کی جا سکتی ہے، جس کے بعد اسے ایک خصوصی کرنل (unikernel کا تصور) میں مرتب کیا جاتا ہے، جو Xen، KVM، BHyve اور VMM (OpenBSD) ہائپر وائزرز کے اوپر، موبائل پلیٹ فارمز کے اوپر براہ راست چل سکتا ہے۔ POSIX-مطابق ماحول میں یا کلاؤڈ ماحول Amazon Elastic Compute Cloud اور Google Compute Engine میں ایک عمل کی شکل۔

پیدا ہونے والے ماحول میں کوئی ضرورت سے زیادہ چیز نہیں ہوتی ہے اور یہ ڈرائیور یا سسٹم لیئرز کے بغیر ہائپر وائزر کے ساتھ براہ راست تعامل کرتا ہے، جس سے اوور ہیڈ اخراجات میں نمایاں کمی اور سیکیورٹی میں اضافہ ہوتا ہے۔ MirageOS کے ساتھ کام کرنا تین مراحل پر آتا ہے: ماحول میں استعمال ہونے والے OPAM پیکجوں کی وضاحت کے ساتھ کنفیگریشن کی تیاری، ماحول کو جمع کرنا، اور ماحول کو شروع کرنا۔ ہائپر وائزرز کے اوپر آپریشن کو یقینی بنانے کے لیے، رن ٹائم سولو 5 کرنل کی بنیاد پر بنایا گیا ہے۔

اس حقیقت کے باوجود کہ ایپلی کیشنز اور لائبریریاں اعلیٰ سطح کی OCaml زبان میں بنائی گئی ہیں، نتیجے میں ماحول کافی اچھی کارکردگی اور کم سے کم سائز کا مظاہرہ کرتا ہے (مثال کے طور پر، DNS سرور صرف 200 KB لیتا ہے)۔ ماحول کی دیکھ بھال کو بھی آسان بنایا گیا ہے، کیونکہ اگر پروگرام کو اپ ڈیٹ کرنا یا کنفیگریشن کو تبدیل کرنا ضروری ہے، تو یہ ایک نیا ماحول بنانے اور شروع کرنے کے لیے کافی ہے۔ OCaml زبان میں کئی سو لائبریریاں نیٹ ورک آپریشنز (DNS، SSH، OpenFlow، HTTP، XMPP، میٹرکس، OpenVPN، وغیرہ)، اسٹوریج کے ساتھ کام کرنے اور متوازی ڈیٹا پروسیسنگ فراہم کرنے کے لیے معاون ہیں۔

کلیدی اصلاحات:

  • منصوبوں اور یونیکرنل کو مرتب کرنے کے عمل کو تبدیل کر دیا گیا ہے۔ پہلے استعمال شدہ ocamlbuild اسمبلی سسٹم کے بجائے، dune ٹول کٹ اور لوکل ریپوزٹریز (monorepo) استعمال کیے جاتے ہیں۔ اس طرح کے ذخیرے بنانے کے لیے، ایک نئی افادیت، opam-monorepo شامل کی گئی ہے، جس سے پیکیج مینجمنٹ کو ماخذ کوڈ سے عمارت سے الگ کرنا ممکن ہو جاتا ہے۔ opam-monorepo یوٹیلیٹی کام کرتی ہے جیسے پراجیکٹ سے متعلقہ انحصار کے لیے لاک فائلیں بنانا، انحصاری کوڈ کو لوڈ کرنا اور نکالنا، اور ڈیون بلڈ سسٹم کو استعمال کرنے کے لیے ماحول کو ترتیب دینا۔ اصل اسمبلی ڈیون ٹول کٹ کے ذریعہ کی جاتی ہے۔
  • ایک دوبارہ قابل تعمیر عمل فراہم کیا جاتا ہے. لاک فائلوں کا استعمال انحصاری ورژن کا لنک فراہم کرتا ہے اور آپ کو کسی بھی وقت اسی کوڈ کے ساتھ تعمیراتی عمل کو مکمل طور پر دہرانے کی اجازت دیتا ہے۔
  • کراس کمپائلیشن کا ایک نیا عمل لاگو کیا گیا ہے اور ایک مشترکہ تعمیراتی ماحول سے تمام تعاون یافتہ ٹارگٹ پلیٹ فارمز کے لیے کراس کمپائل کرنے کی صلاحیت فراہم کی گئی ہے، جو ان پابندیوں کو شامل کرنے کی ضرورت کے بغیر انحصار اور لائبریریوں کو بھی کراس کمپائل کرتا ہے۔ اہم پیکج. کراس کمپائلیشن کو ٹیلے کی تعمیر کے نظام کے ذریعہ فراہم کردہ ورک اسپیس کا استعمال کرتے ہوئے منظم کیا جاتا ہے۔
  • نئے ہدف والے پلیٹ فارمز کے لیے سپورٹ شامل کی گئی ہے، مثال کے طور پر، Raspberry Pi 4 بورڈز پر چلانے کے لیے خود ساختہ ایپلی کیشنز بنانے کی تجرباتی صلاحیت فراہم کی گئی ہے۔
  • MirageOS کے حصوں کو OCaml زبان میں ترقی سے متعلق ماحولیاتی نظام میں ضم کرنے کے لیے کام کیا گیا ہے تاکہ unikernel کی شکل میں ایپلی کیشنز کی اسمبلی کو آسان بنایا جا سکے۔ بہت سے MirageOS پیکجوں کو ڈیون بلڈ سسٹم میں پورٹ کر دیا گیا ہے۔ opam-monorepo یوٹیلیٹی opam پیکج مینیجر کا استعمال کرتے ہوئے انسٹالیشن کے لیے دستیاب ہے اور اسے ایسے پروجیکٹس میں استعمال کیا جا سکتا ہے جو ڈیون بلڈ سسٹم استعمال کرتے ہیں۔ ایسے پیچ کو برقرار رکھنے کے لیے جو ٹیلے میں تعمیراتی انحصار کے مسائل کو حل کرتے ہیں، دو ذخیرے بنائے گئے ہیں: dune-universe/opam-overlays اور dune-universe/mirage-opam-overlays، جو mirage CLI یوٹیلیٹی کا استعمال کرتے وقت بطور ڈیفالٹ فعال ہوتے ہیں۔
  • C اور Rust لائبریریوں کے ساتھ MirageOS انضمام کو آسان بنایا گیا ہے۔
  • ایک نیا OCaml رن ٹائم تجویز کیا گیا ہے جو آپ کو libc (libc-free) کے بغیر کرنے کی اجازت دیتا ہے۔
  • مرلن سروس کو معیاری مربوط ترقیاتی ماحول کے ساتھ انضمام کے لیے استعمال کرنا ممکن ہے۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں