Se ha publicado la versión 2.0 del sistema operativo similar a Unix ToaruOS, desarrollado desde cero y que incluye su propio núcleo, gestor de arranque, biblioteca estándar de C, gestor de paquetes, componentes del espacio del usuario y una interfaz gráfica con un gestor de ventanas compuestas. El código del proyecto está escrito en C y se distribuye bajo la licencia BSD. Se ha preparado una imagen en vivo de 14.4 MB que se puede probar en QEMU, VMware o VirtualBox.

El proyecto comenzó en 2010 en la Universidad de Illinois y inicialmente se desarrolló como un trabajo de investigación en la creación de nuevas interfaces gráficas compuestas. Desde 2012, el desarrollo se ha transformado en el sistema operativo ToaruOS, que es desarrollado por una comunidad interesada en la programación. En su estado actual, el sistema cuenta con un gestor de ventanas compuestas, soporta archivos ejecutables vinculados dinámicamente en formato ELF, multitarea, una pila gráfica, y puede ejecutar Python 3 y GCC.
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.
Se utiliza ext2 como sistema de archivos. El gestor de arranque es compatible con BIOS y EFI. La pila de red permite el uso de API de sockets al estilo de sistemas BSD y soporta interfaces de red, incluido loopback. Se han portado a ToaruOS programas como Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, emulador de Super Nintendo, Bochs, etc. Entre las aplicaciones propias destaca Bim, un editor de código similar a Vi, que se ha utilizado durante los últimos años para el desarrollo de aplicaciones específicas de ToaruOS, como un gestor de archivos, emulador de terminal, un panel gráfico con soporte para widgets, gestor de paquetes y bibliotecas para soporte de imágenes (PNG, JPEG) y fuentes TrueType.
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 la nueva versión de ToaruOS:
- Se ha añadido a la kernel Misaka la funcionalidad que permite implementar utilidades de usuario como top, strace, dbg, ping y cpuwidget.
- Se han ampliado las capacidades de la biblioteca gráfica, incluyendo la adición de transformaciones afines.
- Se ha mejorado el funcionamiento del marco de ventanas.
- Se ha añadido un rasterizador de texto con soporte para el formato TrueType.
- Se ha añadido una biblioteca para dar formato al texto con marcado.
- Se ha mejorado el gestor de arranque BIOS, ampliando el soporte para configuraciones de hardware. Se ha reescrito el gestor de arranque EFI. Ambos gestores de arranque han añadido soporte para la edición mediante la línea de comandos del núcleo.
- Se ha mejorado el diseño del panel. Los widgets ahora admiten bibliotecas cargadas, una disposición dinámica de los elementos y nuevas ventanas emergentes.
- Se ha reescrito el visor, al que se le han añadido nuevas paletas.
- Se ha añadido una nueva implementación del calculador.
- Se ha añadido soporte para zonas horarias a la biblioteca estándar.
- Se ha añadido un controlador para el chipset Ensoniq ES1371, emulado en VMware.
- Se espera que la próxima versión importante 2.1 tenga soporte para dispositivos AHCI, xHCI y USB HID. En la rama 2.2 se planea implementar soporte para la arquitectura AArch64.



Fuente: opennet.ru
