စတုတ္ထထုတ်ဝေမှု kernel patch များ Linux Rust ဘာသာစကားပံ့ပိုးမှုဖြင့်

Rust-for- ပရောဂျက်၏ စာရေးဆရာ Miguel OjedaLinuxkernel developer များမှ ထည့်သွင်းစဉ်းစားရန် အဆိုပြုထားသည် Linux Rust မှာ device driver တွေ တီထွင်ဖို့အတွက် components တွေရဲ့ စတုတ္ထမြောက် version ပါ။ Rust support ကို စမ်းသပ်ဆဲအဆင့်လို့ ယူဆရပေမယ့် linux-next branch မှာ ထည့်သွင်းဖို့ အတည်ပြုပြီးသားဖြစ်ပြီး kernel subsystem တွေပေါ်မှာ abstraction layer တွေ ဖန်တီးတာအပြင် driver တွေနဲ့ module တွေ ရေးသားတာတွေကိုလည်း စတင်လုပ်ဆောင်ဖို့ လုံလောက်တဲ့ ရင့်ကျက်မှုရှိပါတယ်။ ဒီ development ကို Google နဲ့ Let's Encrypt project ရဲ့ တည်ထောင်သူ ISRG (Internet Security Research Group) တို့က ရန်ပုံငွေထောက်ပံ့ထားပြီး HTTPS နဲ့ အင်တာနက်လုံခြုံရေးကို မြှင့်တင်ဖို့ နည်းပညာတွေ တီထွင်ဖန်တီးတာကို မြှင့်တင်ပေးပါတယ်။

အဆိုပြုထားသောပြောင်းလဲမှုများသည် ဒရိုက်ဗာများနှင့် kernel module များဖန်တီးရန်အတွက် ဒုတိယဘာသာစကားအဖြစ် Rust ကိုအသုံးပြုရန် ဖြစ်နိုင်ကြောင်း သတိရပါ။ Rust ပံ့ပိုးမှုကို ပုံသေအားဖြင့် ဖွင့်မထားသော ရွေးချယ်မှုတစ်ခုအနေဖြင့် တင်ပြထားပြီး kernel အတွက် လိုအပ်သော တည်ဆောက်မှုမှီခိုမှုတစ်ခုအဖြစ် Rust ပါဝင်ခြင်းကို မဖြစ်ပေါ်စေပါ။ ယာဉ်မောင်းဖွံ့ဖြိုးတိုးတက်မှုအတွက် Rust ကိုအသုံးပြုခြင်းဖြင့် သင့်အား လွတ်ကင်းပြီးနောက် မှတ်ဉာဏ်ဝင်ရောက်ခွင့်၊ null pointer dereferences နှင့် buffer overruns ကဲ့သို့သော ပြဿနာများမှ ကင်းဝေးပြီး အနည်းငယ်သာ အားစိုက်ထုတ်ခြင်းဖြင့် ပိုမိုဘေးကင်းပြီး ပိုမိုကောင်းမွန်သော ယာဉ်မောင်းများကို ဖန်တီးနိုင်မည်ဖြစ်သည်။

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

ဖာထေးမှုများ၏ ဗားရှင်းအသစ်သည် ပထမ၊ ဒုတိယနှင့် တတိယ တည်းဖြတ်မှုများ၏ ဆွေးနွေးမှုအတွင်း ပြုလုပ်ခဲ့သော မှတ်ချက်များကို ဖယ်ရှားပေးပါသည်။ ဗားရှင်းအသစ်တွင်-

  • ကိုးကားရေးဖွဲ့မှုအဖြစ် Rust 1.58.0 ၏တည်ငြိမ်သောထွက်ရှိမှုကို အသုံးပြုခြင်းသို့ ကူးပြောင်းခြင်းကို ပြုလုပ်ထားပါသည်။ ပင်မ Rust ကိရိယာအစုံတွင် မပါဝင်သေးသည့် ပရောဂျက်အတွက် လိုအပ်သောပြောင်းလဲမှုများထဲတွင် “-Zsymbol-mangling-version=v0” အလံ (Rust 1.59.0 တွင် မျှော်လင့်ထားသည်) နှင့် “maybe_uninit_extra” မုဒ် (Rust 1.60.0 တွင် မျှော်လင့်ထားသည် .XNUMX) မှတ်ချက်ချသည်.။
  • သင့်လျော်သော Rust ကိရိယာများရရှိနိုင်မှုအတွက် အလိုအလျောက်စစ်ဆေးမှုများကို ထည့်သွင်းပြီး စနစ်ရှိ Rust ပံ့ပိုးမှုကို စမ်းသပ်နိုင်စွမ်းကို တိုးချဲ့ခဲ့သည်။
  • Rust ကုဒ်မှ စက်ပစ္စည်း identifier tables (“IdArray” နှင့် “IdTable”) မှ abstractions အသစ်များကို အဆိုပြုထားပါသည်။
  • အချိန်တိုင်းကိရိယာဆိုင်ရာ လုပ်ဆောင်ချက်များ (နာရီဘောင်) ကို အသုံးပြုရန်အတွက် အလွှာများ ထပ်ထည့်ထားသည်။
  • ပလပ်ဖောင်းဒရိုင်ဘာများကို စရိုက်လက္ခဏာ အကောင်အထည်ဖော်မှုများဖြင့် ယခုသတ်မှတ်ထားသည်။
  • ပလက်ဖောင်းဒရိုင်ဘာများ၏ မှတ်ပုံတင်ခြင်းကို ရိုးရှင်းစေရန်အတွက် မက်ခရိုအသစ်တစ်ခုကို ပေါင်းထည့်ထားပြီး ယေဘုယျယာဉ်မောင်းပုံစံအသစ်ကို အဆိုပြုထားသည်။
  • "dev_*" တည်ဆောက်ပုံများအတွက် မက်ခရိုကို ထည့်ထားသည်။
  • IoMem အမျိုးအစားအတွက် "{read,write}*_relaxed" နည်းလမ်းများကို ထည့်သွင်းခဲ့သည်။ .
  • ဖိုင်လုပ်ဆောင်ချက်များကို ရိုးရှင်းစေရန် FileOpener ပိုင်ဆိုင်မှုကို ဖယ်ရှားခဲ့သည်။
  • ယာဉ်မောင်းတစ်ဦးကို မှတ်ပုံတင်သည့်အခါ ဖြတ်သွားသော အကြောင်းပြချက်များတွင် "ThisModule" ပါရာမီတာကို ပေါင်းထည့်ထားသည်။
  • Rust ဘာသာစကားတွင် kernel module များဖန်တီးရန်အတွက် စံပုံစံပုံစံတစ်ခုကို အဆိုပြုထားသည်။

source: opennet.ru

DDoS ကာကွယ်ရေး၊ VPS VDS ဆာဗာများပါသည့် ဆိုက်များအတွက် ယုံကြည်စိတ်ချရသော hosting ကို ဝယ်ယူပါ။ 🔥 DDoS ကာကွယ်မှု၊ VPS VDS ဆာဗာများပါရှိသော ယုံကြည်စိတ်ချရသော ဝဘ်ဆိုက် hosting ကို ဝယ်ယူပါ | ProHoster