ToaruOS 1.14 on nyt saatavilla. Se kehittää tyhjästä kirjoitetun Unix-tyyppisen käyttöjärjestelmän, jossa on oma ydin, käynnistyslataaja, standardi C-kirjasto, pakettienhallinta, käyttäjätilan komponentit ja graafinen käyttöliittymä compositing-ikkunanhallinnan kanssa. Tässä kehitysvaiheessa järjestelmän ominaisuudet riittävät Python 3:n ja GCC:n suorittamiseen. Projektikoodi on kirjoitettu C-kielellä ja jaettu BSD-lisenssillä. Ladattavissa on 14 Mt:n live-levykuva, jota voi testata QEMU:ssa, VMwaressa tai VirtualBoxissa.

Projekti alkoi vuonna 2010 Illinoisin yliopistossa ja kehittyi alun perin tutkimusprojektina uusien yhdistettyjen graafisten käyttöliittymien luomiseksi. Vuodesta 2012 lähtien kehitys on kehittynyt ToaruOS-käyttöjärjestelmäksi, jota kehitettiin aluksi opiskelijaprojektina ja myöhemmin viikonloppuharrastuksena, ja projektin ympärille muodostunut yhteisö on omaksunut sen. Nykymuodossaan järjestelmä sisältää yhdistetyn ikkunanhallinnan, tukee dynaamisesti linkitettyjä ELF-suoritettavia tiedostoja, moniajoa sekä grafiikka- ja verkkoympäristöjä.
Jakelu sisältää Python 3.6 -ohjelmointikielen porttauksen, jota käytettiin useiden ToaruOS-kohtaisten graafisten sovellusten, kuten paketinhallintaohjelman, grafiikkaeditorin, PDF-katseluohjelman, laskimen ja yksinkertaisten pelien, kehittämiseen. ToaruOS:lle portattuja kolmannen osapuolen ohjelmia ovat mm. Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo -emulaattori ja Bochs.
ToaruOS perustuu ytimeen, joka käyttää hybridimodulaarista arkkitehtuuria yhdistäen monoliittisen pohjan ja keinot ladattavien moduulien käyttöön. Nämä moduulit on toteutettu useimmille saatavilla oleville laiteajureille, kuten levyajureille (PATA ja ATAPI), EXT2- ja ISO9660-tiedostojärjestelmille, framebufferille, näppäimistölle, hiirelle, verkkokorteille (AMD PCnet FAST, Realtek RTL8139 ja Intel PRO/1000), äänipiireille (Intel AC'97) sekä VirtualBox-lisäyksille vierasjärjestelmille.
Ytimen perusominaisuuksiin kuuluvat Unix-säikeet, tekstityöpöydät (TTY), virtuaalitiedostojärjestelmät, monisäikeistys, IPC, jaettu muisti, moniajo ja muita tyypillisiä ominaisuuksia. Käytössä on ext2-tiedostojärjestelmä. Ytimen kanssa vuorovaikutusta varten on käytössä pseudo-tiedostojärjestelmätoteutus, /proc, joka on samanlainen kuin Linux.
Vuoden 2021 suunnitelmiin kuuluu tuki 64-bittiselle x86-64-arkkitehtuurille (tällä hetkellä koontiversiot ovat saatavilla vain 32-bittisille x86-järjestelmille) ja tuki moniajojärjestelmille (SMP). Muita tavoitteita ovat POSIX-spesifikaatioiden yhteensopivuuden parantaminen signaalinkäsittelyn ja synkronointimenetelmien osalta, standardin mukaisen C-kirjaston nostaminen Newlibin tasolle sekä mukautetun C-kääntäjän ja kehitystyökalujen toteuttaminen.
Projekti kehittää myös omaa dynaamista ohjelmointikieltä, Kurokoa, jonka tarkoituksena on korvata Python järjestelmän apuohjelmia ja käyttäjäsovelluksia kehitettäessä. Kieli tukee tavukoodin kääntämistä ja tulkintaa, on syntaksilta samanlainen kuin Python (se on positionoitu lyhennetyksi Python-murteeksi, jossa on eksplisiittiset muuttujamääritelmät), ja sen toteutus on erittäin kompakti. Tavukooditulkki tarjoaa roskienkerääjän ja tukee monisäikeisyyttä ilman globaalia lukkoa. Kääntäjä ja tulkki voidaan kääntää pieneksi jaetuksi kirjastoksi (~500 kt), integroida muihin ohjelmiin ja laajentaa C-rajapinnan kautta. ToaruOS:n lisäksi kieltä voidaan käyttää Linux, macOS, Windows ja toimivat selaimissa, jotka tukevat WebAssemblyä.
Uusi ToaruOS-julkaisu keskittyi parantamaan C-standardikirjastoa ja Kuroko-ohjelmointikieltä. Esimerkiksi libc sisältää nyt matemaattisia funktioita, joita tarvitaan valaistusparametrien laskemiseen oikein Quakessa. EFI-käynnistystä VirtualBoxissa on parannettu. ISO-kuvan kokoa on pienennetty käyttämällä RAM-levykuvan pakkausta.
Kuroko-kielen versio 1.1 lisää tuen async- ja await-kommenteille, toteuttaa monisäikeisyyden, parantaa yhteensopivuutta Python 3:n kanssa, toteuttaa tuen useiden arvojen osoituksiin, laajentaa käsittelijöiden kirjoitustyökaluja C-kielellä, lisää tuen funktioiden tyyppimerkinnöille, lisää avainsanat "yield" ja "yield from", integroi os-, dis-, fileio- ja time-moduulit, toteuttaa uusia metodeja str-, list-, dict- ja bytes-kielillä, lisää tuen bytecode-muotoon esikääntämiselle ja muuttaa lisenssin MIT:ksi (aiemmin se oli MIT:n ja ISC:n yhdistelmä).
Lähde: opennet.ru
