El proyecto Asterinas desarrolla un núcleo en el lenguaje Rust, compatible con Linux

Un grupo de desarrolladores de China está desarrollando el núcleo Asterinas, escrito en el lenguaje Rust y destinado al uso en sistemas operativos de propósito general. Para facilitar la integración con los componentes del sistema ya desarrollados, el núcleo proporciona una ABI (Interfaz Binaria de Aplicación) compatible con el núcleo de Linux y que puede usarse como un reemplazo. El código del proyecto se distribuye bajo la licencia MPL (Licencia Pública de Mozilla).

El proyecto se ha estado desarrollando desde el otoño de 2022 y planea alcanzar en este año un nivel adecuado para su uso general en máquinas virtuales con arquitectura x86-64. A partir del próximo año, se planea centrar la atención en la implementación del soporte de hardware y otras arquitecturas de CPU. Se mencionan como áreas prioritarias de aplicación sistemas que dependen de la ABI de Linux, pero que requieren un nivel más alto de seguridad. Por ejemplo, se sugiere usar Asterinas para formar entornos de sistema seguros máquinas virtuales, que utilizan tecnologías como ARM CCA, AMD SEV e Intel TDX, así como en el lado del sistema anfitrión, que asegura la ejecución de contenedores.

Para reducir la probabilidad de errores al trabajar con la memoria, que son la principal fuente de vulnerabilidades peligrosas, al escribir Asterinas se ha utilizado el lenguaje Rust y la táctica de uso limitado de bloques unsafe. El núcleo está construido utilizando la arquitectura framekernel, en la que los desarrolladores intentaron combinar las capacidades de aislamiento de micro núcleos con la eficiencia de núcleos monolíticos.

Los componentes del núcleo en Asterinas se colocan en un espacio de direcciones común, y la seguridad se logra a través de la división lógica del código seguro y el código en el que no se puede descartar la aparición de problemas de seguridad. El núcleo se divide en dos partes, escritas en Rust: OS Framework y OS Services. En OS Services se prohíbe el uso de bloques unsafe, y todas las operaciones de bajo nivel que requieren la ejecución de código en bloques unsafe se trasladan a OS Framework y solo están disponibles a través de una API de alto nivel. Todas las llamadas al sistema, los sistemas de archivos y los controladores se implementan a nivel de OS Services y no pueden incluir bloques unsafe.

Al desarrollar servicios del sistema y módulos del núcleo, se sugiere utilizar la herramienta OSDK (Operating System Development Kit), que proporciona la utilidad cargo-osdk para crear, compilar, probar y ejecutar componentes del sistema operativo. Para los desarrolladores, se ha preparado un conjunto de bibliotecas OSTD (Operating System Standard Library), que es una edición de las bibliotecas estándar de Rust (crate std), adaptada para su uso en componentes del sistema operativo.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster