WD သည် Rust တွင် NVMe ဒရိုက်ဘာကို ဖန်တီးနေသည်။ FreeBSD တွင် Rust ဖြင့် စမ်းသပ်နေသည်။

ယနေ့ကျင်းပနေသော Linux Plumbers 2022 ကွန်ဖရင့်တွင် Western Digital မှ အင်ဂျင်နီယာတစ်ဦးက NVM-Express (NVMe) အင်တာဖေ့စ်ဖြင့် ရေးသားထားသော Rust ဘာသာစကားဖြင့် ရေးသားကာ Linux kernel တွင် လုပ်ဆောင်နေသည့် SSD drive များအတွက် စမ်းသပ်မောင်းနှင်သည့် ဒရိုက်ဘာတစ်ခု၏ ဖွံ့ဖြိုးတိုးတက်မှုအကြောင်း ရှင်းလင်းတင်ပြခဲ့ပါသည်။ အဆင့် ပရောဂျက်သည် ဖွံ့ဖြိုးတိုးတက်မှု၏အစောပိုင်းအဆင့်တွင်ရှိနေသော်လည်း Rust ဘာသာစကားရှိ NVMe ဒရိုက်ဘာ၏စွမ်းဆောင်ရည်သည် kernel တွင်ရရှိနိုင်သည့် C ဘာသာစကားဖြင့်ရေးသားထားသော NVMe ဒရိုက်ဘာနှင့် ကိုက်ညီကြောင်း စမ်းသပ်ပြသခဲ့သည်။

WD သည် Rust တွင် NVMe ဒရိုက်ဘာကို ဖန်တီးနေသည်။ FreeBSD တွင် Rust ဖြင့် စမ်းသပ်နေသည်။
WD သည် Rust တွင် NVMe ဒရိုက်ဘာကို ဖန်တီးနေသည်။ FreeBSD တွင် Rust ဖြင့် စမ်းသပ်နေသည်။

C ရှိ လက်ရှိ NVMe ဒရိုက်ဘာသည် developer များအတွက် လုံးဝစိတ်ကျေနပ်ဖွယ်ရှိကြောင်း အစီရင်ခံစာတွင်ဖော်ပြထားသော်လည်း NVMe subsystem သည် Rust တွင် driver များတီထွင်နိုင်ခြေကို ရှာဖွေရန်အတွက် ကောင်းမွန်သော platform တစ်ခုဖြစ်သောကြောင့် ၎င်းသည် အတော်လေးရိုးရှင်းပြီး အသုံးများသောကြောင့်၊ မြင့်မားသောစွမ်းဆောင်ရည်လိုအပ်ချက်များရှိပြီး၊ နှိုင်းယှဉ်မှုအတွက် သက်သေပြထားသော ကိုးကားအကောင်အထည်ဖော်မှုနှင့် အမျိုးမျိုးသော အင်တာဖေ့စ်များကို ပံ့ပိုးပေးသည် (dev၊ pci၊ dma၊ blk-mq၊ gendisk၊ sysfs)။

Rust အတွက် PCI NVMe ဒရိုက်ဘာသည် လည်ပတ်မှုအတွက် လိုအပ်သော လုပ်ဆောင်နိုင်စွမ်းကို ပေးဆောင်ထားပြီးဖြစ်သော်လည်း တစ်ဦးချင်း မြှင့်တင်မှုများ လိုအပ်သောကြောင့် ကျယ်ကျယ်ပြန့်ပြန့် အသုံးပြုရန်အတွက် အဆင်သင့်မဖြစ်သေးကြောင်း မှတ်သားရပါသည်။ အနာဂတ်အစီအစဉ်များတွင် လက်ရှိမလုံခြုံသောပိတ်ဆို့ထားသောကုဒ်များကို ဖယ်ရှားခြင်း၊ စက်ဖယ်ရှားခြင်းနှင့် ဒရိုက်ဘာပြန်ဖွင့်ခြင်းလုပ်ဆောင်မှုများကို ပံ့ပိုးပေးခြင်း၊ sysfs အင်တာဖေ့စ်ကို ပံ့ပိုးပေးခြင်း၊ ပျင်းရိသောအစပျိုးခြင်းကို အကောင်အထည်ဖော်ခြင်း၊ blk-mq အတွက် ဒရိုက်ဘာတစ်ခုဖန်တီးခြင်း၊

ထို့အပြင်၊ FreeBSD kernel အတွက် Rust ဘာသာစကားဖြင့် ယာဉ်မောင်းများကို ဖွံ့ဖြိုးတိုးတက်စေရန် NCC Group မှ ပြုလုပ်သော စမ်းသပ်မှုများကို ကျွန်ုပ်တို့ မှတ်သားနိုင်ပါသည်။ ဥပမာအနေနဲ့၊ ဖိုင် /dev/rustmodule မှာရေးထားတဲ့ အချက်အလက်ကို ပြန်ပေးတဲ့ ရိုးရှင်းတဲ့ ပဲ့တင်ယာဉ်မောင်းကို အသေးစိတ် စစ်ဆေးပါတယ်။ စမ်းသပ်မှု၏ နောက်အဆင့်တွင်၊ NCC Group သည် ကွန်ရက်နှင့် ဖိုင်လုပ်ငန်းဆောင်ရွက်မှုများ၏ လုံခြုံရေးကို မြှင့်တင်ရန်အတွက် Rust ဘာသာစကားတွင် kernel ၏ အဓိကအစိတ်အပိုင်းများကို ပြန်လည်ပြုပြင်နိုင်ခြေကို စဉ်းစားနေသည်။

သို့သော်လည်း Rust ဘာသာစကားတွင် ရိုးရှင်းသော module များကို ဖန်တီးနိုင်သည်ဟု သက်သေပြထားသော်လည်း Rust ၏ FreeBSD kernel ထဲသို့ ပိုမိုတင်းကျပ်စွာ ပေါင်းစည်းခြင်းသည် နောက်ထပ်အလုပ် လိုအပ်မည်ဖြစ်သည်။ ဥပမာအားဖြင့်၊ ၎င်းတို့သည် Rust for Linux ပရောဂျက်မှ ပြင်ဆင်သည့် အပိုပရိုဂရမ်များနှင့် ဆင်တူသော စနစ်ခွဲများနှင့် kernel တည်ဆောက်ပုံများပေါ်တွင် abstraction အလွှာအစုံကို ဖန်တီးရန် လိုအပ်ကြောင်းဖော်ပြထားသည်။ အနာဂတ်တွင်၊ ကျွန်ုပ်တို့သည် Illumos kernel နှင့် အလားတူစမ်းသပ်မှုများကို ပြုလုပ်ပြီး Rust for Linux၊ BSD နှင့် Illumos တွင် ရေးသားထားသော driver များတွင် အသုံးပြုနိုင်သည့် Rust ရှိ ဘုံ abstractions များကို ရှာဖွေဖော်ထုတ်ရန် စီစဉ်ထားပါသည်။

Microsoft နှင့် Google တို့၏ အဆိုအရ ၎င်းတို့၏ ဆော့ဖ်ဝဲလ် ထုတ်ကုန်များတွင် အားနည်းချက် 70% သည် မလုံခြုံသော memory ကိုင်တွယ်ခြင်းကြောင့် ဖြစ်ပေါ်လာသည်။ Rust ဘာသာစကားကို အသုံးပြုခြင်းသည် မလုံခြုံသော Memory ဖြင့် အလုပ်လုပ်ခြင်းကြောင့် ဖြစ်ပေါ်လာသော အားနည်းချက်များ ဖြစ်နိုင်ခြေကို လျှော့ချနိုင်ပြီး ၎င်းသည် လွတ်ပြီး ကြားခံကို ကျော်လွန်ပြီးနောက် မမ်မိုရီဧရိယာသို့ ဝင်ရောက်ခြင်းကဲ့သို့သော အမှားအယွင်းများကို ဖယ်ရှားပေးမည်ဟု မျှော်လင့်ရသည်။

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

source: opennet.ru

မှတ်ချက် Add