Lanzamiento del sistema operativo ToaruOS 1.14 y lenguaje de programación Kuroko 1.1

Está disponible el lanzamiento del proyecto ToaruOS 1.14, que desarrolla un sistema operativo tipo Unix escrito desde cero 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. En la etapa actual de desarrollo, las capacidades del sistema son suficientes para ejecutar Python 3 y GCC. El código del proyecto está escrito en C y distribuido bajo la licencia BSD. Se ha preparado para descargar una imagen en vivo de 14 MB de tamaño, que se puede probar en QEMU, VMware o VirtualBox.

Lanzamiento del sistema operativo ToaruOS 1.14 y lenguaje de programación Kuroko 1.1

El proyecto comenzó 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 en el sistema operativo ToaruOS, que se desarrolló inicialmente como un proyecto de estudiantes y luego se convirtió en un pasatiempo de fin de semana, adoptado por la comunidad que se formó en torno al proyecto. En su forma actual, el sistema está equipado con un administrador de ventanas compuesto, admite archivos ejecutables vinculados dinámicamente en formato ELF, multitarea, gráficos y pilas de red.

El paquete incluye una adaptación del lenguaje de programación Python 3.6, que se utiliza en el desarrollo de algunas aplicaciones gráficas específicas de ToaruOS, como un administrador de paquetes, un editor gráfico, un visor de PDF, una calculadora y juegos simples. Los programas de terceros portados a ToaruOS incluyen Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, emulador de Super Nintendo, Bochs, etc.

ToaruOS se basa en un kernel que utiliza una arquitectura modular híbrida que combina un marco monolítico y herramientas para usar módulos cargables, que forman la mayoría de los controladores de dispositivos disponibles, como controladores de disco (PATA y ATAPI), sistemas de archivos EXT2 e ISO9660, framebuffer. , teclados, ratones, tarjetas de red (AMD PCnet FAST, Realtek RTL8139 e Intel PRO/1000), chips de sonido (Intel AC'97), así como complementos de VirtualBox para sistemas invitados.

Las primitivas proporcionadas por el kernel incluyen subprocesos Unix, TTY, sistema de archivos virtual, subprocesos múltiples, IPC, memoria compartida, multitarea y otras características estándar. ext2 se utiliza como sistema de archivos. Para interactuar con el kernel, se proporciona una implementación pseudo-FS /proc, creada por analogía con Linux.

Los planes para 2021 incluyen trabajar en la arquitectura x64-86 de 64 bits (por ahora, los ensamblajes se generan solo para sistemas x32 de 86 bits) y soporte para sistemas multiprocesador (SMP). Otros objetivos incluyen mejorar la compatibilidad con las especificaciones POSIX en el campo de los métodos de sincronización y procesamiento de señales, llevar la biblioteca C estándar al nivel Newlib e implementar su propio compilador de lenguaje C y herramientas de desarrollo.

El proyecto también está desarrollando su propio lenguaje de programación dinámico, Kuroko, diseñado para reemplazar a Python en el desarrollo de utilidades y aplicaciones personalizadas para el sistema. El lenguaje admite la compilación e interpretación de códigos de bytes, su sintaxis se parece a Python (está posicionado como un dialecto abreviado de Python con una definición explícita de variables) y tiene una implementación muy compacta. El intérprete de código de bytes proporciona un recolector de basura y admite subprocesos múltiples sin utilizar bloqueo global. El compilador y el intérprete se pueden compilar en forma de una pequeña biblioteca compartida (~500 KB), integrarse con otros programas y ampliarse a través de la API de C. Además de ToaruOS, el lenguaje se puede utilizar en Linux, macOS, Windows y ejecutarse en navegadores compatibles con WebAssembly.

La nueva versión de ToaruOS se centró en el desarrollo de la biblioteca C estándar y el lenguaje de programación Kuroko. Por ejemplo, se han agregado a libc las funciones matemáticas necesarias para el cálculo correcto de los parámetros de iluminación en el juego Quake. Se ha mejorado la capacidad de iniciar VirtualBox en modo EFI. El tamaño de la imagen ISO se ha reducido mediante la compresión de la imagen del disco RAM.

La nueva versión del lenguaje Kuroko 1.1 agrega soporte para async y await, implementa subprocesos múltiples, mejora la compatibilidad con Python 3, admite múltiples asignaciones de valores, amplía las herramientas para escribir controladores en lenguaje C, agrega soporte para anotaciones de tipo para funciones, agrega el palabras clave “rendimiento” y “rendimiento desde”, se han integrado los módulos os, dis, fileio y time, se han implementado nuevos métodos en str, list, dict y bytes, se ha agregado soporte para la precompilación en código de bytes, se ha actualizado la licencia. se ha cambiado a MIT (anteriormente había una combinación de MIT e ISC).

Fuente: opennet.ru

Añadir un comentario