NetBSD Proje Geliştiricileri
NVMM, sistem çekirdeği düzeyinde çalışan ve donanım sanallaştırma mekanizmalarına erişimi koordine eden bir sürücü ve kullanıcı alanında çalışan bir Libnvmm yığını içerir. Çekirdek bileşenleri ile kullanıcı alanı arasındaki etkileşim IOCTL aracılığıyla gerçekleştirilir. NVMM'yi KVM gibi hipervizörlerden ayıran bir özelliği de
Bununla birlikte, Libnvmm'nin kendisi öykünücü işlevleri içermez, ancak yalnızca NVMM desteğini mevcut öykünücülere, örneğin QEMU'ya entegre etmenize olanak tanıyan bir API sağlar. API, sanal makine oluşturma ve başlatma, konuk sisteme bellek ayırma ve VCPU'ları ayırma gibi işlevleri kapsar. Güvenliği artırmak ve olası saldırı vektörlerini azaltmak için libnvmm yalnızca açıkça talep edilen işlevleri sağlar; varsayılan olarak karmaşık işleyiciler otomatik olarak çağrılmaz ve bunlardan kaçınılabiliyorsa hiç kullanılmayabilir. NVMM, işleri çok karmaşık hale getirmeden basit tutmaya çalışır ve işinizin mümkün olduğu kadar çok yönünü kontrol etmenize olanak tanır.
NVMM'nin çekirdek düzeyindeki kısmı NetBSD çekirdeğiyle oldukça sıkı bir şekilde bütünleştirilmiştir ve konuk işletim sistemi ile ana bilgisayar ortamı arasındaki bağlam anahtarlarının sayısını azaltarak performansın iyileştirilmesine olanak tanır. Kullanıcı alanı tarafında libnvmm, ortak G/Ç işlemlerini birleştirmeye ve gereksiz sistem çağrıları yapmaktan kaçınmaya çalışır. Bellek ayırma sistemi, sistemde bellek yetersizliği durumunda konuk bellek sayfalarını takas bölümüne çıkarmanıza olanak tanıyan pmap alt sistemini temel alır. NVMM, küresel kilitlerden ve ölçeklendirmelerden arındırılmış olup, farklı konuk sanal makineleri çalıştırmak için aynı anda farklı CPU çekirdeklerini kullanmanıza olanak tanır.
Donanım sanallaştırma mekanizmalarını etkinleştirmek için NVMM'yi kullanan QEMU tabanlı bir çözüm hazırlandı. Hazırlanan yamaların QEMU ana yapısına dahil edilmesi için çalışmalar sürdürülmektedir. QEMU+NVMM kombinasyonu zaten
Kaynak: opennet.ru