Kerla ပရောဂျက်သည် Rust ဘာသာစကားဖြင့် Linux-သဟဇာတရှိသော kernel ကို ဖော်ဆောင်နေသည်။

Kerla ပရောဂျက်သည် Rust ဘာသာစကားဖြင့် ရေးသားထားသော operating system kernel တစ်ခုကို ဖော်ဆောင်နေသည်။ kernel အသစ်သည် ABI အဆင့်ရှိ Linux kernel နှင့် လိုက်ဖက်ညီစေရန်အတွက် ကနဦးတွင် အာရုံစိုက်ထားပြီး၊ Linux အတွက် စုစည်းထားသော မွမ်းမံထားသော executable ဖိုင်များကို Kerla-based ပတ်ဝန်းကျင်တွင် လုပ်ဆောင်နိုင်စေမည်ဖြစ်သည်။ ကုဒ်ကို Apache 2.0 နှင့် MIT လိုင်စင်များအောက်တွင် ဖြန့်ဝေထားသည်။ အဆိုပါပရောဂျက်ကို C language ဖြင့်ရေးသားထားသော microkernel လည်ပတ်မှုစနစ် Resea ဖန်တီးမှုအတွက်လူသိများသောဂျပန် developer Seiya Nuta မှတီထွင်ခဲ့ခြင်းဖြစ်သည်။

၎င်း၏ လက်ရှိ ဖွံ့ဖြိုးတိုးတက်မှု အဆင့်တွင်၊ Kerla သည် x86_64 စနစ်များပေါ်တွင်သာ လုပ်ဆောင်နိုင်ပြီး write၊ stat၊ mmap၊ pipe နှင့် poll ကဲ့သို့သော အခြေခံစနစ်ခေါ်ဆိုမှုများကို လုပ်ဆောင်နိုင်သည်၊ အချက်ပြမှုများ၊ အမည်မသိပိုက်များနှင့် ဆက်စပ်ခလုတ်များကို ပံ့ပိုးပေးသည်။ Fork၊ wait4 နှင့် execve ကဲ့သို့သော ခေါ်ဆိုမှုများကို ထိန်းချုပ်သည့် လုပ်ငန်းစဉ်များအတွက် ပံ့ပိုးပေးထားသည်။ tty နှင့် pseudo-terminals (pty) အတွက် ပံ့ပိုးမှု ရှိပါသည်။ လက်ရှိပံ့ပိုးပေးထားသော ဖိုင်စနစ်များသည် initramfs (အမြစ်ဖိုင်စနစ်အား တပ်ဆင်ရန်အသုံးပြုသည်)၊ tmpfs နှင့် devfs တို့ဖြစ်သည်။ smoltcp စာကြည့်တိုက်ကိုအခြေခံ၍ TCP နှင့် UDP ခြေစွပ်များအတွက် ပံ့ပိုးမှုရှိသော ကွန်ရက် stack တစ်ခုကို ပံ့ပိုးပေးထားသည်။

ဆော့ဖ်ဝဲအင်ဂျင်နီယာသည် QEMU တွင် သို့မဟုတ် virtio-net driver ဖြင့် SSH မှတစ်ဆင့် ချိတ်ဆက်ထားပြီးဖြစ်သော Firecracker virtual machine တွင် အလုပ်လုပ်သည့် boot environment ကို ပြင်ဆင်ထားပါသည်။ musl ကို စနစ်စာကြည့်တိုက်အဖြစ်အသုံးပြုပြီး BusyBox ကို အသုံးပြုသူအသုံးအဆောင်များအဖြစ် အသုံးပြုသည်။

Kerla ပရောဂျက်သည် Rust ဘာသာစကားဖြင့် Linux-သဟဇာတရှိသော kernel ကို ဖော်ဆောင်နေသည်။

Kerla kernel ဖြင့် သင့်ကိုယ်ပိုင် boot initramf များကို ဖန်တီးနိုင်စေမည့် Docker-based build system ကို ပြင်ဆင်ထားပါသည်။ သီးခြား၊ ငါးနှင့်ဆင်တူသော nsh ဆော့ဖ်ဝဲလ်ခွံနှင့် Wayland ပရိုတိုကောကိုအခြေခံ၍ Kazari GUI အစုအဝေးကို တီထွင်လျက်ရှိသည်။

Kerla ပရောဂျက်သည် Rust ဘာသာစကားဖြင့် Linux-သဟဇာတရှိသော kernel ကို ဖော်ဆောင်နေသည်။

ပရောဂျက်တစ်ခုတွင် Rust ဘာသာစကားကို အသုံးပြုခြင်းသည် ဘေးကင်းသော ပရိုဂရမ်းမင်းနည်းပညာများကို အသုံးပြုခြင်းဖြင့် ကုဒ်ရှိ အမှားအယွင်းများကို လျှော့ချနိုင်ပြီး memory နှင့် လုပ်ဆောင်သည့်အခါ ပြဿနာများကို ဖော်ထုတ်ရာတွင် ထိရောက်မှုကို တိုးမြင့်စေသည်။ ကိုးကားစစ်ဆေးခြင်း၊ အရာဝတ္ထုပိုင်ဆိုင်မှုနှင့် အရာဝတ္ထုတစ်သက်တာခြေရာခံခြင်း (scopes) နှင့် runtime တွင် memory access များ၏ မှန်ကန်မှုကို အကဲဖြတ်ခြင်းဖြင့် Rust သည် စုစည်းချိန်အတွင်း မှတ်ဉာဏ်လုံခြုံမှုကို တွန်းအားပေးသည်။ ထို့အပြင်၊ Rust သည် ကိန်းပြည့်ပြည့်လျှံမှုများကို အကာအကွယ်ပေးသည်၊ အသုံးမပြုမီတွင် ပြောင်းလဲနိုင်သောတန်ဖိုးများကို ကနဦးစတင်ရန် လိုအပ်သည်၊ ပုံမှန်အားဖြင့် မပြောင်းလဲနိုင်သော အကိုးအကားများနှင့် variables များ၏ သဘောတရားကို ခိုင်မာစေသည်၊ ယုတ္တိအမှားများကို လျှော့ချရန် ခိုင်လုံသော static typing ကို ပံ့ပိုးပေးကာ၊ input values ​​များကို ကိုင်တွယ်ရာတွင် ရိုးရှင်းစေသည်။ Pattern လိုက်​ဖက်​တာ​ကြောင့်​..

OS kernel ကဲ့သို့သော အဆင့်နိမ့်သော အစိတ်အပိုင်းများ ဖွံ့ဖြိုးတိုးတက်မှုအတွက်၊ Rust သည် ကုန်ကြမ်းညွှန်မှတ်များ၊ ဖွဲ့စည်းပုံထုပ်ပိုးမှု၊ တပ်ဆင်သူအတွင်း ထည့်သွင်းမှုများနှင့် တပ်ဆင်သူဖိုင်များကို မြှုပ်နှံရန်အတွက် ပံ့ပိုးပေးပါသည်။ စံစာကြည့်တိုက်နှင့် ချိတ်ဆက်ခြင်းမပြုဘဲ လုပ်ဆောင်ရန်အတွက်၊ strings၊ vectors နှင့် bit flags များဖြင့် လုပ်ဆောင်ချက်များကို လုပ်ဆောင်ရန်အတွက် သီးခြား crate package များရှိပါသည်။ နောက်ထပ်အားသာချက်မှာ ကုဒ်အရည်အသွေးကို အကဲဖြတ်ခြင်း (linter၊ rust-analyzer) နှင့် စစ်မှန်သောဟာ့ဒ်ဝဲတွင်သာမက QEMU တွင်ပါ လုပ်ဆောင်နိုင်သည့် ယူနစ်စမ်းသပ်မှုများကို ဖန်တီးရန်အတွက် တပ်ဆင်ထားသည့်ကိရိယာများဖြစ်သည်။

source: opennet.ru

မှတ်ချက် Add