Google သည် လုံခြုံသောလည်ပတ်မှုစနစ် KataOS အတွက် ကုဒ်ကိုဖွင့်ခဲ့သည်။

Google သည် မြှုပ်သွင်းထားသော ဟာ့ဒ်ဝဲအတွက် လုံခြုံသောလည်ပတ်မှုစနစ်ကို ဖန်တီးရန် ရည်ရွယ်သည့် KataOS ပရောဂျက်နှင့် ပတ်သက်သည့် တိုးတက်မှုများကို ရှာဖွေတွေ့ရှိကြောင်း ကြေညာခဲ့သည်။ KataOS စနစ်၏ အစိတ်အပိုင်းများကို Rust ဖြင့် ရေးသားထားပြီး seL4 မိုက်ခရိုကာနယ်၏ ထိပ်တွင် လည်ပတ်နေသည်၊ ၎င်းသည် RISC-V စနစ်များတွင် သင်္ချာဆိုင်ရာ ယုံကြည်စိတ်ချရမှုဆိုင်ရာ အထောက်အထားကို ပေးဆောင်ထားပြီး၊ ကုဒ်သည် တရားဝင်ဘာသာစကားတွင် သတ်မှတ်ထားသည့် သတ်မှတ်ချက်များနှင့် အပြည့်အဝကိုက်ညီကြောင်း ညွှန်ပြပါသည်။ ပရောဂျက်ကုဒ်ကို Apache 2.0 လိုင်စင်အောက်တွင် ဖွင့်ထားသည်။

စနစ်သည် RISC-V နှင့် ARM64 ဗိသုကာများကိုအခြေခံသည့်ပလပ်ဖောင်းများအတွက်ပံ့ပိုးမှုပေးသည်။ ဟာ့ဒ်ဝဲ၏ထိပ်ရှိ seL4 နှင့် KataOS ပတ်ဝန်းကျင်၏ လုပ်ဆောင်ချက်ကို အတုယူရန်၊ Renode မူဘောင်ကို ဖွံ့ဖြိုးတိုးတက်မှုလုပ်ငန်းစဉ်အတွင်း အသုံးပြုပါသည်။ OpenTitan ပလပ်ဖောင်းကိုအခြေခံ၍ KataOS ကို လုံခြုံသောချစ်ပ်များဖြင့် ပေါင်းစပ်ထားသည့် Sparrow ဟာ့ဒ်ဝဲနှင့် ဆော့ဖ်ဝဲရှုပ်ထွေးမှုကို ကိုးကားအကောင်အထည်ဖော်မှုအဖြစ် အဆိုပြုထားသည်။ အဆိုပြုထားသောဖြေရှင်းချက်သည် OpenTitan ပလပ်ဖောင်းနှင့် RISC-V ဗိသုကာကို အသုံးပြု၍ တည်ဆောက်ထားသော ယုံကြည်စိတ်ချရသော ဟာ့ဒ်ဝဲအစိတ်အပိုင်းများ (RoT၊ Root of Trust) နှင့် ယုတ္တိနည်းကျအတည်ပြုထားသော လည်ပတ်မှုစနစ် kernel ကို ပေါင်းစပ်နိုင်စေပါသည်။ KataOS ကုဒ်အပြင်၊ ၎င်းသည် အနာဂတ်တွင် ဟာ့ဒ်ဝဲအစိတ်အပိုင်းအပါအဝင် အခြားသော Sparrow အစိတ်အပိုင်းအားလုံးကို ဖွင့်လှစ်ရန် စီစဉ်ထားသည်။

စက်သင်ယူမှုနှင့် လျှို့ဝှက်အချက်အလက်များကို လုပ်ဆောင်ရန်အတွက် အထူးအဆင့်ကာကွယ်မှုနှင့် ပျက်ကွက်မှုမရှိကြောင်း အတည်ပြုချက်လိုအပ်သည့် စက်သင်ယူမှုနှင့် လျှို့ဝှက်အချက်အလက်များကို လုပ်ဆောင်ရန်အတွက် အက်ပ်လီကေးရှင်းများကို လုပ်ဆောင်ရန် ဒီဇိုင်းထုတ်ထားသည့် အထူးပြုချစ်ပ်များတွင် အပလီကေးရှင်းကို အာရုံစိုက်၍ ပလပ်ဖောင်းကို တီထွင်လျက်ရှိသည်။ ထိုကဲ့သို့သော အပလီကေးရှင်းများ၏ ဥပမာများတွင် လူများ၏ ရုပ်ပုံများနှင့် အသံဖမ်းယူမှုများကို ထိန်းချုပ်သည့် စနစ်များ ပါဝင်သည်။ KataOS ၏ ယုံကြည်စိတ်ချရမှု စိစစ်ခြင်းကို အသုံးပြုခြင်းသည် စနစ်၏ အစိတ်အပိုင်းတစ်ခု ပျက်ကွက်ပါက၊ ချို့ယွင်းမှုသည် စနစ်၏ ကျန်ရှိသောနေရာများသို့ ပျံ့နှံ့သွားမည်ဖြစ်ပြီး အထူးသဖြင့် kernel နှင့် အရေးကြီးသော အစိတ်အပိုင်းများသို့ ပျံ့နှံ့သွားမည်မဟုတ်ကြောင်း သေချာစေသည်။

seL4 ဗိသုကာသည် အသုံးပြုသူအရင်းအမြစ်များအတွက် kernel အရင်းအမြစ်များကို စီမံခန့်ခွဲခြင်းအတွက် အစိတ်အပိုင်းများကို ရွှေ့ပြောင်းခြင်းနှင့် အသုံးပြုသူအရင်းအမြစ်များအတွက် တူညီသောဝင်ရောက်ထိန်းချုပ်မှုကိရိယာများကို အသုံးပြုခြင်းအတွက် မှတ်သားဖွယ်ကောင်းသည်။ မိုက်ခရိုကာနယ်သည် ဖိုင်များ၊ လုပ်ငန်းစဉ်များ၊ ကွန်ရက်ချိတ်ဆက်မှုများနှင့် အခြားအရာများကို စီမံခန့်ခွဲရန်အတွက် အဆင်သင့်လုပ်ထားသည့် အဆင့်မြင့် abstractions များကို ပံ့ပိုးပေးခြင်းမရှိပါ၊ ယင်းအစား၊ ၎င်းသည် ရုပ်ပိုင်းဆိုင်ရာလိပ်စာနေရာ၊ အနှောင့်အယှက်များနှင့် ပရိုဆက်ဆာအရင်းအမြစ်များကို ဝင်ရောက်ထိန်းချုပ်ရန်အတွက် အနည်းငယ်မျှသာသော ယန္တရားများကိုသာ ထောက်ပံ့ပေးသည်။ ဟာ့ဒ်ဝဲနှင့် တုံ့ပြန်ခြင်းအတွက် အဆင့်မြင့် abstractions များနှင့် drivers များကို သုံးစွဲသူအဆင့် လုပ်ငန်းဆောင်တာများပုံစံဖြင့် microkernel ၏ထိပ်တွင် သီးခြားစီ လုပ်ဆောင်ပါသည်။ microkernel မှ ရရှိနိုင်သော အရင်းအမြစ်များသို့ ထိုကဲ့သို့သော လုပ်ငန်းဆောင်တာများကို စည်းမျဉ်းများ၏ အဓိပ္ပါယ်ဖွင့်ဆိုချက်ဖြင့် ဖွဲ့စည်းထားပါသည်။

ထပ်ဆင့်ကာကွယ်မှုများအတွက်၊ မိုက်ခရိုကာနယ်မှလွဲ၍ အစိတ်အပိုင်းအားလုံးကို ဖယ်ရှားပြီးနောက် မှတ်ဉာဏ်ဝင်ရောက်ခွင့်၊ null pointer dereferences နှင့် buffer overruns ကဲ့သို့သော ပြဿနာများကိုဖြစ်စေသော memory error များကို အနည်းဆုံးဖြစ်စေသော ဘေးကင်းသော ပရိုဂရမ်းမင်းနည်းပညာများကို အသုံးပြု၍ Rust တွင် တီထွင်ထားသည်။ seL4 ပတ်ဝန်းကျင်ရှိ အပလီကေးရှင်းတင်ကိရိယာ၊ စနစ်ဝန်ဆောင်မှုများ၊ အက်ပ်လီကေးရှင်းဖွံ့ဖြိုးတိုးတက်မှုအတွက် မူဘောင်တစ်ခု၊ စနစ်ခေါ်ဆိုမှုများကို ရယူရန်အတွက် API တစ်ခု၊ လုပ်ငန်းစဉ်မန်နေဂျာ၊ တက်ကြွသောမှတ်ဉာဏ်ခွဲဝေမှုဆိုင်ရာ ယန္တရားတစ်ခုစသည်တို့ကို Rust တွင် ရေးသားထားသည်။ အတည်ပြုထားသော စုဝေးမှုသည် seL4 ပရောဂျက်မှ ဖန်တီးထားသည့် CAmkES ကိရိယာတန်ဆာပလာကို အသုံးပြုသည်။ CAmkES အတွက် အစိတ်အပိုင်းများကိုလည်း Rust တွင် ဖန်တီးနိုင်သည်။

ကိုးကားစစ်ဆေးခြင်း၊ အရာဝတ္ထုပိုင်ဆိုင်မှုနှင့် အရာဝတ္ထုတစ်သက်တာခြေရာခံခြင်း (scopes) နှင့် runtime တွင် memory access များ၏ မှန်ကန်မှုကို အကဲဖြတ်ခြင်းဖြင့် Rust သည် စုစည်းချိန်အတွင်း မှတ်ဉာဏ်လုံခြုံမှုကို တွန်းအားပေးသည်။ Rust သည် integer overflows များကို အကာအကွယ်ပေးသည်၊ အသုံးမပြုမီ အစပျိုးရန် variable values ​​များကို လိုအပ်သည်၊ default အနေဖြင့် မပြောင်းလဲနိုင်သော အကိုးအကားများနှင့် variables များ၏ concept ကိုအသုံးပြုကာ၊ ယုတ္တိအမှားများကို လျှော့ချရန်အတွက် ခိုင်လုံသော static typing ကို ပံ့ပိုးပေးပါသည်။

source: opennet.ru

မှတ်ချက် Add