Release av operativsystemet ToaruOS 1.14 och programmeringsspråket Kuroko 1.1

Utgivningen av ToaruOS 1.14-projektet är tillgänglig, som utvecklar ett Unix-liknande operativsystem skrivet från grunden med sin egen kärna, starthanterare, standard C-bibliotek, pakethanterare, användarutrymmeskomponenter och ett grafiskt gränssnitt med en sammansatt fönsterhanterare. I det nuvarande utvecklingsstadiet är systemets kapacitet tillräckliga för att köra Python 3 och GCC. Projektkoden är skriven i C och distribueras under BSD-licensen. En livebild på 14 MB i storlek har förberetts för nedladdning, som kan testas i QEMU, VMware eller VirtualBox.

Release av operativsystemet ToaruOS 1.14 och programmeringsspråket Kuroko 1.1

Projektet startade 2010 vid University of Illinois och utvecklades initialt som forskningsarbete inom området för att skapa nya sammansatta grafiska gränssnitt. Sedan 2012 har utvecklingen förvandlats till operativsystemet ToaruOS, som ursprungligen utvecklades som ett studentprojekt, och sedan växte till en helghobby, som plockades upp av communityn som bildades kring projektet. I sin nuvarande form är systemet utrustat med en sammansatt fönsterhanterare, stöder dynamiskt länkade körbara filer i ELF-format, multitasking, grafik och nätverksstackar.

Paketet innehåller en port av programmeringsspråket Python 3.6, som används i utvecklingen av vissa ToaruOS-specifika grafiska applikationer, såsom en pakethanterare, grafisk redigerare, PDF-visare, kalkylator och enkla spel. Tredjepartsprogram som porteras till ToaruOS inkluderar Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo-emulator, Bochs, etc.

ToaruOS är baserat på en kärna som använder en hybrid modulär arkitektur som kombinerar ett monolitiskt ramverk och verktyg för att använda laddningsbara moduler, som utgör majoriteten av tillgängliga enhetsdrivrutiner, såsom diskdrivrutiner (PATA och ATAPI), EXT2 och ISO9660 filsystem, framebuffer , tangentbord, möss , nätverkskort (AMD PCnet FAST, Realtek RTL8139 och Intel PRO/1000), ljudchips (Intel AC'97), samt VirtualBox-tillägg för gästsystem.

Primitiverna som tillhandahålls av kärnan inkluderar Unix-trådar, TTY, virtuellt filsystem, multithreading, IPC, delat minne, multitasking och andra standardfunktioner. ext2 används som filsystem. För att interagera med kärnan tillhandahålls en pseudo-FS /proc-implementering, skapad i analogi med Linux.

Planerna för 2021 inkluderar arbete med 64-bitars x86-64-arkitekturen (för närvarande genereras sammansättningar endast för 32-bitars x86-system) och stöd för multiprocessorsystem (SMP). Andra mål inkluderar att förbättra kompatibiliteten med POSIX-specifikationer inom området för signalbehandling och synkroniseringsmetoder, att föra standard C-biblioteket till Newlib-nivån och implementera sina egna C-språkkompilatorer och utvecklingsverktyg.

Projektet utvecklar också sitt eget dynamiska programmeringsspråk, Kuroko, designat för att ersätta Python vid utveckling av verktyg och anpassade applikationer för systemet. Språket stöder kompilering och tolkning av bytekod, dess syntax liknar Python (det är placerat som en förkortad dialekt av Python med explicit definition av variabler) och har en mycket kompakt implementering. Bytekodtolkaren tillhandahåller en skräpsamlare och stöder multithreading utan att använda global låsning. Kompilatorn och tolken kan kompileras i form av ett litet delat bibliotek (~500KB), integrerat med andra program och utbyggbart via C API. Förutom ToaruOS kan språket användas på Linux, macOS, Windows och köras i webbläsare som stöder WebAssembly.

Den nya utgåvan av ToaruOS fokuserade på utvecklingen av standard C-biblioteket och programmeringsspråket Kuroko. Till exempel har matematiska funktioner som är nödvändiga för korrekt beräkning av ljusparametrar i Quake-spelet lagts till i libc. Möjligheten att starta upp i VirtualBox i EFI-läge har förbättrats. Storleken på iso-bilden har reducerats genom att använda komprimering av ram-diskavbildningen.

Den nya versionen av Kuroko 1.1-språket lägger till stöd för async and await, implementerar multithreading, förbättrar kompatibiliteten med Python 3, stöder flera värdetilldelningar, utökar verktygen för skrivhanterare på C-språket, lägger till stöd för typkommentarer för funktioner, lägger till nyckelorden "yield" och "yield from", modulerna os, dis, fileio och time har integrerats, nya metoder har implementerats i str, list, dict och bytes, stöd för förkompilering till bytecode har lagts till, licensen har ändrats till MIT (tidigare fanns det en kombination av MIT och ISC).

Källa: opennet.ru

Lägg en kommentar