नेटबीएसडी प्रोजेक्ट डेव्हलपर्स नवीन हायपरवाइजर आणि संबंधित व्हर्च्युअलायझेशन स्टॅकच्या निर्मितीबद्दल, जे आधीपासून प्रायोगिक NetBSD-वर्तमान शाखेत समाविष्ट केले गेले आहे आणि NetBSD 9 च्या स्थिर प्रकाशनात ऑफर केले जाईल. NVMM सध्या x86_64 आर्किटेक्चरला समर्थन देण्यासाठी मर्यादित आहे आणि यासाठी दोन बॅकएंड प्रदान करते हार्डवेअर वर्च्युअलायझेशन यंत्रणा सक्षम करणे: इंटेल CPUs साठी AMD आणि x86-VMX CPU वर्च्युअलायझेशन विस्तारासाठी समर्थनासह x86-SVM. सध्याच्या स्वरूपात, एका होस्टवर 128 पर्यंत व्हर्च्युअल मशीन चालवणे शक्य आहे, ज्यापैकी प्रत्येकाला 256 वर्च्युअल प्रोसेसर कोर (VCPU) आणि 128 GB RAM वाटप केले जाऊ शकते.
NVMM मध्ये ड्राइव्हर समाविष्ट आहे जो सिस्टम कर्नल स्तरावर चालतो आणि हार्डवेअर व्हर्च्युअलायझेशन मेकॅनिझममध्ये प्रवेश समन्वयित करतो आणि वापरकर्ता स्पेसमध्ये चालणारा Libnvmm स्टॅक समाविष्ट करतो. कर्नल घटक आणि वापरकर्ता जागा यांच्यातील परस्पर क्रिया IOCTL द्वारे केली जाते. NVMM चे वैशिष्ट्य जे KVM सारख्या हायपरवाइजर्सपासून वेगळे करते आणि Bhyve, असे आहे की कर्नल स्तरावर हार्डवेअर वर्च्युअलायझेशन मेकॅनिझम्सभोवती बंधनांचा किमान आवश्यक सेट केला जातो, आणि सर्व हार्डवेअर इम्युलेशन कोड कर्नलच्या बाहेर वापरकर्त्याच्या जागेत हलवले जातात. हा दृष्टीकोन तुम्हाला उन्नत विशेषाधिकारांसह अंमलात आणलेल्या कोडचे प्रमाण कमी करण्यास आणि हायपरवाइजरमधील असुरक्षांवर हल्ला झाल्यास संपूर्ण सिस्टमशी तडजोड करण्याचा धोका कमी करण्यास अनुमती देतो. याव्यतिरिक्त, प्रकल्पाची डीबगिंग आणि फझिंग चाचणी लक्षणीयरीत्या सरलीकृत आहे.
तथापि, Libnvmm मध्ये स्वतः इम्युलेटर फंक्शन्स नसतात, परंतु फक्त एक API प्रदान करते जे तुम्हाला NVMM समर्थन विद्यमान इम्युलेटर्समध्ये समाकलित करण्याची परवानगी देते, उदाहरणार्थ, QEMU. API मध्ये वर्च्युअल मशीन तयार करणे आणि लॉन्च करणे, अतिथी प्रणालीला मेमरी वाटप करणे, आणि VCPUs वाटप करणे यासारखी कार्ये समाविष्ट आहेत. सुरक्षा सुधारण्यासाठी आणि संभाव्य अटॅक वेक्टर कमी करण्यासाठी, libnvmm फक्त स्पष्टपणे विनंती केलेली फंक्शन्स पुरवतो-डिफॉल्टनुसार, कॉम्प्लेक्स हँडलर्स आपोआप कॉल केले जात नाहीत आणि जर ते टाळता आले तर अजिबात वापरले जाऊ शकत नाहीत. NVMM गोष्टी सोप्या ठेवण्याचा प्रयत्न करते, खूप क्लिष्ट न होता, आणि तुम्हाला तुमच्या कामाच्या जास्तीत जास्त पैलूंवर नियंत्रण ठेवण्याची परवानगी देते.
NVMM चा कर्नल-स्तरीय भाग NetBSD कर्नलसह अगदी घट्टपणे समाकलित केलेला आहे, आणि अतिथी OS आणि होस्ट वातावरणातील संदर्भ स्विचेसची संख्या कमी करून सुधारित कार्यप्रदर्शनास अनुमती देतो. वापरकर्त्याच्या जागेच्या बाजूने, libnvmm सामान्य I/O ऑपरेशन्स एकत्रित करण्याचा प्रयत्न करते आणि अनावश्यकपणे सिस्टम कॉल करणे टाळते. मेमरी वाटप प्रणाली pmap उपप्रणालीवर आधारित आहे, जी तुम्हाला सिस्टीममधील मेमरी कमी झाल्यास अतिथी मेमरी पृष्ठे स्वॅप विभाजनामध्ये बाहेर काढण्याची परवानगी देते. NVMM जागतिक लॉक आणि स्केलपासून मुक्त आहे, ज्यामुळे तुम्हाला वेगवेगळ्या अतिथी व्हर्च्युअल मशीन चालवण्यासाठी एकाच वेळी वेगवेगळ्या CPU कोरचा वापर करता येतो.
हार्डवेअर वर्च्युअलायझेशन यंत्रणा सक्षम करण्यासाठी NVMM वापरणारे QEMU-आधारित समाधान तयार केले गेले आहे. QEMU च्या मुख्य संरचनेत तयार पॅचेस समाविष्ट करण्याचे काम सुरू आहे. QEMU+NVMM संयोजन आधीच आहे फ्रीबीएसडी, ओपनबीएसडी सह गेस्ट सिस्टीम यशस्वीरित्या चालवा, Linux, Windows AMD आणि Intel प्रोसेसर असलेल्या x86_64 सिस्टीमवरील XP/7/8.1/10 आणि इतर ऑपरेटिंग सिस्टीम (NVMM स्वतः कोणत्याही विशिष्ट आर्किटेक्चरशी जोडलेले नाही; उदाहरणार्थ, योग्य बॅकएंडसह, ते ARM64 सिस्टीमवर चालू शकते). NVMM च्या पुढील उपयोगांमध्ये वैयक्तिक ॲप्लिकेशन्सना सँडबॉक्स करणे समाविष्ट आहे.
स्त्रोत: opennet.ru
