Rust သည် Android ပလပ်ဖောင်းဖွံ့ဖြိုးတိုးတက်မှုအတွက် အဓိကဘာသာစကားများထဲတွင် ပါဝင်ပါသည်။

Google သည် Android ပလပ်ဖောင်းကို ဖန်တီးရန်အတွက် ခွင့်ပြုထားသော ဘာသာစကားများထဲတွင် Rust ပရိုဂရမ်းမင်းဘာသာစကားကို ထည့်သွင်းကြေညာခဲ့သည်။ Rust language compiler ကို 2019 ခုနှစ်တွင် Android source tree တွင် ထည့်သွင်းခဲ့သော်လည်း ဤဘာသာစကားအတွက် ပံ့ပိုးမှုမှာ စမ်းသပ်ဆဲဖြစ်သည်။ Android အတွက်စီစဉ်ထားသော ပထမဆုံး Rust အစိတ်အပိုင်းအချို့တွင် Binder အပြန်အလှန်ဆက်သွယ်မှုယန္တရားနှင့် Bluetooth stack ၏အကောင်အထည်ဖော်မှုအသစ်များပါဝင်သည်။

Rust ၏ နိဒါန်းကို လုံခြုံရေး အားကောင်းစေရန်၊ ဘေးကင်းသော ပရိုဂရမ်းမင်း နည်းပညာများကို မြှင့်တင်ရန်နှင့် Android တွင် Memory ဖြင့် လုပ်ဆောင်သည့်အခါ ပြဿနာများကို ဖော်ထုတ်ရာတွင် ထိရောက်မှု တိုးမြင့်လာစေရန် ပရောဂျက်တစ်ခု၏ တစ်စိတ်တစ်ပိုင်းအနေဖြင့် လုပ်ဆောင်ခဲ့သည်။ Android တွင် တွေ့ရှိရသည့် အန္တရာယ်ရှိသော အားနည်းချက်အားလုံး၏ 70% ခန့်သည် memory နှင့် အလုပ်လုပ်သောအခါတွင် အမှားအယွင်းများ ဖြစ်ပေါ်လာကြောင်း မှတ်သားရပါသည်။ မမ်မိုရီဘေးကင်းရေးနှင့် အလိုအလျောက်မှတ်ဉာဏ်စီမံခန့်ခွဲမှုကို အဓိကထားလုပ်ဆောင်သည့် Rust ကို အသုံးပြုခြင်းဖြင့် အခမဲ့ဝင်ရောက်ခွင့်နှင့် ကြားခံစနစ်လွန်လွန်ကဲကဲ လုပ်ဆောင်မှုများကဲ့သို့သော မမ်မိုရီအမှားများကြောင့် ဖြစ်ပေါ်လာသော အားနည်းချက်များအန္တရာယ်ကို လျှော့ချပေးမည်ဖြစ်သည်။

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

Android တွင်၊ Memory ဘေးကင်းမှုကို ပံ့ပိုးပေးထားပြီးဖြစ်သော Kotlin နှင့် Java ဘာသာစကားများဖြင့် ပံ့ပိုးပေးသော်လည်း ၎င်းတို့သည် မြင့်မားနေသောကြောင့် စနစ်အစိတ်အပိုင်းများကို ဖန်တီးရန်အတွက် မသင့်လျော်ပါ။ Rust သည် ၎င်းအား C နှင့် C++ ဘာသာစကားများနှင့် နီးစပ်သော စွမ်းဆောင်ရည်ကို ရရှိစေရန် ဖြစ်နိုင်ချေရှိပြီး ၎င်းအား ပလပ်ဖောင်း၏ အဆင့်နိမ့်အပိုင်းများနှင့် ဟာ့ဒ်ဝဲနှင့် အပြန်အလှန် ဆက်သွယ်ရန်အတွက် အစိတ်အပိုင်းများကို ဖန်တီးရန်အတွက် ၎င်းကို အသုံးပြုနိုင်သည်။

C နှင့် C++ ကုဒ်များ၏ လုံခြုံရေးကို သေချာစေရန်၊ Android သည် sandbox ကို သီးခြားခွဲထုတ်ခြင်း၊ တည်ငြိမ်မှု ခွဲခြမ်းစိတ်ဖြာခြင်းနှင့် fuzzing စမ်းသပ်ခြင်းတို့ကို အသုံးပြုသည်။ sandbox isolation ၏ စွမ်းရည်များသည် အကန့်အသတ်ရှိပြီး ၎င်းတို့၏ စွမ်းဆောင်ရည် ကန့်သတ်ချက်သို့ ရောက်ရှိသွားသည် (လုပ်ငန်းစဉ်များတွင် နောက်ထပ် အပိုင်းပိုင်းခွဲခြင်းသည် အရင်းအမြစ် သုံးစွဲမှု ရှုထောင့်မှ လက်တွေ့မကျပါ)။ sandbox အသုံးပြုခြင်း၏ ကန့်သတ်ချက်များ တွင် ကြီးမားသော ကုန်ကျစရိတ်များနှင့် လုပ်ငန်းစဉ်အသစ်များ မွေးမြူရန်လိုအပ်ခြင်းကြောင့် ဖြစ်ပေါ်လာသော မှတ်ဉာဏ်သုံးစွဲမှု တိုးလာခြင်းနှင့် IPC အသုံးပြုမှုနှင့် ဆက်စပ်သည့် နောက်ထပ်နှောင့်နှေးမှုများ ပါဝင်သည်။

တစ်ချိန်တည်းမှာပင်၊ sandbox သည် ကုဒ်ရှိ အားနည်းချက်များကို ဖယ်ရှားမပေးသော်လည်း စွန့်စားရမှုများကို လျှော့ချပေးပြီး တိုက်ခိုက်မှုကို ရှုပ်ထွေးစေကာ တစ်ခုတည်းသော နည်းလမ်းမဟုတ်သော်လည်း အားနည်းချက်များစွာကို ဖော်ထုတ်ရန် လိုအပ်သောကြောင့် ဖြစ်သည်။ ကုဒ်စမ်းသပ်ခြင်းအပေါ် အခြေခံသည့် နည်းလမ်းများသည် အမှားအယွင်းများကို ဖော်ထုတ်ရန်အတွက် အကန့်အသတ်ဖြင့်သာ ပြဿနာကို ဖော်ထုတ်ရန်အတွက် အခြေအနေများ ဖန်တီးရန် လိုအပ်ပါသည်။ ဖြစ်နိုင်ချေရှိသော ရွေးချယ်မှုများအားလုံးကို ကာမိရန် မဖြစ်နိုင်သောကြောင့် အမှားအယွင်းများစွာကို သတိမပြုမိပါ။

Android ရှိ စနစ်လုပ်ငန်းစဉ်များအတွက်၊ Google သည် ထည့်သွင်းထားသောကုဒ်သည် အခြေအနေ သုံးခုအနက် နှစ်ခုထက် မပိုစေရဟူသည့် "တရားမ၀င်ထည့်သွင်းမှုဒေတာနှင့် လုပ်ဆောင်ခြင်း၊ မလုံခြုံသော ပရိုဂရမ်းမင်းဘာသာစကား (C/C++)) ကို အသုံးပြု၍ လည်းကောင်း၊ တင်းကျပ်သော sandbox သီးခြားခွဲထားခြင်းမရှိဘဲ လုပ်ဆောင်နေသည် (မြင့်မားသောအခွင့်အရေးများ)။ ဤစည်းမျဉ်းသည် ပြင်ပဒေတာကို လုပ်ဆောင်ခြင်းအတွက် ကုဒ်အား အနည်းဆုံးအခွင့်အရေးများ (အထီးကျန်) သို့ လျှော့ချရမည် သို့မဟုတ် လုံခြုံသော ပရိုဂရမ်းမင်းဘာသာစကားဖြင့် ရေးသားရမည်ဟု ဆိုလိုသည်။

Google သည် Rust တွင် ရှိပြီးသား C/C++ ကုဒ်ကို ပြန်လည်ရေးသားရန် မရည်ရွယ်သော်လည်း ကုဒ်အသစ်များ ဖန်တီးရန်အတွက် ဤဘာသာစကားကို အသုံးပြုရန် စီစဉ်ထားသည်။ စာရင်းအင်းအရ ချွတ်ယွင်းချက်အများစုသည် အသစ် သို့မဟုတ် မကြာသေးမီက ပြောင်းလဲထားသောကုဒ်တွင် ပေါ်လာသောကြောင့် Rust ကို ကုဒ်အသစ်အတွက် အသုံးပြုခြင်းသည် အဓိပ္ပာယ်ရှိလှပါသည်။ အထူးသဖြင့်၊ Android တွင် ရှာဖွေတွေ့ရှိထားသော မမ်မိုရီအမှားအယွင်းများ၏ 50% ခန့်သည် လွန်ခဲ့သည့်တစ်နှစ်ထက်နည်းသော ကုဒ်ဖြင့် တွေ့ရှိခြင်းဖြစ်သည်။

Rust သည် Android ပလပ်ဖောင်းဖွံ့ဖြိုးတိုးတက်မှုအတွက် အဓိကဘာသာစကားများထဲတွင် ပါဝင်ပါသည်။


source: opennet.ru

မှတ်ချက် Add