Multikernel ပရောဂျက်၏ ပထမဆုံး အများပြည်သူအတွက် ထုတ်ဝေမှုကို ထုတ်ပြန်လိုက်ပါပြီ။ Linux (mklinux-v7.0-mk2)၊ kernel ၏ ဖွံ့ဖြိုးတိုးတက်ရေးဗားရှင်း Linuxhypervisor သို့မဟုတ် virtualization မသုံးဘဲ တစ်ခုတည်းသော physical computer တွင် သီးခြား kernel instance များစွာကို run နိုင်သည့်စွမ်းရည်ဖြင့် မြှင့်တင်ထားသည်။ kernel instance တစ်ခုစီတွင် hardware resources များကို တိုက်ရိုက်ဝင်ရောက်ခွင့်ရှိပြီး သီးခြား၊ သီးခြား system environment များကို run ရန် အသုံးပြုနိုင်သည်။ ပထမဆုံးထုတ်ဝေမှုသည် kernel ကိုအခြေခံသည်။ Linux 7.0 တွင်ပါဝင်ပြီး "CONFIG_MULTIKERNEL" build setting ပါဝင်သည်။ disable လုပ်လိုက်သောအခါ kernel သည် stock 7.0 kernel နှင့် လုံးဝတူညီသွားမည်ဖြစ်သည်။ လက်ရှိတွင် x86_64 CPU architectures များကိုသာ ပံ့ပိုးပေးပါသည်။
Multikernel ကို hypervisor-based virtualization နှင့် shared-kernel container isolation အကြားကွာဟချက်ကိုဖြည့်ဆည်းပေးသည့် isolation mechanism အသစ်တစ်ခုအဖြစ် ကြော်ငြာနေကြသည်။ virtualization နှင့်မတူဘဲ Multikernel သည် hypervisor မလိုအပ်ဘဲ တစ်ဦးချင်း application များကို လည်ပတ်ရန်အတွက် isolated environment များဖန်တီးခြင်းကို ရိုးရှင်းစေပြီး virtualization ၏ overhead မပါဘဲ မြင့်မားသောစွမ်းဆောင်ရည်ကို ပေးစွမ်းသည်။ containers များနှင့်မတူဘဲ Multikernel သည် မြင့်မားသော isolation ကိုပေးစွမ်းပြီး isolated environment တစ်ခုချင်းစီတွင် kernel တစ်ခုကို သီးခြားအသုံးပြုခွင့်ပြုသောကြောင့် တစ်ခုတွင် crash သို့မဟုတ် vulnerability exploit သည် အခြား environment များကို မထိခိုက်စေပါ။

host kernel သည် ရရှိနိုင်သော CPU၊ မှတ်ဉာဏ်နှင့် PCI device များကို တစ်ပြိုင်နက်တည်း လည်ပတ်နေသော အခြား kernel instance များအကြား ဖြန့်ဝေပေးသည်။ instance တစ်ခုချင်းစီသည် သီးခြား သီးသန့် CPU core ပေါ်တွင် လည်ပတ်ပြီး ၎င်းအား သတ်မှတ်ထားသော device များဖြင့် လည်ပတ်ကာ physical memory ၏ သီးသန့်ဧရိယာသို့ ဝင်ရောက်ခွင့်ရှိသည်။ virtualization မပါဘဲ ရရှိနိုင်သော CPU များကို ဖြန့်ဝေပေးသည့် SMP handler ကို အသုံးပြု၍ multiple core များကို တစ်ပြိုင်နက်တည်း execution လုပ်နိုင်သည်။ လည်ပတ်နေသော environment များသို့ dynamic resource allocation ကို ပံ့ပိုးပေးထားပြီး ခန့်မှန်းနိုင်သော စွမ်းဆောင်ရည်ကို သေချာစေသည်။
virtualization မှာ ပါဝင်တဲ့ overhead ကို ဖယ်ရှားခြင်းအားဖြင့် Multikernel ကိုအသုံးပြုတဲ့ စွမ်းဆောင်ရည်ဟာ standalone hardware ပေါ်မှာ လည်ပတ်တာနဲ့ နီးစပ်တယ်လို့ ခန့်မှန်းရပါတယ်။ Multikernel သည် VM exit stage၊ L2 memory page များ၊ သီးခြား device model နှင့် IOMMU translation တို့ကို ဖယ်ရှားပေးပါတယ်။ hypervisor နှင့် နှိုင်းယှဉ်ပါက KVM Multikernel ကိုအသုံးပြုသောအခါ၊ system calls နှင့် functions အမျိုးမျိုး၏စွမ်းဆောင်ရည်သည် 1.07 မှ 2.5 ဆအထိတိုးလာသည် (fork + exit - 1.07x, write() - 1.39x, AF_UNIX - 1.55x, Pipe - 2.18x, context switching - 2.50x)၊ memory ဖြင့်အလုပ်လုပ်သောအခါ throughput နှင့် latency သည် တူညီသောအဆင့်တွင်ရှိသည်။

source: opennet.ru
