Redox, un sistema operativo escrito con el lenguaje de programación Rust
Después de un año de desarrollo, fue anunciado el lanzamiento de la nueva versión del sistema operativo Redox 0.5, el cual tiene como principal enfoque que su desarrollo es utilizando el lenguaje Rust y el concepto de microkernel.
Los desarrollos del proyecto se distribuyen bajo la licencia gratuita MIT. Para las pruebas en VirtualBox o QEMU, se ofrecen imágenes de arranque especificas para cada uno de estos.
El entorno de usuario de Redox se basa en la GUI de Orbital que se ejecuta en Wayland. Netsurf se utiliza como un navegador web.
Sobre Redox
El sistema operativo utiliza el concepto de un microkernel, donde solo se proporciona la interacción entre los procesos y la administración de recursos a nivel del kernel y toda la otra funcionalidad se transfiere a las bibliotecas que pueden usar tanto el kernel como las aplicaciones de usuario.
Todos los controladores se ejecutan en el espacio de usuario en entornos aislados de sandbox. Para la compatibilidad con las aplicaciones existentes, se proporciona una capa POSIX especial que le permite ejecutar muchos programas sin portar.
Redox se desarrolla de acuerdo con la filosofía de Unix, tomando prestadas algunas ideas de SeL4, Minix y Plan 9.
El sistema utiliza el principio “todo es una URL“.
Por ejemplo, la URL “log: //” se puede usar para el registro, la interacción entre los procesos “bus: //”, la interacción de red “tcp: //”, etc.
Los módulos que se pueden implementar en forma de controladores, extensiones de kernel y aplicaciones de usuario pueden registrar sus manejadores de URL, por ejemplo, puede escribir un módulo para acceder a los puertos de E / S y vincularlo a la URL “port_io: //”, después de lo cual puede usar para acceder al puerto 60 a través de la apertura de la URL “port_io: // 60”.
El proyecto también está desarrollando su propio administrador de lotes, un conjunto de utilidades estándar (binutils, coreutils, netutils, extrautils), el shell de comandos “ion” , el editor de texto vod-like sodium, el stack de red y el sistema de archivos TFS desarrollado sobre la base de las ideas de ZFS. ).
La configuración se establece en el lenguaje Toml. El sistema admite de momento su uso en procesadores x86_64 con una tarjeta gráfica compatible con VBE (nvidia, intel, amd), discos AHCI y tarjetas de red basadas en chips E1000 o RTL8168.
Principales novedades de Redox 0.5
El lanzamiento de la nueva version de Redox 0.05 llega con algunas innovaciones de las cuales podemos destacar de primera instancia que la propia biblioteca C estándar Relibc, escrita en Rust.
Relibc se posiciona como una implementación portátil de la biblioteca estándar de C, compatible con POSIX y capaz de trabajar no solo en Redox, sino también en distribuciones basadas en Linux.
Anteriormente en Redox, la bifurcación de la biblioteca newlib del proyecto Cygwin se usó como una biblioteca estándar, pero no se adaptó a los desarrolladores en términos de seguridad y multiplataforma. En la etapa actual de desarrollo, Relibc ya es muy superior a la funcionalidad newlib.
Además de ello en Redox 0.5 se prepararon nuevos bootloader-coreboot y bootloader-efi para coreboot y EFI, sobre la base de los cuales se formaron las imágenes de arranque.
Las bibliotecas para trabajar con EFI están escritas en Rust y el código de inicio (payload for coreboot) en Rust. Los cargadores se pueden usar por separado de Redox y en otros proyectos.
El sistema de gestión de eventos ha sido rediseñado para proporcionar el soporte correcto para seleccionar y sondear llamadas.
De las demás novedades que se pueden destacar en el anuncio de esta nueva versión encontramos:
- Se ha Implementado soporte completo para las funciones en mapeo de memoria (mmap).
- Se agregó soporte para Pthreads y se sugirieron llamadas adicionales al sistema para el procesamiento de la señal.
- Compatibilidad mejorada con LLVM, lo que permitió el ensamblaje de rustc y Mesa (c llvmpipe).
- Debido a la transición a la nueva biblioteca del sistema, se logró el soporte para muchas aplicaciones nuevas.
- Se han agregado un total de 62 nuevos paquetes.
Para la instalación en Redox ya hay paquetes listos para usar con las bibliotecas SDL2, ffmpeg, cairo, gstreamer, pcre, glman, libiconv, libsodium y gettext, un conjunto de compiladores, una implementación de OpenGL, una aplicación de OpenGL, Vcckv Mesa, emuladores scummvm, doscitas y costumbres, y una aplicación de OpenGL en su conjunto. Nukem 3D), openttd y FreeDoom.
El artículo Redox, un sistema operativo escrito con el lenguaje de programación Rust ha sido originalmente publicado en Linux Adictos.