Asterinas նախագիծը թողարկել է 0.18 տարբերակը, որը Rust լեզվով գրված միջուկ է և նախատեսված է ընդհանուր նշանակության օպերացիոն համակարգերում օգտագործելու համար: Միջուկը ապահովում է միջուկի հետ համատեղելի ABI (Application Binary Interface): Linux և կարող է օգտագործվել դրա փոխարեն։ Asterinas NixOS բաշխումը, որը համատեղում է Asterinas միջուկը NixOS համակարգային միջավայրի հետ, մշակվում է զուգահեռաբար։ Նախագծի կոդը տարածվում է MPL (Mozilla Public License) լիցենզիայով։
Ներկայումս միջուկում իրականացվել է մոտ 240 համակարգային կանչ։ LinuxAsterinas NixOS բաշխումը ստուգված է, որ կարող է աշխատել Asterinas միջուկի վրա՝ ավելի քան 100 NixOS փաթեթներով: Աջակցվող փաթեթների թվում են՝ Xfce, Firefox, bash, systemd, Podman, QEMU, rsync, Apache httpd, nginx, SQLite, Redis, Clang, GCC, Go, Lua, Node.js, OpenJDK, Perl, PHP, Python, Ruby, Rust, Git, FFmpeg, PyTorch, TensorFlow, Ollama և Codex:
Միջուկը ապահովում է x86-64 ճարտարապետության լիակատար աջակցություն, մասնակի աջակցություն RISC-V 64 և x86-64-ի համար՝ Intel TDX-ի վրա հիմնված մեկուսացմամբ, ինչպես նաև LoongArch 64 ճարտարապետության նախնական աջակցություն: Կիրառման առաջնահերթ ոլորտները ներառում են համակարգեր, որոնք հիմնված են... Linux ABI-ներ, որոնք պահանջում են անվտանգության ավելի բարձր մակարդակ: Օրինակ, Asterinas-ը առաջարկվում է օգտագործել անվտանգ համակարգային միջավայր ստեղծելու համար: վիրտուալ մեքենա, որի մեկուսացման համար օգտագործվում են այնպիսի տեխնոլոգիաներ, ինչպիսիք են ARM CCA-ն, AMD SEV-ը և Intel TDX-ը, ինչպես նաև հյուրընկալող համակարգի կողմից, որը ապահովում է կոնտեյներների գործարկումը։
Հիշողության սխալների հավանականությունը նվազեցնելու համար, որոնք ամենավտանգավոր խոցելիությունների հիմնական աղբյուրն են, Asterinas-ը օգտագործում է Rust լեզուն և սահմանափակ քանակությամբ անվտանգ բլոկներ։ Միջուկը կառուցված է framekernel ճարտարապետության միջոցով, որը փորձում է համատեղել միկրոմիջուկների մեկուսացման հնարավորությունները մոնոլիտ միջուկների արդյունավետության հետ։
Asterinas-ի միջուկի բաղադրիչները տեղակայված են համատեղ հասցեների տարածքում, և անվտանգությունն ապահովվում է անվտանգ կոդի տրամաբանական տարանջատման միջոցով այն կոդից, որը կարող է խոցելի լինել: Միջուկը բաժանված է երկու մասի, որոնք երկուսն էլ գրված են Rust լեզվով՝ OS Framework և OS Services: OS Services-ը արգելում է անվտանգ բլոկների օգտագործումը, և բոլոր ցածր մակարդակի գործողությունները, որոնք պահանջում են կոդի կատարում անվտանգ բլոկներում, տեղափոխվում են OS Framework և հասանելի են միայն բարձր մակարդակի API-ի միջոցով: Բոլոր համակարգային կանչերը, ֆայլային համակարգերը և դրայվերները իրականացվում են OS Services մակարդակում և չեն կարող ներառել անվտանգ բլոկներ:
Համակարգային ծառայությունների և միջուկային մոդուլների մշակման համար տրամադրվում է OSDK-ն (Operating System Development Kit), որը տրամադրում է cargo-osdk ծրագիրը օպերացիոն համակարգի բաղադրիչներ ստեղծելու, կառուցելու, փորձարկելու և աշխատեցնելու համար: Մշակողները կարող են նաև օգտագործել OSTD (Operating System Standard Library) հավաքածուն, որը ներառում է Rust ստանդարտ գրադարանների (crate std) հրատարակությունը, որը հարմարեցված է օպերացիոն համակարգի բաղադրիչներում օգտագործելու համար:
0.18 տարբերակի փոփոխություններից.
- Որպես Kata Containers և Confidential Containers VM կոնտեյներներում Asterinas-ի որպես հյուր համակարգ աշխատանքի ապահովման աշխատանքների մի մաս, աջակցություն է ներդրվել IPC և cgroup անվանատարածքների, nsfs (/proc/[pid]/ns), cgroups, virtio-fs (հոսթ համակարգի հետ համատեղ օգտագործվող ֆայլային համակարգին մուտք գործելու համար), virtio-rng (/dev/hwrng՝ կեղծ-պատահական թվերի գեներատորի էնտրոպիայի համար) և vsock (հոսթ և հյուր համակարգերի միջև հաղորդակցության համար) համար։
- Իրականացվեցին ptrace համակարգի կանչի և օգտատիրոջ տարածքի վրիպազերծման հնարավորությունները՝ օգտագործելով GDB և strace:
- Առաջարկվել է ext2 ֆայլային համակարգի նոր իրականացում և ավելացվել է NVMe դրայվեր: VFS-ին ավելացվել է Dentry (Directory Entry) մեխանիզմ, իսկ էջի քեշի իրականացումը վերաձևավորվել է:
- Asterinas NixOS բաշխումը կարող է աշխատեցնել Codex, QEMU և Firefox:
- Ավելացվել են pidfd_getfd, pidfd_send_signal, pivot_root համակարգային կանչերը։
- Ավելացված սկզբնատառ IPv6 աջակցություն.
- Անհատական արտոնյալ գործողությունները պատվիրակելու համար ներդրվել է կարողությունների համակարգ։
- Ավելացվել է LSM շրջանակի սկզբնական իրականացումը (Linux Անվտանգության մոդուլներ):
Source: opennet.ru
