Release van ToaruOS 1.14 besturingssysteem en Kuroko 1.1 programmeertaal

De release van het ToaruOS 1.14-project is beschikbaar, waarin een Unix-achtig besturingssysteem wordt ontwikkeld dat helemaal opnieuw is geschreven met een eigen kernel, bootloader, standaard C-bibliotheek, pakketbeheerder, gebruikersruimtecomponenten en een grafische interface met een samengestelde vensterbeheerder. In het huidige ontwikkelingsstadium zijn de mogelijkheden van het systeem voldoende om Python 3 en GCC te draaien. De projectcode is geschreven in C en gedistribueerd onder de BSD-licentie. Er is een live-image van 14 MB groot voorbereid om te downloaden, die kan worden getest in QEMU, VMware of VirtualBox.

Release van ToaruOS 1.14 besturingssysteem en Kuroko 1.1 programmeertaal

Het project startte in 2010 aan de Universiteit van Illinois en ontwikkelde zich aanvankelijk als onderzoekswerk op het gebied van het creëren van nieuwe samengestelde grafische interfaces. Sinds 2012 is de ontwikkeling getransformeerd in het ToaruOS-besturingssysteem, dat aanvankelijk werd ontwikkeld als een studentenproject en daarna uitgroeide tot een weekendhobby, opgepikt door de gemeenschap die zich rond het project vormde. In zijn huidige vorm is het systeem uitgerust met een samengestelde vensterbeheerder en ondersteunt het dynamisch gekoppelde uitvoerbare bestanden in ELF-formaat, multitasking, grafische afbeeldingen en netwerkstacks.

Het pakket bevat een port van de programmeertaal Python 3.6, die wordt gebruikt bij de ontwikkeling van enkele ToaruOS-specifieke grafische applicaties, zoals een pakketbeheerder, grafische editor, PDF-viewer, rekenmachine en eenvoudige spelletjes. Programma's van derden die naar ToaruOS zijn geport, zijn onder meer Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo-emulator, Bochs, enz.

ToaruOS is gebaseerd op een kernel die een hybride modulaire architectuur gebruikt die een monolithisch raamwerk en tools combineert voor het gebruik van laadbare modules, die het merendeel van de beschikbare apparaatstuurprogramma's vormen, zoals schijfstuurprogramma's (PATA en ATAPI), EXT2- en ISO9660-bestandssystemen, framebuffer , toetsenborden, muizen, netwerkkaarten (AMD PCnet FAST, Realtek RTL8139 en Intel PRO/1000), geluidschips (Intel AC'97), evenals VirtualBox add-ons voor gastsystemen.

De door de kernel geleverde primitieven omvatten Unix-threads, TTY, virtueel bestandssysteem, multithreading, IPC, gedeeld geheugen, multitasking en andere standaardfuncties. ext2 wordt gebruikt als bestandssysteem. Voor interactie met de kernel is een pseudo-FS /proc-implementatie beschikbaar, gemaakt naar analogie met Linux.

Plannen voor 2021 omvatten werkzaamheden aan de 64-bit x86-64-architectuur (voorlopig worden er alleen assemblages gegenereerd voor 32-bit x86-systemen) en ondersteuning voor multiprocessorsystemen (SMP). Andere doelstellingen zijn onder meer het verbeteren van de compatibiliteit met POSIX-specificaties op het gebied van signaalverwerking en synchronisatiemethoden, het brengen van de standaard C-bibliotheek naar het Newlib-niveau en het implementeren van een eigen C-taalcompiler en ontwikkelingstools.

Het project ontwikkelt ook zijn eigen dynamische programmeertaal, Kuroko, ontworpen om Python te vervangen bij het ontwikkelen van hulpprogramma's en aangepaste toepassingen voor het systeem. De taal ondersteunt bytecode-compilatie en -interpretatie, de syntaxis lijkt op Python (het is gepositioneerd als een verkort dialect van Python met expliciete definitie van variabelen) en heeft een zeer compacte implementatie. De bytecode-interpreter biedt een garbage collector en ondersteunt multithreading zonder gebruik te maken van globale vergrendeling. De compiler en tolk kunnen worden gecompileerd in de vorm van een kleine gedeelde bibliotheek (~500 KB), geïntegreerd met andere programma's en uitbreidbaar via de C API. Naast ToaruOS kan de taal worden gebruikt op Linux, macOS, Windows en worden uitgevoerd in browsers die WebAssembly ondersteunen.

De nieuwe release van ToaruOS richtte zich op de ontwikkeling van de standaard C-bibliotheek en de programmeertaal Kuroko. Wiskundige functies die nodig zijn voor de juiste berekening van verlichtingsparameters in het Quake-spel zijn bijvoorbeeld toegevoegd aan libc. De mogelijkheid om VirtualBox op te starten in de EFI-modus is verbeterd. De grootte van de ISO-image is verkleind door gebruik te maken van compressie van de RAM-schijfimage.

De nieuwe release van de Kuroko 1.1-taal voegt ondersteuning toe voor async en await, implementeert multithreading, verbetert de compatibiliteit met Python 3, ondersteunt meerdere waardetoewijzingen, breidt de tools uit voor het schrijven van handlers in de C-taal, voegt ondersteuning toe voor type-annotaties voor functies, voegt de trefwoorden “yield” en “yield from”, de modules os, dis, fileio en time zijn geïntegreerd, nieuwe methoden zijn geïmplementeerd in str, list, dict en bytes, ondersteuning voor precompilatie in bytecode is toegevoegd, de licentie is veranderd in MIT (voorheen was er een combinatie van MIT en ISC).

Bron: opennet.ru

Voeg een reactie