Después de un año y medio de desarrollo, se ha publicado la versión 0.7 del sistema operativo Redox, desarrollado utilizando el lenguaje Rust y el concepto de microkernel. Los avances del proyecto se distribuyen bajo la licencia MIT. Para probar Redox OS, se ofrecen imágenes de instalación y Live que ocupan 75 MB. Las compilaciones están formadas para la arquitectura x86_64 y están disponibles para sistemas con UEFI y BIOS.
En la preparación de la nueva versión, se ha puesto un enfoque particular en garantizar su funcionamiento en hardware real. Las principales novedades son:
- Se ha reescrito completamente el gestor de arranque, unificando y mayormente escribiendo en Rust el código para el arranque en sistemas con BIOS y UEFI. El cambio en el gestor de arranque ha permitido ampliar significativamente el rango de hardware compatible.
- En el núcleo, además de corregir errores, se ha trabajado para mejorar el rendimiento y ampliar el soporte de hardware. Las variables específicas de la CPU se han trasladado al uso del registro GS. Se ha logrado un mapeo de toda la memoria física y se ha detenido el uso de páginas de memoria recursivas. El código ensamblador en las inserciones en línea ha sido reescrito para mejorar la compatibilidad con futuras versiones del compilador.
- Se ha añadido soporte inicial para la arquitectura AArch64.
- Se ha realizado la transición para el procesamiento de todas las rutas de archivos en codificación UTF-8.
- El código para trabajar con la Especificación de Lenguaje de Máquina ACPI (ACPI Machine Language) — uefi.org, se ha trasladado del núcleo al proceso en segundo plano acpid, que se ejecuta en el espacio de usuario.
- El contenido de Initfs se ha trasladado a un nuevo archivo, lo que ha simplificado la creación de paquetes.
- El sistema de archivos RedoxFS ha sido reescrito y se ha cambiado a utilizar el mecanismo de CoW (Copy-on-Write), donde los cambios no sobrescriben la información, sino que se guardan en un nuevo lugar, lo que ha permitido obtener un aumento significativo en la fiabilidad. Entre las nuevas características de RedoxFS se destaca el soporte para actualizaciones transaccionales, el cifrado de datos utilizando el algoritmo AES, así como la certificación de datos y metadatos mediante firmas digitales. Se ha garantizado el uso compartido del código del sistema de archivos en el sistema y en el gestor de arranque.
- Se ha continuado la mejora de la biblioteca estándar en C Relibc, capaz de funcionar no solo en Redox, sino también en distribuciones basadas en el núcleo de Linux. Los cambios introducidos han simplificado la portabilidad de varios programas a Redox y han resuelto problemas con muchos programas y bibliotecas escritas en C.
- Se ha preparado una versión del compilador rustc, capaz de ejecutarse en Redox. Entre las tareas restantes se destacan la optimización del rendimiento y la adaptación del gestor de paquetes cargo para funcionar en el entorno de Redox.

El sistema operativo se desarrolla de acuerdo con la filosofía de Unix y toma prestadas algunas ideas de SeL4, Minix y Plan 9. Redox utiliza el concepto de microkernel, donde a nivel del núcleo solo se garantiza la comunicación entre procesos y la gestión de recursos, mientras que toda la funcionalidad adicional se lleva a cabo mediante bibliotecas, que pueden ser utilizadas tanto por el núcleo como por aplicaciones de usuario. Todos los controladores se ejecutan en el espacio de usuario en entornos sandbox aislados. Para la compatibilidad con aplicaciones existentes, se proporciona una capa POSIX especial que permite ejecutar muchos programas sin necesidad de portación.
En el sistema se aplica el principio de "todo es URL". Por ejemplo, para escribir en el registro se puede usar la URL "log://", para la interacción entre procesos "bus://", para la interacción de red "tcp://", etc. Los módulos que pueden implementarse en forma de controladores, extensiones del núcleo y aplicaciones de usuario pueden registrar sus manejadores de URL; por ejemplo, se puede escribir un módulo para acceder a puertos de entrada/salida y vincularlo a la URL "port_io://", después de lo cual se puede usar para acceder al puerto 60 abriendo la URL "port_io://60".
El entorno de usuario en Redox se basa en su propio entorno gráfico Orbital (no confundir con otro entorno Orbital que utiliza Qt y Wayland) y el kit de herramientas OrbTk, que proporciona una API similar a Flutter, React y Redux. Se utiliza Netsurf como navegador web. El proyecto también está desarrollando su propio gestor de paquetes, un conjunto de utilidades estándar (binutils, coreutils, netutils, extrautils), la shell de comandos ion, la biblioteca estándar en C relibc, un editor de texto similar a vim llamado sodium, el stack de red y el sistema de archivos. La configuración se establece en el lenguaje Toml.
Fuente: opennet.ru
