28 april en 5 mei vonden plaats de releases 2.3 en 2.3.1 van het Unix-achtige besturingssysteem ToaruOS, gebouwd vanaf nul en geleverd met zijn eigen kernel, bootloader, standaard C-bibliotheek, pakketbeheerder, gebruikersruimtecomponenten en een grafische interface met een compositable window manager.
Het project is oorspronkelijk ontwikkeld aan de Universiteit van Illinois als een onderzoek naar de creatie van nieuwe composable grafische interfaces, maar transformeerde daarna in een apart besturingssysteem. De code van het project is geschreven in C en wordt verspreid onder de BSD-licentie. Voor download is er een live-image (2.3.1), met een grootte van 7,4 MB, die kan worden getest in QEMU, VMware of VirtualBox.
ToaruOS is gebaseerd op een kernel die een hybride modulaire architectuur gebruikt, die een monolithische basis combineert met middelen voor het gebruik van laadbaren modules, waarvan de meeste bestaande apparaatdrivers zijn vormgegeven, zoals schijfdrivers (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 typische functies.
Het systeem is voorzien van een compositable window manager, ondersteunt dynamisch gelinkte uitvoerbare bestanden in ELF-formaat, multitasking, grafische stack, kan Python 3 en GCC uitvoeren. Als bestandssysteem wordt ext2 gebruikt. De bootloader ondersteunt BIOS en EFI. De netwerkstack maakt gebruik van BSD-stijl socket-API's en ondersteunt netwerkinterfaces, inclusief loopback.
Van de eigen applicaties is er de Bim-code-editor, die lijkt op Vi en die de afgelopen jaren is gebruikt voor de ontwikkeling van ToaruOS-specifieke applicaties, zoals een bestandsbeheerder, terminalemulator, grafische panelen met widgetondersteuning, een pakketbeheerder, en 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, enzovoort geporteerd.
Het project ontwikkelt ook zijn eigen dynamische programmeertaal Kuroko, ontworpen als vervanging voor Python bij het ontwikkelen van hulpprogramma's en gebruikersapplicaties voor het systeem. De syntaxis lijkt op die van Python (gepositioneerd als een verkorte dialect van Python met expliciete variabele-definities) en onderscheidt zich door een zeer compacte implementatie. Ondersteunt compilatie en interpretatie van bytecode. De bytecode-interpreter biedt een garbage collector, ondersteunt multithreading zonder het gebruik van globale locks. De compiler en interpreter kunnen worden samengevoegd tot een kleine gedeelde bibliotheek (~500 KB), geĆÆntegreerd met andere programma's en uitbreidbaar via een C API. Behalve ToaruOS kan de taal worden gebruikt in Linux, macOS, Windows en draaien in browsers die WebAssembly ondersteunen.
- De terminalemulator heeft tabbladen toegevoegd, die kunnen worden gewisseld met de combinatie Alt-cijfer. Een emulatie van vetgedrukte lettertypen is gerealiseerd door dubbele glyph-overlay. Er zijn submenu's 'Terminal status' toegevoegd voor het weergeven van de status van verschillende modi en 'Verzend signaal' 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 systeemaanroepen geĆÆmplementeerd, waaronder pread/pwrite, sigsuspend, sigqueue, lchown, pipe2, dup3, getrusage en fcntl. Ondersteuning voor de vlaggen FD_CLOEXEC en FD_CLOFORK is toegevoegd. Ondersteuning voor randomisatie van de laadadressen van de kernel is gerealiseerd. De ABI van systeemaanroepen is overgezet op 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 het framebuffer.
- In de versie voor de Aarch64-architectuur is de mogelijkheid van draaien in virtuele machines op basis van QEMU gerealiseerd.
- De netwerkstack heeft ondersteuning gekregen voor het gelijktijdig werken met meerdere ICMP-sockets.
- De standaardbibliotheek libc heeft functies getdelim, getline, scandir, telldir, rewinddir, seekdir, ftruncate, fchmod, fchown, popen, pclose, sig2str, str2sig toegevoegd.
- 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 bijgewerkt naar versie 1.5rc2.
- De teksteditor is bijgewerkt naar versie 3.2 Bim (github.com), ontworpen met het oog op Vim. In de nieuwe versie is de syntaxis-highlight verbeterd, de ondersteuning voor Kuroko-scripts is uitgebreid en er is een nieuw systeem voor automatische invoeraanvulling toegevoegd.
Bron: linux.org.ru
