Проект Asterinas развива ядро на езика Rust, съвместимо с Linux

Група разработчици от Китай развива Asterinas ядро, написано на Rust и предназначено за работа в операционни системи с общо предназначение. За улесняване на интеграцията с вече разработените системни компоненти, ядрото предоставя ABI (Application Binary Interface), съвместимо с Linux ядрото и способно да се използва вместо него. Кодът на проекта се разпространява под лиценцията MPL (Mozilla Public License).

Проектът се развива от есента на 2022 година и има за цел да достигне ниво, подходящо за широко използване още през тази година в виртуални машини архитектура x86-64. Започвайки от следващата година, основното внимание ще бъде насочено към реализацията на поддръжка на хардуер и други CPU архитектури. Приоритетни области на приложение са системите, зависими от Linux ABI, но изискващи по-високо ниво на защита. Например, Asterinas предлага да се използва за създаване на системна среда с висока защита. виртуални машини, които използват технологии като ARM CCA, AMD SEV и Intel TDX, а също така и отстрана на хост-системата, осигуряваща стартиране на контейнери.

За намаляване на вероятността от грешки при работа с паметта, която е основният източник на най-опасните уязвимости, при написването на Asterinas се използва Rust и стратегия с ограничено използване на unsafe-блокове. Ядрото е изградено с помощта на архитектурата framekernel, в която разработчиците се опитват да съчетаят възможностите за изолация на микроядерата с ефективността на монолитните ядра.

Компонентите на ядрото в Asterinas са разположени в общо адресно пространство, а безопасността се постига на нивото на логично разделение на безопасния код и кода, в който не е изключена възможността за проблеми с безопасността. Ядрото е разделено на две части, написани на Rust: OS Framework и OS Services. В OS Services е забранено използването на unsafe-блокове, а всички нискоравни операции, изискващи изпълнение на код в блокове unsafe, са изнесени в OS Framework и са достъпни само чрез високоуровневи API. Всички системни повиквания, файлови системи и драйвери се реализират на нивото на OS Services и не могат да включват unsafe-блокове.

При разработката на системни услуги и модули за ядрото, се предлага да се използва инструментария OSDK (Комплект за разработка на операционна система), който предоставя утилитата cargo-osdk за създаване, компилиране, тестване и стартиране на компонентите на операционната система. За разработчиците е подготвен набор от библиотеки OSTD (Стандартна библиотека на операционната система), представляваща редакция на стандартните библиотеки Rust (crate std), адаптирана за използване в компонентите на операционната система.

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster