O proxecto Kerla está a desenvolver un núcleo compatible con Linux na linguaxe Rust

O proxecto Kerla está a desenvolver un núcleo de sistema operativo escrito na linguaxe Rust. O novo núcleo céntrase inicialmente en proporcionar compatibilidade co núcleo de Linux a nivel ABI, o que permitirá que os ficheiros executables non modificados compilados para Linux se executen nun ambiente baseado en Kerla. O código distribúese baixo as licenzas Apache 2.0 e MIT. O proxecto está a ser desenvolvido pola desenvolvedora xaponesa Seiya Nuta, coñecida por crear o sistema operativo de micronúcleo Resea, escrito en linguaxe C.

Na súa fase actual de desenvolvemento, Kerla só pode executarse en sistemas x86_64 e implementa chamadas básicas de sistema como write, stat, mmap, pipe and poll, admite sinais, canalizacións sen nome e cambios de contexto. As chamadas como fork, wait4 e execve ofrécense para controlar os procesos. Hai soporte para tty e pseudo-terminais (pty). Os sistemas de ficheiros soportados actualmente son initramfs (utilizado para montar o sistema de ficheiros raíz), tmpfs e devfs. Ofrécese unha pila de rede con soporte para sockets TCP e UDP, implementada baseándose na biblioteca smoltcp.

O programador preparou un ambiente de arranque que se executa en QEMU ou na máquina virtual Firecracker co controlador virtio-net, ao que xa pode conectarse a través de SSH. musl úsase como biblioteca do sistema e BusyBox úsase como utilidades de usuario.

O proxecto Kerla está a desenvolver un núcleo compatible con Linux na linguaxe Rust

Preparouse un sistema de compilación baseado en Docker que che permite crear os teus propios initramfs de arranque co núcleo Kerla. Por separado, están a desenvolverse o shell de software nsh similar ao peixe e a pila Kazari GUI baseada no protocolo Wayland.

O proxecto Kerla está a desenvolver un núcleo compatible con Linux na linguaxe Rust

Usar a linguaxe Rust nun proxecto permítelle reducir o número de erros no código utilizando técnicas de programación seguras e aumentando a eficiencia na identificación de problemas cando se traballa coa memoria. Rust aplica a seguridade da memoria no momento da compilación mediante a comprobación de referencias, a propiedade do obxecto e o seguimento da vida útil do obxecto (ámbitos) e avaliando a corrección dos accesos á memoria no tempo de execución. Rust tamén ofrece protección contra desbordamentos de números enteiros, require que os valores variables sexan inicializados antes do seu uso, aplica o concepto de referencias e variables inmutables por defecto, ofrece unha forte escritura estática para minimizar os erros lóxicos e simplifica o manexo dos valores de entrada con patróns. correspondente. .

Para o desenvolvemento de compoñentes de baixo nivel, como o núcleo do SO, Rust ofrece soporte para punteiros en bruto, empaquetado de estruturas, insercións en liña do ensamblador e incrustación de ficheiros ensambladores. Para traballar sen estar vinculado á biblioteca estándar, hai paquetes de caixas separados para realizar operacións con cadeas, vectores e marcas de bits. Outra vantaxe son as ferramentas integradas para avaliar a calidade do código (linter, rust-analyzer) e crear probas unitarias que se poden executar non só en hardware real, senón tamén en QEMU.

Fonte: opennet.ru

Engadir un comentario