ToaruOS 1.14 je teraz k dispozícii. Vyvíja operačný systém podobný Unixu, napísaný od základov, s vlastným jadrom, bootloaderom, štandardnou knižnicou C, správcom balíkov, komponentmi používateľského priestoru a grafickým rozhraním s kompozitným správcom okien. V tejto fáze vývoja sú možnosti systému dostatočné na spustenie Pythonu 3 a GCC. Kód projektu je napísaný v jazyku C a distribuovaný pod licenciou BSD. Na stiahnutie je k dispozícii 14 MB živý obraz, ktorý je možné testovať v QEMU, VMware alebo VirtualBox.

Projekt sa začal v roku 2010 na University of Illinois a pôvodne sa vyvíjal ako výskumný projekt zameraný na vytváranie nových kompozitných grafických rozhraní. Od roku 2012 sa vývoj vyvinul do operačného systému ToaruOS, ktorý bol pôvodne vyvinutý ako študentský projekt a neskôr ako víkendový koníček, ktorý prijala komunita, ktorá sa okolo projektu vytvorila. V súčasnej podobe systém obsahuje kompozitného správcu okien, podporuje dynamicky prepojené spustiteľné súbory ELF, multitasking a grafické a sieťové balíky.
Distribúcia obsahuje port programovacieho jazyka Python 3.6, ktorý sa používal na vývoj niekoľkých grafických aplikácií špecifických pre ToaruOS, ako napríklad správca balíkov, grafický editor, prehliadač PDF, kalkulačka a jednoduché hry. Medzi programy tretích strán portované do ToaruOS patria Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, emulátor Super Nintendo, Bochs a ďalšie.
ToaruOS je založený na jadre, ktoré využíva hybridnú modulárnu architektúru kombinujúcu monolitický základ a prostriedky na používanie zavádzateľných modulov, ktoré sú implementované pre väčšinu dostupných ovládačov zariadení, ako sú ovládače diskov (PATA a ATAPI), súborové systémy EXT2 a ISO9660, framebuffer, klávesnica, myš, sieťové karty (AMD PCnet FAST, Realtek RTL8139 a Intel PRO/1000), zvukové čipy (Intel AC'97), ako aj doplnky VirtualBox pre hosťujúce systémy.
Medzi primitívy jadra patria unixové vlákna, TTY, virtuálne súborové systémy, multithreading, IPC, zdieľaná pamäť, multitasking a ďalšie typické funkcie. Používa sa súborový systém ext2. Pre interakciu s jadrom je k dispozícii implementácia pseudosúborového systému /proc, podobná Linux.
Plány na rok 2021 zahŕňajú podporu 64-bitovej architektúry x86-64 (v súčasnosti sú zostavenia dostupné iba pre 32-bitové systémy x86) a podporu pre viacprocesorové systémy (SMP). Medzi ďalšie ciele patrí zlepšenie kompatibility so špecifikáciami POSIX pre metódy spracovania signálov a synchronizácie, pozdvihnutie štandardnej knižnice C na úroveň Newlib a implementácia vlastného kompilátora C a vývojových nástrojov.
Projekt tiež vyvíja vlastný dynamický programovací jazyk Kuroko, ktorý má nahradiť Python pri vývoji nástrojov a používateľských aplikácií pre systém. Jazyk podporuje kompiláciu a interpretáciu bajtkódu, má podobnú syntax ako Python (je prezentovaný ako skrátený dialekt Pythonu s explicitnými definíciami premenných) a vyznačuje sa veľmi kompaktnou implementáciou. Interpret bajtkódu poskytuje garbage collector a podporuje multithreading bez použitia globálneho zámku. Kompilátor a interpret je možné skompilovať ako malú zdieľanú knižnicu (~500 KB), integrovať s inými programami a rozšíriť prostredníctvom rozhrania C API. Okrem ToaruOS je možné jazyk použiť aj v... Linux, macOS, Windows a spúšťať v prehliadačoch, ktoré podporujú WebAssembly.
Nová verzia ToaruOS sa zamerala na vylepšenie štandardnej knižnice C a programovacieho jazyka Kuroko. Napríklad libc teraz obsahuje matematické funkcie potrebné na správny výpočet parametrov osvetlenia v Quake. Vylepšené bolo bootovanie EFI vo VirtualBoxe. Veľkosť ISO obrazu bola zmenšená pomocou kompresie obrazu RAM disku.
Nová verzia jazyka Kuroko 1.1 pridáva podporu pre async a await, implementuje multithreading, zlepšuje kompatibilitu s Pythonom 3, implementuje podporu pre viacnásobné priradenia hodnôt, rozširuje nástroje na písanie obslužných programov v jazyku C, pridáva podporu pre anotácie typov pre funkcie, pridáva kľúčové slová „yield“ a „yield from“, integruje moduly os, dis, fileio a time, implementuje nové metódy v str, list, dict a bytes, pridáva podporu pre predkompiláciu do bytecode a mení licenciu na MIT (predtým to bola kombinácia MIT a ISC).
Zdroj: opennet.ru
