¿Poder usar un sistema operativo GNU/Linux sin el kernel Linux que le da nombre? Bueno, eso es lo que pretende el proyecto Kerla, que está desarrollando desde cero un kernel escrito en lenguaje Rust.
Podríamos pensar que expresarlo así es hacer trampa, puesto que el nombre del sistema operativo tendría que ser GNU/Kerla, pero es que lo que distingue a este nuevo kernel es que será compatible a nivel ABI (interfaz binaria de aplicaciones) con Linux, lo que permitirá ejecutar exactamente los mismos binarios sin necesidad de recompilarlos.
Para ello, implementa llamadas básicas de los sistemas Unix como stats, mmap, fork, wait4… y ofrece por ahora soporte para terminales tty y para pseudoterminales pty, para sistemas de archivos initramfs, tmpfs y devfs, y una pila de red con compatibilidad TCP/UDP basada en la biblioteca smoltcp.
Su creador, Seiya Nuta, ya es conocido por haber creado previamente Resea, un sistema operativo basado en un microkernel y desarrollado en lenguaje C. El código del nuevo kernel ya es accesible desde su propio repositorio GitHub.
El resultado ya se puede probar, aunque se encuentre en una etapa muy temprana de su desarrollo y cuente con pocas funciones, lo que limita por ahora su utilidad. Para probarlo nosotros mismos podemos descargar una imagen usable desde una máquina virtual QEMU o en un Docker. Todas las instrucciones para ello están en el mencionado repositorio.
Linus veía venir que Rust sustituiría a C… pero dentro del propio kernel Linux
Pero, ¿por qué usar un lenguaje de programación como Rust? Porque el uso de técnicas de programación seguras (como las variables inmutables por defecto) por parte de éste permite reducir el número de errores no detectados en el código, sobre todo los relativos al manejo de memoria.
Estas características avanzadas las ofrece Rust en combinación con soporte para la inserción de lenguaje ensamblador, lo cual resulta fundamental para el desarrollo de componentes de bajo nivel.
Recordemos que ya hay en marcha un proyecto para implantar Rust en el kernel Linux original; un proyecto que, de hecho, está en manos de un programador español y recibiendo respaldo financiero por parte de Google.
De hecho, hace un año, su creador, Linus Torvalds, afirmaba estar convencido de que, con el tiempo, presenciaría la sustitución de C como principal lenguaje de desarrollo del kernel. "Puede que sea a manos de Rust, o no".
Ver todos los comentarios en https://www.genbeta.com
VER 27 Comentarios