ToaruOS, un OS escrito desde cero con su propio kernel y que es similar a Unix
Hace poco se dió a conocer la liberación de la versión del sistema operativo similar a Unix «ToaruOS 2.0″, escrito desde cero y provisto con su propio kernel, cargador de arranque, biblioteca C estándar, administrador de paquetes, componentes de espacio de usuario y una interfaz gráfica con un administrador de ventanas compuesto.
El proyecto se inició en 2010 en la Universidad de Illinois y se desarrolló inicialmente como un trabajo de investigación en el campo de la creación de nuevas interfaces gráficas compuestas.
Desde 2012, el desarrollo se ha transformado al sistema operativo ToaruOS, desarrollado por la comunidad interesada en el desarrollo.
Sobre ToaruOS
En su forma actual, el sistema está equipado con un administrador de ventanas compuesto , admite archivos ejecutables vinculados dinámicamente en formato ELF, multitarea, pila de gráficos, puede ejecutar Python 3 y GCC.
ToaruOS se basa en un kernel que utiliza una arquitectura modular híbrida que combina una base monolítica y herramientas para el uso de módulos cargables, en la forma en que están diseñados la mayoría de los controladores de dispositivos disponibles, como los controladores de disco (PATA y ATAPI), EXT2 y ISO9660 FS, framebuffer, teclado, mouse, tarjetas de red (AMD PCnet FAST, Realtek RTL8139 e Intel PRO/1000), chips de sonido (Intel AC’97) y complementos de VirtualBox para sistemas invitados.
El kernel admite subprocesos Unix, TTY, sistema de archivos virtual, pseudo-sistema de archivos /proc, multiproceso, IPC, ramdisk, ptrace, memoria compartida, multitarea y otras características típicas.
Ext2 se utiliza como sistema de archivos. El cargador de arranque es compatible con BIOS y EFI. La pila de red permite API de socket de estilo BSD y admite interfaces de red, incluido el loopback.
Para ToaruOS, se han portado programas como Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo emulator, Bochs, etc.
Entre las aplicaciones nativas destaca el editor de código Bim similar a Vi, que se ha utilizado durante los últimos años para el desarrollo de aplicaciones específicas de ToaruOS como un administrador de archivos, un emulador de terminal, un panel gráfico con soporte de widgets, un lote administrador, así como bibliotecas para soporte de imágenes (PNG, JPEG) y fuentes TrueType.
El proyecto también está desarrollando su propio lenguaje de programación dinámica Kuroko, diseñado para reemplazar a Python en el desarrollo de utilidades y aplicaciones personalizadas para el sistema.
El lenguaje es similar en sintaxis a Python (posicionado como un dialecto de Python abreviado con definiciones de variables explícitas) y tiene una implementación muy compacta. Se admite la compilación e interpretación de códigos de bytes. El intérprete de código de bytes proporciona un recolector de basura, admite subprocesos múltiples sin usar un bloqueo global.
El compilador y el intérprete se pueden ensamblar en forma de una pequeña biblioteca compartida (~ 500 KB), que se puede integrar con otros programas y ampliar a través de la API de C. Además de ToaruOS, el idioma se puede utilizar en Linux, macOS, Windows y se puede ejecutar en navegadores compatibles con WebAssembly.
¿Que hay de nuevo en ToaruOS 2.0?
En esta nueva versión del sistema se menciona que el núcleo de Misaka agrega funcionalidad para permitir utilidades personalizadas top, strace, dbg, ping y cpuwidget.
Además se menciona que las capacidades de la biblioteca de gráficos se han ampliado , incluida la adición de transformaciones afines y que el marco de ventanas se ha mejorado.
También se destaca que se agregó el rasterizador de texto con soporte TrueType, se agregó una biblioteca para formatear texto con marcado, el cargador de arranque BIOS fue mejorado con soporte mejorado para configuraciones de hardware y el cargador de arranque EFI fue reescrito.
De los demás cambios que se destacan:
- Se agregó soporte para editar la línea de comandos del kernel en ambos cargadores de arranque.
- El diseño del panel se ha modernizado.
- Se agregó soporte para bibliotecas cargables, diseños dinámicos y nuevas ventanas emergentes en widgets.
- El visor se ha reescrito con nuevas paletas agregadas.
Se agregó una nueva implementación de calculadora.
Se agregó soporte para zonas horarias a la biblioteca estándar. - Controlador agregado para el chipset Ensoniq ES1371 emulado en VMware.
- Se espera que la próxima versión importante 2.1 sea compatible con dispositivos AHCI, xHCI y USB HID.
- En la rama 2.2, se planea implementar soporte para la arquitectura AArch64.
Finalmente si estás interesado en conocer más al respecto puedes consultar los detalles en el siguiente enlace.