NetBSD Layihə Tərtibatçıları
NVMM-ə sistem nüvəsi səviyyəsində işləyən və avadanlığın virtualizasiya mexanizmlərinə girişi koordinasiya edən sürücü və istifadəçi məkanında işləyən Libnvmm yığını daxildir. Kernel komponentləri ilə istifadəçi sahəsi arasında qarşılıqlı əlaqə IOCTL vasitəsilə həyata keçirilir. NVMM-ni KVM kimi hipervizorlardan fərqləndirən bir xüsusiyyətdir
Bununla belə, Libnvmm özü emulyator funksiyalarını ehtiva etmir, ancaq NVMM dəstəyini mövcud emulyatorlara, məsələn, QEMU-ya inteqrasiya etməyə imkan verən API təmin edir. API virtual maşının yaradılması və işə salınması, qonaq sisteminə yaddaşın ayrılması və VCPU-ların ayrılması kimi funksiyaları əhatə edir. Təhlükəsizliyi təkmilləşdirmək və mümkün hücum vektorlarını azaltmaq üçün libnvmm yalnız açıq şəkildə tələb olunan funksiyaları təmin edir—defolt olaraq, mürəkkəb işləyicilər avtomatik çağırılmır və onların qarşısını almaq olarsa, ümumiyyətlə istifadə olunmaya bilər. NVMM işləri çox mürəkkəbləşdirmədən sadə saxlamağa çalışır və işinizin mümkün qədər çox aspektinə nəzarət etməyə imkan verir.
NVMM-in nüvə səviyyəli hissəsi NetBSD nüvəsi ilə kifayət qədər sıx inteqrasiya olunub və qonaq ƏS ilə host mühiti arasında kontekst keçidlərinin sayını azaltmaqla performansı yaxşılaşdırmağa imkan verir. İstifadəçi məkanı tərəfində libnvmm ümumi giriş/çıxış əməliyyatlarını birləşdirməyə və lazımsız yerə sistem zəngləri etməkdən çəkinməyə çalışır. Yaddaşın ayrılması sistemi pmap altsisteminə əsaslanır ki, bu da sistemdə yaddaş çatışmazlığı zamanı qonaq yaddaş səhifələrini dəyişdirmə bölməsinə çıxarmağa imkan verir. NVMM qlobal kilidlərdən və yaxşı tərəzilərdən azaddır, bu da müxtəlif qonaq virtual maşınlarını idarə etmək üçün eyni vaxtda müxtəlif CPU nüvələrindən istifadə etməyə imkan verir.
Avadanlıqların virtualizasiya mexanizmlərini işə salmaq üçün NVMM-dən istifadə edən QEMU əsaslı həll hazırlanmışdır. Hazırlanmış yamaqların QEMU-nun əsas strukturuna daxil edilməsi istiqamətində işlər aparılır. QEMU+NVMM birləşməsi artıq mövcuddur
Mənbə: opennet.ru