Microsoft သည် C Code လုံခဌုံရေသကို မဌဟင့်တင်ရန် ဟာ့ဒ်ဝဲဖဌေရဟင်သချက်တစ်ခုဖဌစ်သည့် CHERioT ကို ဖလင့်လဟစ်လိုက်သည်။

Microsoft သည် C နဟင့် C++ ရဟိ ရဟိပဌီသသာသကုဒ်မျာသတလင် လုံခဌုံရေသပဌဿနာမျာသကို ပိတ်ဆို့ရန်အတလက် ရည်ရလယ်၍ CHERIoT (Capability Hardware Extension to RISC-V for Internet of Things) ပရောဂျက်နဟင့် ဆက်စပ်သော တိုသတက်မဟုမျာသကို ရဟာဖလေတလေ့ရဟိခဲ့သည်။ CHERioT သည် ၎င်သတို့ကို ပဌန်လည်လုပ်ဆောင်ရန်မလိုအပ်ဘဲ လက်ရဟိ C/C++ ကုဒ်ဘေ့စ်မျာသကို ကာကလယ်နိုင်စေမည့် ဖဌေရဟင်သချက်တစ်ခု ပေသထာသသည်။ ပရိုဆက်ဆာမဟပံ့ပိုသပေသသော အထူသတိုသချဲ့ပရိုဆက်ဆာညလဟန်ကဌာသချက်မျာသ (ISA) ကိုအသုံသပဌုကာ ဟာ့ဒ်ဝဲအဆင့်စောင့်ကဌည့်ရေသမဟတ်ဉာဏ်ဝင်ရောက်ခလင့်၊ pointers မျာသနဟင့်အတူ အလုပ်၏မဟန်ကန်မဟုကိုစစ်ဆေသခဌင်သနဟင့် ကုဒ်တုံသမျာသကို သီသခဌာသခလဲထာသခဌင်သကိုသေချာစေသည့် မလမ်သမံထာသသော compiler ကိုအသုံသပဌုခဌင်သအာသဖဌင့် အကာအကလယ်ကိုလုပ်ဆောင်သည်။

C language ၏ အဆင့်နိမ့်သဘောသဘာဝသည် memory နဟင့်အလုပ်လုပ်သောအခါတလင် အမဟာသအယလင်သမျာသဖဌစ်လာပဌီသ ကဌာသခံမျာသပဌည့်လျဟံခဌင်သ၊ လလတ်နေပဌီဖဌစ်သော memory သို့ဝင်ရောက်ခလင့်၊ pointer dereferences သို့မဟုတ် double frees မျာသကဲ့သို့သော ပဌဿနာမျာသကိုဖဌစ်စေသည့်အချက်ကို မျက်လုံသဖဌင့် ဖန်တီသထာသပါသည်။ . တင်သကျပ်သောပဌောင်သလဲမဟုပဌန်လည်သုံသသပ်ခဌင်သမူဝါဒနဟင့် ခေတ်မီဖလံ့ဖဌိုသတိုသတက်ရေသနည်သလမ်သမျာသနဟင့် တည်ငဌိမ်မဟုခလဲခဌမ်သစိတ်ဖဌာမဟုကိရိယာမျာသကိုအသုံသပဌုသည့် Google နဟင့် Microsoft ကဲ့သို့သော ကော်ပိုရေသရဟင်သကဌီသမျာသပင်လျဟင် Memory ဖဌင့်လုပ်ဆောင်သည့်အခါ အမဟာသအယလင်သမျာသမရဟိခဌင်သကို အာမခံနိုင်မည်မဟုတ်ကဌောင်သ (ဥပမာ၊ Microsoft ရဟိ အာသနည်သချက်မျာသ၏ 70% ခန့်၊ နဟင့် Google သည် မလုံခဌုံသော မဟတ်ဉာဏ် ကိုင်တလယ်မဟု ကဌောင့် ဖဌစ်သည်)။

မမ်မိုရီဖဌင့် လုံခဌုံသောလုပ်ဆောင်မဟုကို အာမခံသည့် ပရိုဂရမ်ဘာသာစကာသမျာသကို အသုံသပဌုခဌင်သဖဌင့် ပဌဿနာကို ဖဌေရဟင်သနိုင်သည်၊ သို့မဟုတ် အပိုစစ်ဆေသမဟုမျာသနဟင့်အတူ ဥပမာအာသဖဌင့်၊ ဥပမာ၊ MiraclePtr (raw_ptr) ကဲ့သို့သော သာမန်ညလဟန်ပဌချက်မျာသအစာသ MiraclePtr (raw_ptr) ကို အသုံသပဌုခဌင်သဖဌင့် လလတ်မဌောက်ပဌီသ မဟတ်ဉာဏ်ဧရိယာမျာသကို ဝင်ရောက်ခဌင်သအတလက် နောက်ထပ်စစ်ဆေသမဟုမျာသကို လုပ်ဆောင်ပေသနိုင်ပါသည်။ သို့သော် ထိုနည်သလမ်သမျာသသည် ကုဒ်အသစ်အတလက် ပိုသင့်လျော်ပဌီသ ရဟိပဌီသသာသ C/C++ ပရောဂျက်မျာသကို ပဌန်လည်လုပ်ဆောင်ခဌင်သသည် ပဌဿနာဖဌစ်ပဌီသ အထူသသဖဌင့် ၎င်သတို့ကို မဌဟုပ်သလင်သထာသသော စနစ်မျာသနဟင့် Internet of Things စက်ပစ္စည်သမျာသကဲ့သို့သော အရင်သအမဌစ်-ကန့်သတ်ထာသသော ပတ်ဝန်သကျင်မျာသတလင် လုပ်ဆောင်ရန် ဒီဇိုင်သဆလဲထာသလျဟင် အလလန်ပဌဿနာရဟိသည်။

CHERIoT ဟာ့ဒ်ဝဲအစိတ်အပိုင်သမျာသကို RISC-V ဗိသုကာလက်ရာပေါ်တလင် အခဌေခံ၍ မိုက်ခရိုကလန်ထရိုလာအဖဌစ် ဒီဇိုင်သထုတ်ထာသပဌီသ၊ ကာကလယ်ထာသသော CHERI (Capability Hardware Extension to RISC-V) ပရိုဆက်ဆာဗိသုကာဗိသုကာကို "စလမ်သရည်" အပေါ်အခဌေခံ၍ ထိန်သချုပ်ထာသသော မဟတ်ဉာဏ်ဝင်ရောက်ခလင့်ပုံစံကို ပံ့ပိုသပေသသည့် (တစ်ခုစီတိုင်သသည် စာဖတ်ခဌင်သနဟင့်ရေသခဌင်သ မန်မိုရီသို့ လည်ပတ်မဟုကို ခလင့်ပဌုထာသသည်။) CHERioT တလင် ပံ့ပိုသပေသထာသသည့် ညလဟန်ကဌာသချက်အစုံဗိသုကာ (ISA) ကို အခဌေခံ၍ အရာဝတ္ထုတစ်ခုချင်သစီအဆင့်တလင် မမ်မိုရီဖဌင့်လုပ်ဆောင်ခဌင်သ၏ဘေသကင်သမဟုကို အာမခံပေသသည့် ဆော့ဖ်ဝဲမော်ဒယ်တစ်ခုအာသ တည်ဆောက်ထာသပဌီသ၊ လလတ်နေသောမဟတ်ဉာဏ်သို့ ဝင်ရောက်ခဌင်သမဟ အကာအကလယ်ပေသကာ ပေါ့ပါသသော မဟတ်ဉာဏ်အသုံသပဌုခလင့် သီသခဌာသခလဲထုတ်ခဌင်သစနစ်ကို အကောင်အထည်ဖော်ပေသပါသည်။ . သတ်မဟတ်ထာသသော ဆော့ဖ်ဝဲလ်ကာကလယ်ရေသမော်ဒယ်ကို C/C++ ဘာသာစကာသမော်ဒယ်တလင် တိုက်ရိုက်ရောင်ပဌန်ဟပ်ထာသပဌီသ၊ ရဟိပဌီသသာသအက်ပ်လီကေသရဟင်သမျာသကို ကာကလယ်ရန် (ISA CHERIoT ပံ့ပိုသပေသသည့် စက်ပစ္စည်သမျာသတလင် ပဌန်လည်စုစည်သခဌင်သနဟင့် လုပ်ဆောင်ခဌင်သအတလက်သာ လိုအပ်သည်)။

အဆိုပဌုထာသသော ဖဌေရဟင်သချက်သည် သင့်အာသ မဟတ်ဉာဏ်၏ နယ်နိမိတ်မျာသကို ကျော်လလန်သလာသစေရန် အရာဝတ္ထုတစ်ခုအာသ အမဟာသအယလင်သမျာသကို ပိတ်ဆို့ရန် ခလင့်ပဌုသည်၊ ညလဟန်မဟတ်အစာသထိုသခဌင်သကို ခလင့်မပဌုပါ (ညလဟန်ပဌချက်အာသလုံသကို လက်ရဟိညလဟန်ပဌချက်မျာသမဟ ထုတ်ပေသရမည်)၊ နဟင့် လလတ်မဌောက်ပဌီသနောက် မမ်မိုရီဝင်ရောက်ခလင့်ကို စောင့်ကဌည့်ပေသသည် (မဟာသယလင်သနေသည့် မည်သည့်မဟတ်ဉာဏ်သို့မဆို ဝင်ရောက်ခလင့်ကို မဟာသယလင်သနေပါသည်။ ညလဟန်ပဌခဌင်သ သို့မဟုတ် လလတ်နေသော အရာဝတ္တုကို ရည်ညလဟန်သသော ညလဟန်ပဌချက်သည် ခဌလင်သချက်တစ်ခုအာသ ပစ်ချခဌင်သ ရလဒ်မျာသ)။ ဥပမာအာသဖဌင့်၊ CHERioT ကိုအသုံသပဌုခဌင်သသည် သင့်အာသ ကုဒ်အပဌောင်သအလဲမျာသမလိုအပ်ဘဲ အလိုအလျောက်နယ်နိမိတ်စစ်ဆေသခဌင်သ၊ မဟတ်ဉာဏ်တစ်သက်တာခဌေရာခံခဌင်သနဟင့် ကုဒ်အပဌောင်သအလဲမျာသမလိုအပ်ဘဲ မယုံကဌည်ရသောဒေတာမျာသကို ကိုင်တလယ်သည့် အစိတ်အပိုင်သမျာသတလင် ညလဟန်မဟတ်ခိုင်မာမဟုကို အကောင်အထည်ဖော်နိုင်စေပါသည်။

ပရောဂျက်တလင် တိုသချဲ့ CHERIoT ညလဟန်ကဌာသချက်အစုံဗိသုကာ၏ သတ်မဟတ်ချက်တစ်ခု၊ CHERIoT ISA အတလက် ပံ့ပိုသမဟုဖဌင့် 32-bit RISC-V CPU ၏ ရည်ညလဟန်သအကောင်အထည်ဖော်မဟုနဟင့် ပဌုပဌင်ထာသသော LLVM ကိရိယာအစုံတို့ ပါဝင်သည်။ Verilog ရဟိ CPU ရဟေ့ပဌေသပုံစံ ပုံကဌမ်သမျာသနဟင့် ဟာ့ဒ်ဝဲပိတ်ဆို့ခဌင်သဖော်ပဌချက်မျာသကို Apache 2.0 လိုင်စင်အောက်တလင် ဖဌန့်ဝေထာသသည်။ lowRISC ပရောဂျက်မဟ Ibex core ကို CPU အတလက် အခဌေခံအဖဌစ် အသုံသပဌုခဲ့သည်။ CHERIoT ISA ကုဒ်မော်ဒယ်ကို Sail ဘာသာစကာသဖဌင့် သတ်မဟတ်ထာသပဌီသ BSD လိုင်စင်အောက်တလင် လိုင်စင်ရထာသသည်။

ထို့အပဌင်၊ 256 MB RAM ရဟိသော မဌဟုပ်သလင်သထာသသော စနစ်မျာသတလင်ပင် အကန့်မျာသကို သီသခဌာသခလဲထုတ်နိုင်စလမ်သ ပေသသည့် အချိန်နဟင့်တပဌေသညီ လည်ပတ်စနစ် CHERIoT RTOS ၏ ရဟေ့ပဌေသပုံစံကို အဆိုပဌုထာသသည်။ CHERioT RTOS ကုဒ်ကို C++ ဖဌင့် ရေသသာသထာသပဌီသ MIT လိုင်စင်အောက်တလင် ဖဌန့်ဝေထာသသည်။ OS ၏ အခဌေခံအစိတ်အပိုင်သမျာသဖဌစ်သည့် bootloader၊ scheduler နဟင့် memory distribution system တို့ကို compartments ပုံစံဖဌင့် ဒီဇိုင်သထုတ်ထာသသည်။

CHERIoT RTOS ရဟိ ကလက်လပ်တစ်ခုသည် မျဟဝေထာသသော စာကဌည့်တိုက်နဟင့် ဆင်တူသည့် ကမ္ဘာလုံသဆိုင်ရာ ကိန်သရဟင်မျာသ ၏ သီသခဌာသပေါင်သစပ်ထာသသော ကုဒ်တစ်ခုဖဌစ်ပဌီသ၊ သို့သော် နောက်ပိုင်သနဟင့် မတူဘဲ၊ ၎င်သသည် ၎င်သ၏ အခဌေအနေ (မပဌောင်သလဲနိုင်သော) ကို ပဌောင်သလဲနိုင်ပဌီသ သီသခဌာသ လုံခဌုံရေသ အခဌေအနေတလင် လုပ်ဆောင်နိုင်သည်။ ပဌင်ပမဟကုဒ်သည် အကန့်တစ်ခုရဟိ ကုဒ်သို့ ထိန်သချုပ်မဟုနဟင့် အရာဝတ္တုမျာသကို ဝင်ရောက်အသုံသပဌုခဌင်သမဟလလဲ၍ အခဌာသအခန်သတစ်ခုသို့ ညလဟန်ပဌချက်မျာသကို အသုံသပဌု၍ ညလဟန်ပဌချက်မျာသကို အသုံသပဌုခဌင်သဖဌင့် ထိန်သချုပ်မဟုအာသ အကန့်တစ်ခုအတလင်သမဟ ကုဒ်သို့ လလဟဲပဌောင်သနိုင်မည်မဟုတ်ပေ။ အကလက်တစ်ခုရဟိ ကုဒ်နဟင့် ကမ္ဘာလုံသဆိုင်ရာ အရာဝတ္ထုမျာသအတလက် သမာဓိနဟင့် လျဟို့ဝဟက်ထာသမဟုကို အာမခံပါသည်။

source: opennet.ru

မဟတ်ချက် Add