Se ha publicado la versión 0.8 del sistema operativo Redox, desarrollado utilizando el lenguaje Rust y el concepto de microkernel. Los desarrollos del proyecto se distribuyen bajo la licencia MIT. Para probar Redox OS, se ofrecen builds de demostración de 768 MB, así como imágenes con un entorno gráfico básico (256 MB) y herramientas de consola para sistemas de servidores (256 MB). Las builds están formadas para la arquitectura x86_64 y son accesibles para sistemas con UEFI y BIOS. La imagen de demostración, además del entorno gráfico Orbital, incluye el emulador DOSBox, una selección de juegos (DOOM, Neverball, Neverputt, sopwith, syobonaction), programas educativos, el reproductor de música rodioplay y el editor de texto Sodium.
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.
En esta nueva versión se ha continuado con el trabajo para asegurar la funcionalidad en hardware real. Además de la arquitectura x86_64, se ha añadido la posibilidad de operar en sistemas de 32 bits x86 (i686, Pentium II y posteriores). Se está portando a CPU ARM64 (aarch64). El funcionamiento en hardware ARM real aún no está soportado, pero es posible arrancar mediante la emulación de ARM64 en QEMU. Por defecto, se ha activado el subsistema de sonido y se ha proporcionado soporte inicial para configuraciones de múltiples monitores (en sistemas con framebuffer UEFI). Entre el hardware soportado en Redox OS se mencionan chips de sonido AC’97 y Intel HD Audio, salida gráfica a través de la API VESA BIOS o UEFI GOP, Ethernet (Intel 1/10 Gigabit Ethernet, Realtek RTL8168), dispositivos de entrada (teclados, ratones, touchpads), SATA (AHCI, IDE) y NVMe. El soporte para Wi-Fi y USB aún no está completo (USB solo funciona en QEMU).
Otras novedades:
- Se han unificado las imágenes de arranque para sistemas con BIOS y EFI.
- La implementación de las llamadas al sistema clone y exec se ha trasladado al espacio de usuario.
- Se ha simplificado el proceso de arranque. Se ha introducido un programa bootstrap, que es iniciado por el núcleo y facilita la carga de archivos ELF, como el proceso init.
- Se ha añadido un programa escalado para asegurar el funcionamiento de programas setuid, como sudo.
- Para simplificar la creación e instalación de procesos en segundo plano, se ha propuesto un paquete crate llamado redox-daemon.
- Se ha reformado el sistema de construcción, que ahora permite la creación para diferentes arquitecturas en un solo árbol de código fuente. Para facilitar la construcción de diferentes configuraciones, se ha propuesto un script build.sh. Se ha añadido soporte para construcción utilizando la herramienta podman. La construcción del núcleo, el gestor de arranque y initfs se ha unificado con otros paquetes.
- Se ha añadido una configuración de demostración para ensamblar ejemplos de programas que no están en la imagen base de arranque con entorno gráfico.
- Se ha añadido soporte para el control de volumen por software en el subsistema de sonido audiod.
- Se ha añadido un controlador para los chips de sonido basados en AC’97. Se ha mejorado el controlador para los chips Intel HD Audio.
- Se ha añadido un controlador para los controladores IDE.
- Se ha mejorado el soporte para unidades NVMe.
- Se han mejorado los controladores PCI, PS/2, RTL8168, USB HID, VESA.
- Se ha reestructurado el proceso de instalación: el cargador de arranque, el bootstrap, el núcleo y el initfs ahora se colocan en el directorio /boot.
- En el núcleo se ha simplificado el manejo de la memoria, añadiendo la capacidad de manipular los espacios de direcciones desde el nivel de usuario.
- En la interfaz gráfica Orbital se ha añadido soporte para sistemas de múltiples monitores, se ha mejorado el manejo del cursor del ratón y se ha añadido un indicador para el cambio de volumen. En el menú se ha implementado la posibilidad de categorizar las aplicaciones.
Fuente: opennet.ru
