منصوبے کے بارے میں

ہائپرلائٹ ایک ہلکا پھلکا ورچوئل مشین منیجر (VMM) ہے جس کا مقصد ایپلیکیشنز کے اندر لائبریری کے طور پر ایمبیڈ کرنا ہے، جس سے وہ غیر محفوظ کوڈ کو ہائپروائزر سے الگ تھلگ مائیکرو ورچوئل مشینوں کے اندر چلا سکیں۔ یہ کلاؤڈ نیٹو کمپیوٹنگ فاؤنڈیشن کا سینڈ باکس پروجیکٹ ہے اور فی الحال 1.0 سے پہلے کے مرحلے میں ہے، لہذا API ریلیز کے درمیان تبدیل ہو سکتی ہے۔ یہ کیسے کام کرتا ہے: ہوسٹ ایپلیکیشن گسٹ بائنری سے سینڈ باکس بناتی ہے اور VM کی حد کے پار فنکشنز کو مقامی فنکشنز کی طرح کال کرتی ہے۔ گسٹس مقصد کے لیے بنائی گئی ELF بائنریز ہیں جو no_std رسٹ یا C میں لکھی جاتی ہیں، جن میں کوئی گسٹ کرنل یا آپریٹنگ سسٹم نہیں ہوتا، جو اسٹارٹ اپ وقت اور میموری فٹ پرنٹ کو کم رکھتا ہے۔ ہوسٹ اور گسٹ ٹائپ شدہ فنکشن کالز کے ذریعے بات چیت کرتے ہیں، اور گسٹس بطور ڈیفالٹ سینڈ باکسڈ ہوتے ہیں جن کی ہوسٹ فائل سسٹم یا نیٹ ورک تک کوئی رسائی نہیں ہوتی۔ گسٹ کی حالت کالز کے دوران برقرار رہتی ہے، اور snapshot()/restore() VM میموری کو محفوظ اور ری سیٹ کر سکتے ہیں تاکہ سینڈ باکسز کو VM دوبارہ بنائے بغیر دوبارہ استعمال کیا جا سکے۔ معاون ہائپروائزرز میں KVM، MSHV اور ونڈوز ہائپروائزر پلیٹ فارم شامل ہیں۔ README ایک ہوسٹ مثال دکھاتا ہے جو ایک ہوسٹ فنکشن رجسٹر کرتی ہے اور گسٹ میں کال کرتی ہے، اور ایک گسٹ مثال جو #[host_function] اور #[guest_function] جیسے میکروز استعمال کرتی ہے۔ بیان کردہ استعمال کے کیسز میں غیر محفوظ یا تھرڈ پارٹی کوڈ کو ہائپروائزر سطح کی تنہائی کے ساتھ چلانا، ملی سیکنڈ میں سینڈ باکس بنانا اور ختم کرنا، مائیکرو سیکنڈ میں گسٹ فنکشن کالز کرنا، ایپلیکیشن میں سینڈ باکسڈ ایگزیکیوشن ایمبیڈ کرنا، ہائپروائزر تنہائی کے ساتھ فنکشنز-ایز-اے-سروس بنانا، اور snapshot اور restore کے ذریعے سینڈ باکسز کا دوبارہ استعمال شامل ہیں۔ پروجیکٹ واضح طور پر کہتا ہے کہ یہ عام مقصد کی ورچوئلائزیشن یا مکمل لینکس گسٹ ورک لوڈز چلانے کے لیے نہیں ہے جنہیں سس کالز، نیٹ ورکنگ یا فائل سسٹم تک رسائی کی ضرورت ہو۔ ریپوزٹری ہوسٹ اور گسٹ لائبریریوں، ایک C API ریپر، picolibc سے بنائی گئی گسٹ libc، گسٹ اور کمپوننٹ میکروز، ٹریسنگ سپورٹ، مشترکہ کامن کوڈ، FlatBuffer اسکیما تعریفات، ایک ٹریس ڈمپ ٹول، اور رسٹ اور C میں ٹیسٹ گسٹ پروگراموں میں منظم ہے۔ متعلقہ پروجیکٹس میں cargo-hyperlight گسٹس کی تعمیر اور اسکیفولڈنگ کے لیے، hyperlight-wasm WebAssembly ماڈیولز کے لیے، hyperlight-js جاوا اسکرپٹ کے لیے، hyperlight-sandbox پائتھون، .NET اور رسٹ SDKs کے ساتھ ملٹی بیک اینڈ سینڈ باکسنگ کے لیے، اور hyperlight-unikraft لینکس ایپلیکیشنز کو Unikraft بطور گسٹ کرنل استعمال کرتے ہوئے چلانے کے لیے شامل ہیں۔ دستاویزات، شراکت کی ہدایات اور کمیونٹی میٹنگ کی تفصیلات ریپوزٹری میں فراہم کی گئی ہیں۔