NetBSD پروجيڪٽ ڊولپرز
NVMM ۾ هڪ ڊرائيور شامل آهي جيڪو سسٽم ڪنييل سطح تي هلندو آهي ۽ هارڊويئر ورچوئلائيزيشن ميڪانيزم تائين رسائي کي همراه ڪري ٿو، ۽ هڪ Libnvmm اسٽيڪ جيڪو صارف جي جاء تي هلندو آهي. ڪنييل اجزاء ۽ صارف جي جاء جي وچ ۾ رابطي IOCTL ذريعي ڪيو ويندو آهي. NVMM جي هڪ خصوصيت جيڪا ان کي هائپرائزرز کان ڌار ڪري ٿي جهڙوڪ KVM آهي
بهرحال، Libnvmm پاڻ ايموليٽر افعال تي مشتمل ناهي، پر صرف هڪ API مهيا ڪري ٿو جيڪا توهان کي NVMM سپورٽ کي موجوده ايموليٽرز ۾ ضم ڪرڻ جي اجازت ڏئي ٿي، مثال طور، QEMU. API ڪمن کي ڍڪيندو آهي جهڙوڪ هڪ ورچوئل مشين ٺاهڻ ۽ لانچ ڪرڻ، گيسٽ سسٽم کي ميموري مختص ڪرڻ، ۽ VCPUs مختص ڪرڻ. سيڪيورٽي کي بهتر ڪرڻ ۽ ممڪن حملي جي ویکٹر کي گهٽائڻ لاءِ، libnvmm صرف اهي ڪم مهيا ڪري ٿو جيڪي واضح طور تي گهربل آهن- ڊفالٽ طور، پيچيده هينڊلر پاڻمرادو نه سڏيا ويندا آهن ۽ شايد استعمال نه ڪيا ويندا آهن جيڪڏهن انهن کان بچي سگهجي. NVMM شين کي سادو رکڻ جي ڪوشش ڪري ٿو، تمام پيچيده ٿيڻ کان سواء، ۽ توهان کي ممڪن طور تي توهان جي ڪم جي ڪيترن ئي حصن کي ڪنٽرول ڪرڻ جي اجازت ڏئي ٿي.
NVMM جو kernel-level حصو NetBSD kernel سان ڪافي مضبوطيءَ سان ضم ٿيل آھي، ۽ مھمان OS ۽ ھوسٽ ماحول جي وچ ۾ ڪنٽينيڪٽ سوئچز جو تعداد گھٽائي ڪارڪردگي کي بھتر ڪرڻ جي اجازت ڏئي ٿو. يوزر اسپيس سائڊ تي، libnvmm عام I/O عملن کي گڏ ڪرڻ جي ڪوشش ڪري ٿو ۽ غير ضروري طور تي سسٽم ڪالون ڪرڻ کان پاسو ڪري ٿو. ميموري مختص ڪرڻ وارو نظام pmap سب سسٽم تي ٻڌل آهي، جيڪو توهان کي سسٽم ۾ ميموري جي گھٽتائي جي صورت ۾ گيسٽ ميموري صفحن کي سوپ ورهاڱي ڏانهن ڪڍڻ جي اجازت ڏئي ٿو. NVMM عالمي لاڪ ۽ اسڪيل کان پاڪ آهي، توهان کي مختلف مهمان ورچوئل مشينن کي هلائڻ لاءِ هڪ ئي وقت مختلف CPU ڪور استعمال ڪرڻ جي اجازت ڏئي ٿي.
هڪ QEMU تي ٻڌل حل تيار ڪيو ويو آهي جيڪو هارڊويئر ورچوئلائيزيشن ميڪانيزم کي فعال ڪرڻ لاءِ NVMM استعمال ڪري ٿو. تيار ڪيل پيچ کي QEMU جي بنيادي ڍانچي ۾ شامل ڪرڻ لاءِ ڪم جاري آهي. QEMU + NVMM ميلاپ اڳ ۾ ئي آهي
جو ذريعو: opennet.ru