De versie 2.3 van het Unix-achtige besturingssysteem ToaruOS is uitgebracht, volledig geschreven vanaf de grond en geleverd met zijn eigen kernel, bootloader, standaard C-bibliotheek, package manager, gebruikersruimtecomponenten en een grafische interface met een compositing window manager. Het project is oorspronkelijk ontwikkeld aan de Universiteit van Illinois als een onderzoek naar de creatie van nieuwe compositing grafische interfaces, maar is later getransformeerd in een zelfstandig besturingssysteem. De code van het project is geschreven in de C-taal en wordt verspreid onder de BSD-licentie. Er is een live-image beschikbaar voor download, met een grootte van 7,4 MB, dat kan worden getest in QEMU, VMware of VirtualBox. 
De basis van ToaruOS is een kernel die gebruikmaakt van een hybride modulaire architectuur, die een monolithische basis combineert met de mogelijkheid om geladen modules te gebruiken, in de vorm waarvan de meeste bestaande stuurprogramma's zijn vormgegeven, zoals schijfstuurprogramma's (PATA en ATAPI), bestandssystemen EXT2 en ISO9660, framebuffer, toetsenborden, muizen, netwerkkaarten (AMD PCnet FAST, Realtek RTL8139 en Intel PRO/1000), geluidschips (Intel AC’97), evenals VirtualBox-add-ons voor gastsystemen. De kernel ondersteunt Unix-threads, TTY, virtueel bestandssysteem, pseudo-bestandssysteem /proc, multithreading, IPC, ramdisk, ptrace, gedeeld geheugen, multitasking en andere standaardfuncties.
Het systeem is uitgerust met een compositing window manager, ondersteunt dynamisch gelinkte uitvoerbare bestanden in ELF-formaat, multitasking, een grafische stack, kan Python 3 en GCC uitvoeren. Het bestandssysteem dat wordt gebruikt is ext2. De bootloader ondersteunt BIOS en EFI. De netwerkstack maakt gebruik van BSD-stijl socket-API en ondersteunt netwerkinterfaces, inclusief loopback.
Een opvallende applicatie is de Vi-achtige code-editor Bim, die de afgelopen jaren wordt gebruikt voor de ontwikkeling van ToaruOS-specifieke applicaties, zoals een bestandsbeheerder, terminalemulator, een grafisch paneel met widget-ondersteuning, een package manager, evenals bibliotheken ter ondersteuning van afbeeldingen (PNG, JPEG) en TrueType-lettertypen. Voor ToaruOS zijn programma's zoals Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo emulator, Bochs, enz. geporteerd.
Het project ontwikkelt ook een eigen dynamische programmeertaal Kuroko, bedoeld ter vervanging van Python voor de ontwikkeling van hulpprogramma's en gebruikersapplicaties voor het systeem. De syntaxis van de taal lijkt op die van Python (gepositioneerd als een verkorte dialect van Python met duidelijke variabeledefinities) en het onderscheidt zich door een zeer compacte implementatie. Compilatie en interpretatie van bytecode worden ondersteund. De bytecode-interpreter biedt een garbage collector, ondersteunt multithreading zonder het gebruik van een globale lock. De compiler en interpreter kunnen worden samengesteld in de vorm van een kleine gedeelde bibliotheek (~500KB), die kan worden geïntegreerd met andere programma's en kan worden uitgebreid via de C API. Naast ToaruOS kan de taal worden gebruikt op Linux, macOS, Windows en worden uitgevoerd in browsers die WebAssembly ondersteunen.
In de nieuwe release:
- De terminalemulator heeft ondersteuning voor tabbladen gekregen, waar tussen gewisseld kan worden met de combinatie Alt-cijfer. Er is emulatie van vette lettertypes geïmplementeerd door middel van dubbele glyph-overlays. Submenu's 'Terminal state' zijn toegevoegd om de status van verschillende modi weer te geven en 'Send signal' voor het verzenden van signalen naar achtergrondprocessen.
- Een systeemanwijsviewer is geïmplementeerd die man-pagina's in roff-formaat ondersteunt.
- Aan het contextmenu is een submenu toegevoegd voor het beheren van de mozaïeklay-out van vensters.
- In de kernel zijn nieuwe systeemoproepen geïmplementeerd, waaronder pread/pwrite, sigsuspend, sigqueue, lchown, pipe2, dup3, getrusage en fcntl. Ondersteuning voor de vlaggen FD_CLOEXEC en FD_CLOFORK is toegevoegd. Er is ondersteuning voor randomisatie van het laadadres van de kernel geïmplementeerd. De ABI van systeemoproepen is overgeschakeld naar het gebruik van syscall/sysret-instructies.
- De mogelijkheden van de virtuele console (TTY) zijn aanzienlijk uitgebreid, met emulatie van de tekstmodus VGA op basis van de framebuffer.
- In de versie voor de architectuur Aarch64 is de mogelijkheid geïmplementeerd om te starten in virtuele machines op basis van QEMU.
- De netwerkstack heeft ondersteuning gekregen voor het gelijktijdig werken met meerdere ICMP-sockets.
- Aan de standaardbibliotheek libc zijn functies toegevoegd zoals getdelim, getline, scandir, telldir, rewinddir, seekdir, ftruncate, fchmod, fchown, popen, pclose, sig2str, str2sig.
- Nieuwe standaardhulpprogramma's zijn toegevoegd: rmdir, uniq, cmp, zcat, realpath, id, nohup, cksum. Nieuwe opties zijn toegevoegd aan ls, grep en fgrep. De hulpprogramma's ps, top, pstree, killall en pidof zijn herzien, die zijn overgezet naar de nieuwe bibliotheek libtoaru_procfs, die de interactie met het pseudo-FS /proc uniform maakt. De commando-interpretator esh is uitgebreid.
- De utility check-image is toegevoegd om de mogelijkheid te controleren om een afbeelding te uploaden met de grafische bibliotheek en de grootte van de afbeelding weer te geven.
- De programmeertaal Kuroko is geüpdatet naar versie 1.5rc2.
- De teksteditor Bim is geüpdatet naar versie 3.2, ontwikkeld met het oog op Vim. In de nieuwe versie is de syntaxismarkering verbeterd, is de ondersteuning voor Kuroko-scripts uitgebreid en is er een nieuw autocompletesysteem toegevoegd.
Bron: opennet.ru
