Se ha publicado la versión 2.1 del sistema operativo Unix-like ToaruOS, desarrollado desde cero y que incluye su propio núcleo, gestor de arranque, biblioteca estándar en C, gestor de paquetes, componentes de espacio de usuario y una interfaz gráfica con un gestor de ventanas compuesto. El proyecto se originó en la Universidad de Illinois como un trabajo de investigación en la creación de nuevas interfaces gráficas compuestas, pero luego se transformó en un sistema operativo independiente. El código del proyecto está escrito en C y se distribuye bajo la licencia BSD. Se ha preparado una imagen live para su descarga, con un tamaño de 14.4 MB, que se puede probar en QEMU, VMware o VirtualBox.

En la base de ToaruOS se encuentra un núcleo que utiliza una arquitectura modular híbrida, combinando una base monolítica y medios para utilizar módulos cargables, formato en el que se encuentran la mayoría de los controladores de dispositivos disponibles, como controladores de disco (PATA y ATAPI), sistema de archivos EXT2 y ISO9660, framebuffer, teclado, ratón, tarjetas de red (AMD PCnet FAST, Realtek RTL8139 e Intel PRO/1000), chips de sonido (Intel AC'97), así como extensiones de VirtualBox para sistemas invitados. El núcleo soporta hilos de Unix, TTY, sistema de archivos virtual, pseudo-sistema de archivos /proc, multihilo, IPC, ramdisk, ptrace, memoria compartida, multitarea y otras funcionalidades típicas.
El sistema cuenta con un gestor de ventanas compuesto, soporta archivos ejecutables dinámicamente vinculados en formato ELF, multitarea, una pila gráfica, y puede ejecutar Python 3 y GCC. Se utiliza el sistema de archivos ext2. El gestor de arranque es compatible con BIOS y EFI. La pila de red permite usar una API de sockets al estilo de sistemas BSD y soporta interfaces de red, incluyendo loopback.
Entre sus propias aplicaciones destaca el editor de código Bim, similar a Vi, que se ha utilizado durante los últimos años para desarrollar aplicaciones específicas para ToaruOS, como un gestor de archivos, emulador de terminal, panel gráfico con soporte para widgets, gestor de paquetes y bibliotecas para el soporte de imágenes (PNG, JPEG) y fuentes TrueType. Para ToaruOS se ha portado software como Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, emulador de Super Nintendo, Bochs, etc.
El proyecto también está desarrollando un propio lenguaje de programación dinámico llamado Kuroko, diseñado para reemplazar Python en el desarrollo de utilidades y aplicaciones de usuario para el sistema. El lenguaje tiene una sintaxis similar a Python (se presenta como un dialecto simplificado de Python con definición explícita de variables) y cuenta con una implementación muy compacta. Se soporta la compilación e interpretación de bytecode. El intérprete de bytecode proporciona un recolector de basura y soporta la multiprocesamiento sin usar bloqueo global. El compilador y el intérprete pueden ser construidos como una pequeña biblioteca compartida (~500 KB), integrable con otros programas y ampliable a través de la API de C. Además de ToaruOS, el lenguaje puede ser utilizado en Linux, macOS, Windows y ejecutarse en navegadores compatibles con WebAssembly.
En esta nueva versión:
- Se ha añadido soporte inicial para la arquitectura AArch64 (ARMv8), incluyendo una posibilidad experimental de ejecutar ToaruOS en la placa Raspberry Pi 400 y en el emulador QEMU.
- Se ha reestructurado el manejo y la transmisión de señales a los procesos en el espacio de usuario. Se han implementado las llamadas sigaction, sigprocmask, sigwait y sigsuspend.
- Se ha mejorado la gestión de memoria en el espacio de usuario. Se ha añadido la llamada al sistema munmap.
- El gestor compuesto ha implementado un efecto de desenfoque y se ha reestructurado el manejo de eventos al cambiar el tamaño de la ventana.
- Se ha mejorado el renderizado del terminal, se ha implementado el renderizado diferido y se ha añadido un caché de glifos para fuentes TrueType.
- Se han ampliado las capacidades del enlazador.
- Se han añadido mecanismos para establecer la hora, incluyendo la implementación de la llamada al sistema settimeofday y se han ampliado las capacidades de la utilidad date.
- Se ha mejorado la pila de red. Se ha añadido a la utilidad ifconfig soporte para establecer direcciones IPv4 y configuraciones de enrutamiento. Se ha asegurado el funcionamiento de sockets ICMP. Se ha añadido soporte para la función recvfrom para sockets UDP e ICMP.
- Se ha añadido al gestor de arranque la posibilidad de trabajar con teclados USB.
- Se ha añadido una opción al menú contextual del gestor de archivos para eliminar archivos.
- Se ha mejorado la visualización de gráficos en el monitor del sistema.
- Se ha añadido la utilidad grep con soporte para expresiones regulares.
- Se ha mejorado la salida del comando ps (se han añadido columnas adicionales).

Fuente: opennet.ru
