NetBSD ပရောဂျက်ပြုစုသူများ
NVMM တွင် စနစ် kernel အဆင့်တွင် အလုပ်လုပ်ပြီး ဟာ့ဒ်ဝဲ virtualization ယန္တရားများသို့ ဝင်ရောက်ခွင့်ကို ညှိနှိုင်းပေးသည့် ဒရိုက်ဘာတစ်ခုနှင့် အသုံးပြုသူနေရာများတွင် လုပ်ဆောင်သည့် Libnvmm စတက်ခ်တစ်ခု ပါဝင်သည်။ kernel အစိတ်အပိုင်းများနှင့် အသုံးပြုသူနေရာတို့အကြား အပြန်အလှန်အကျိုးသက်ရောက်မှုကို IOCTL မှတဆင့် လုပ်ဆောင်သည်။ KVM ကဲ့သို့သော hypervisor များနှင့် ခွဲခြားသိမြင်နိုင်သော NVMM ၏အင်္ဂါရပ်တစ်ခုဖြစ်သည်။
သို့သော်၊ Libnvmm ကိုယ်တိုင်တွင် emulator လုပ်ဆောင်ချက်များ မပါဝင်သော်လည်း၊ ဥပမာ၊ QEMU တွင် NVMM ပံ့ပိုးမှုကို ပေါင်းစည်းနိုင်စေမည့် API တစ်ခုသာ ပံ့ပိုးပေးပါသည်။ API သည် virtual machine တစ်ခုကို ဖန်တီးခြင်းနှင့် စတင်ခြင်း၊ ဧည့်သည်စနစ်သို့ မှတ်ဉာဏ်များ ခွဲဝေပေးခြင်းနှင့် VCPU များကို ခွဲဝေပေးခြင်းစသည့် လုပ်ဆောင်ချက်များကို အကျုံးဝင်ပါသည်။ လုံခြုံရေးကို မြှင့်တင်ရန်နှင့် ဖြစ်နိုင်သော တိုက်ခိုက်မှု vector များကို လျှော့ချရန်၊ libnvmm သည် အတိအလင်း တောင်းဆိုထားသည့် လုပ်ဆောင်ချက်များကိုသာ ပေးဆောင်သည်—မူရင်းအားဖြင့်၊ ရှုပ်ထွေးသော ကိုင်တွယ်သူများကို အလိုအလျောက် ခေါ်မည်မဟုတ်ဘဲ ၎င်းတို့ကို ရှောင်ရှားနိုင်လျှင် လုံးဝ အသုံးမပြုနိုင်ပါ။ NVMM သည် ရိုးရှင်းလွန်းသဖြင့် ရှုပ်ထွေးမှုမရှိဘဲ ရိုးရှင်းနေစေရန်နှင့် သင့်လုပ်ငန်း၏ ကဏ္ဍများစွာကို တတ်နိုင်သမျှ ထိန်းချုပ်နိုင်စေရန် ကြိုးစားသည်။
NVMM ၏ kernel-level အပိုင်းသည် NetBSD kernel နှင့် အတော်လေး တင်းကျပ်စွာ ပေါင်းစပ်ထားပြီး ဧည့်သည် OS နှင့် host ပတ်၀န်းကျင်ကြားရှိ ဆက်စပ်ခလုတ်များ အရေအတွက်ကို လျှော့ချခြင်းဖြင့် ပိုမိုကောင်းမွန်သော စွမ်းဆောင်ရည်ကို ရရှိစေပါသည်။ အသုံးပြုသူနေရာလွတ်ဘက်တွင်၊ libnvmm သည် သာမန် I/O လုပ်ဆောင်ချက်များကို စုစည်းရန်နှင့် မလိုအပ်ဘဲ စနစ်ခေါ်ဆိုမှုများကို ရှောင်ရှားရန် ကြိုးစားသည်။ မမ်မိုရီခွဲဝေမှုစနစ်သည် စနစ်အတွင်းရှိ မမ်မိုရီပြတ်လပ်မှုဖြစ်လျှင် ဧည့်သည်မှတ်ဉာဏ်စာမျက်နှာများကို လဲလှယ်မှုအပိုင်းသို့ နှင်ထုတ်နိုင်စေမည့် pmap စနစ်ခွဲကို အခြေခံထားသည်။ NVMM သည် ကမ္ဘာလုံးဆိုင်ရာသော့ခလောက်များနှင့် စကေးများ ကောင်းမွန်စွာ ကင်းစင်ပြီး မတူညီသော ဧည့်သည် virtual machines များကို run ရန် မတူညီသော CPU cores များကို တစ်ပြိုင်နက် အသုံးပြုနိုင်သည်။
ဟာ့ဒ်ဝဲ virtualization ယန္တရားများကိုဖွင့်ရန် NVMM ကိုအသုံးပြုသည့် QEMU အခြေပြုဖြေရှင်းချက်တစ်ခုကို ပြင်ဆင်ထားပါသည်။ QEMU ၏ ပင်မဖွဲ့စည်းပုံတွင် ပြင်ဆင်ထားသော ဖာထေးမှုများကို ထည့်သွင်းရန် လုပ်ဆောင်နေပါသည်။ QEMU+NVMM ပေါင်းစပ်ပြီးဖြစ်သည်။
source: opennet.ru