Asterinas долбоору Rust тилинде жазылган жана жалпы максаттагы операциялык тутумдарда колдонуу үчүн иштелип чыккан 0.19 версиясын чыгарды. Ядро ядро менен шайкеш келген ABI (Application Binary Interface) менен камсыз кылат. Linux жана анын ордуна колдонулушу мүмкүн. Asterinas ядросун NixOS система чөйрөсү менен айкалыштырган Asterinas NixOS дистрибутиви параллелдүү түрдө иштелип чыгууда. Долбоордун коду 2022-жылдан бери иштелип чыгып, MPL (Mozilla Public License) лицензиясынын алкагында таратылат.
Учурда ядродо 240тан ашык системалык чакыруулар ишке ашырылган. LinuxAsterinas NixOS дистрибутиви 100дөн ашык NixOS пакеттери менен Asterinas ядросунун үстүндө иштей тургандыгы текшерилген. Колдоого алынган пакеттерге төмөнкүлөр кирет: 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 архитектурасын толук колдойт, Intel TDX негизиндеги обочолонтуу менен ARM64, RISC-V 64 жана x86-64 үчүн жарым-жартылай колдоо көрсөтөт, ошондой эле 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 (Операциялык системаны иштеп чыгуу комплекти) берилет, ал операциялык системанын компоненттерин түзүү, куруу, сыноо жана иштетүү үчүн cargo-osdk утилитасын камсыз кылат. Иштеп чыгуучулар ошондой эле операциялык системанын компоненттеринде колдонууга ылайыкташтырылган Rust стандарттык китепканаларынын (crate std) версиясын камтыган OSTD (Операциялык системанын стандарттык китепканасы) топтомуна кире алышат.
Asterinas 0.19дагы өзгөрүүлөрдүн арасында:
- DRM (Direct Rendering Manager) ички системасы, /dev/dri түзмөгү, KMS (ядро режимин орнотуу) интерфейси жана "режим орнотуу" драйвери ишке ашырылды, бул мурда колдонулган fbdev драйверинин ордуна, кадр буферин колдонгон X.Org Server жана Mesa негизиндеги стандарттуу графикалык стекти ишке киргизүүгө мүмкүндүк берет.
- AArch64 (ARM64) архитектурасын колдоо кошулду, ал азыр x86-64 менен бирге негизги иштеп чыгуу архитектурасы катары кызмат кылат. AArch64 үчүн экинчи деңгээлдеги колдоо ишке ашырылды, ал негизги функцияларды, үзгүлтүксүз интеграциялык тестирлөөнү жана жарым-жартылай тестирлөөнү камсыз кылат.
- Asterinaларды Kata контейнерлеринде жана купуя контейнерлерде конок системасы катары иштетүүгө ылайыкташтыруу боюнча иштер улантылды. Стандарттык ядро файл системасынын тесттик топтомдорунан ийгиликтүү өткөн жаңы Overlayfs ишке ашыруусу сунушталды. Linux жана xfstests. Жаңы орнотуу API ишке ашырылды. Virtio-fs коду турукташтырылды. Протоколду колдоо кошулду.
түз жүктөлүү, QEMU, Cloud Hypervisor жана Firecracker программаларында колдонулат. Жүктөө убактысы тездетилди. виртуалдык машиналар, анын эс тутуму Intel TDX технологиясын колдонуу менен шифрленген. - OSTD (Операциялык системанын стандарттык китепканасы) алкагы Intel VMX негизинде минималисттик гипервизорлорду түзүү үчүн негизги APIди ишке ашырат.
- Rust драйверин иштеп чыгуу моделин колдоо кошулду. Ядро компоненттерин эске салган функцияга ээ aster-түзмөк компоненти кошулду. Linux драйверди иштеп чыгуу үчүн негизги примитивдер жана абстракциялар менен, бирок Rust тилинде кооптуу кодсуз жазылган.
- Өзүн-өзү хостинг кылуу эми мүмкүн - эми сиз Asterinas ядросун Asterinas ядросу жана NixOS пакеттери бар чөйрөдөн кура аласыз.
Source: opennet.ru
