Asterinas долбоору Linux менен шайкеш келген Rust ядросун иштеп чыгууда

Кытайдан келген иштеп чыгуучулардын тобу Rust тилинде жазылган жана жалпы максаттагы операциялык системаларда колдонууга арналган Asterinas ядросун иштеп чыгууда. Буга чейин иштелип чыккан система компоненттери менен интеграцияны жөнөкөйлөтүү үчүн, ядро ​​Linux ядросу менен шайкеш келген жана анын ордуна колдонула турган ABI (Application Binary Interface) менен камсыз кылат. Долбоордун коду MPL (Mozilla Public License) боюнча таратылат.

Долбоор 2022-жылдын күзүнөн бери өнүгүп келе жатат жана быйыл кеңири колдонууга ылайыктуу деңгээлге жетүүнү көздөйт. виртуалдык машиналар x86-64 архитектурасы менен. Кийинки жылдан баштап, көңүлдү жабдууларды жана башка CPU архитектураларын колдоого буруу пландаштырылууда. Колдонмонун артыкчылыктуу багыттарына Linux ABI менен байланышкан, бирок жогорку деңгээлдеги коопсуздукту талап кылган системалар кирет. Мисалы, Asterinas коопсуз система чөйрөсүн түзүүдө колдонуу үчүн сунушталат виртуалдык машиналар, изоляциялоо үчүн ARM CCA, AMD SEV жана Intel TDX сыяктуу технологиялар колдонулат, ошондой эле контейнерлердин ишке киргизилишин камсыз кылган хост системасы тарабында.

Эң коркунучтуу алсыздыктын негизги булагы болгон эс тутум менен иштөөдө ката кетирүү ыктымалдыгын азайтуу үчүн Asterinas жазууда Rust тили жана кооптуу блокторду чектелген колдонуу тактикасы колдонулат. Ядро фреймдик ядронун архитектурасын колдонуу менен курулган, анда иштеп чыгуучулар микроядролордун изоляция мүмкүнчүлүктөрүн монолиттүү ядролордун эффективдүүлүгү менен айкалыштырууга аракет кылышкан.

Asterinas ичиндеги ядро ​​компоненттери жалпы дарек мейкиндигинде жайгаштырылат жана коопсуздук коопсуз код менен коддун логикалык бөлүнүү деңгээлинде камсыз кылынат, анда коопсуздук көйгөйлөрү келип чыгышы мүмкүн. Негизги Rust менен жазылган эки бөлүккө бөлүнөт: OS Framework жана OS Services. OS Кызматтарында кооптуу блокторду колдонууга тыюу салынган жана кооптуу блоктордо коддун аткарылышын талап кылган бардык төмөнкү деңгээлдеги операциялар OS алкактарында жайгаштырылган жана жогорку деңгээлдеги API аркылуу гана жеткиликтүү. Бардык системалык чалуулар, файл тутумдары жана драйверлер OS кызматтарынын деңгээлинде ишке ашырылат жана кооптуу блокторду камтый албайт.

Системалык кызматтарды жана ядро ​​модулдарын иштеп чыгууда операциялык системанын компоненттерин түзүү, куруу, тестирлөө жана ишке киргизүү үчүн cargo-osdk утилитасын камсыз кылган OSDK (Operating System Development Kit) инструменттерин колдонуу сунушталат. Иштеп чыгуучулар үчүн OSTD (Operating System Standard Library) китепканаларынын топтому даярдалган, ал операциялык системанын компоненттеринде колдонууга ылайыкташтырылган стандарттуу Rust китепканаларынын (crate std) басылышы болуп саналат.

Source: opennet.ru

Комментарий кошуу