NetBSD төсөл нь шинэ NVMM гипервизорыг хөгжүүлж байна

NetBSD Төслийн Хөгжүүлэгчид зарласан Туршилтын NetBSD-одоогийн салбарт аль хэдийн орсон бөгөөд NetBSD 9-ийн тогтвортой хувилбарт санал болгох шинэ гипервизор болон холбогдох виртуалчлалын стекийг бий болгох тухай. NVMM нь одоогоор x86_64 архитектурыг дэмжихээр хязгаарлагдаж байгаа бөгөөд хоёр арын шугамаар хангадаг. техник хангамжийн виртуалчлалын механизмыг идэвхжүүлэх: Intel CPU-д зориулсан AMD болон x86-VMX CPU виртуалчлалын өргөтгөлүүдийг дэмждэг x86-SVM. Одоогийн байдлаар нэг хост дээр 128 хүртэлх виртуал машин ажиллуулах боломжтой бөгөөд тус бүрдээ 256 хүртэлх виртуал процессор цөм (VCPU) болон 128 ГБ RAM-ыг хуваарилах боломжтой.

NVMM нь системийн цөмийн түвшинд ажилладаг, техник хангамжийн виртуалчлалын механизмд хандах хандалтыг зохицуулдаг драйвер болон хэрэглэгчийн орон зайд ажилладаг Libnvmm стекийг агуулдаг. Цөмийн бүрэлдэхүүн хэсгүүд болон хэрэглэгчийн орон зай хоорондын харилцан үйлчлэл нь IOCTL-ээр дамждаг. NVMM-ийн нэг онцлог нь түүнийг KVM зэрэг гипервизоруудаас ялгадаг HAXM болон Bhyve нь цөмийн түвшинд зөвхөн техник хангамжийн виртуалчлалын механизмын эргэн тойронд шаардлагатай хамгийн бага багц холболтыг гүйцэтгэдэг бөгөөд бүх техник хангамжийн эмуляцын кодыг цөмөөс хэрэглэгчийн орон зайд шилжүүлдэг. Энэхүү арга нь өндөр эрхтэйгээр гүйцэтгэсэн кодын хэмжээг багасгаж, гипервизорын эмзэг байдалд халдсан тохиолдолд бүхэл бүтэн системийг эвдэх эрсдлийг бууруулах боломжийг олгодог. Нэмж дурдахад төслийн дибаг хийх, бүдгэрүүлэх туршилтыг мэдэгдэхүйц хялбаршуулсан болно.

Гэсэн хэдий ч Libnvmm нь өөрөө эмулятор функцийг агуулдаггүй бөгөөд зөвхөн NVMM дэмжлэгийг одоо байгаа эмуляторууд, жишээлбэл QEMU-д нэгтгэх боломжийг олгодог API-г өгдөг. API нь виртуал машин үүсгэх, эхлүүлэх, зочны системд санах ойг хуваарилах, VCPU хуваарилах зэрэг функцуудыг хамардаг. Аюулгүй байдлыг сайжруулж, болзошгүй халдлагын векторуудыг багасгахын тулд libnvmm нь зөвхөн тодорхой хүсэлт тавьсан функцуудыг хангадаг - анхдагчаар нарийн төвөгтэй зохицуулагчдыг автоматаар дууддаггүй бөгөөд зайлсхийх боломжтой бол огт ашиглахгүй байж болно. NVMM нь аливаа зүйлийг хэтэрхий төвөгтэй болгохгүйгээр энгийн байлгахыг хичээдэг бөгөөд танд ажлынхаа аль болох олон талыг хянах боломжийг олгодог.

NetBSD төсөл нь шинэ NVMM гипервизорыг хөгжүүлж байна

NVMM-ийн цөмийн түвшний хэсэг нь NetBSD цөмтэй нэлээд нягт уялдаатай бөгөөд зочин үйлдлийн систем болон хост орчны хоорондох контекст шилжүүлэгчийн тоог багасгах замаар гүйцэтгэлийг сайжруулах боломжийг олгодог. Хэрэглэгчийн орон зайн тал дээр libnvmm нь нийтлэг оролт гаралтын үйлдлүүдийг нэгтгэж, шаардлагагүйгээр системийн дуудлага хийхээс зайлсхийхийг оролддог. Санах ойн хуваарилалтын систем нь pmap дэд систем дээр суурилдаг бөгөөд энэ нь системд санах ойн хомсдол үүссэн тохиолдолд зочны санах ойн хуудсыг своп хуваалт руу гаргах боломжийг олгодог. NVMM нь дэлхийн хэмжээний түгжээгүй бөгөөд өөр өөр виртуал машинуудыг ажиллуулахын тулд өөр өөр CPU цөмийг нэгэн зэрэг ашиглах боломжийг танд олгоно.

Тоног төхөөрөмжийн виртуалчлалын механизмыг идэвхжүүлэхийн тулд NVMM ашигладаг QEMU-д суурилсан шийдлийг бэлтгэсэн. Бэлтгэсэн нөхөөсийг QEMU-ийн үндсэн бүтцэд оруулах ажил хийгдэж байна. QEMU+NVMM хослол аль хэдийн байна Энэ нь олгодог AMD болон Intel процессортой x7_8.1 системүүд дээр FreeBSD, OpenBSD, Linux, Windows XP/10/86/64 болон бусад үйлдлийн системтэй зочны системийг амжилттай ажиллуулж (NVMM өөрөө тодорхой архитектуртай холбогддоггүй, жишээлбэл, тохирох backend үүсгэсэн тохиолдолд). , энэ нь ARM64 систем дээр ажиллах боломжтой болно). NVMM-ийн цаашдын хэрэглээний талбаруудын дунд хувийн хэрэглээний хамгаалагдсан хязгаарлагдмал орчинд тусгаарлалтыг мөн тэмдэглэсэн болно.

NetBSD төсөл нь шинэ NVMM гипервизорыг хөгжүүлж байна

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх