28. aprill ja 5. mai toimusid väljaanded 2.3 ja 2.3.1 Unix-laadse operatsioonisüsteemi ToaruOS, mis on kirjutatud nullist ja sisaldab oma kerneli, alglaadijat, standardset C-teeki, paketihaldurit, kasutajaruumi komponente ja komposiitakenhalduriga graafilist liidest.
Algul arenes projekt Illinoisi ülikoolis uurimistööna uute komposiitgraafiliste liideste loomise vallas, kuid seejärel muutus eraldi operatsioonisüsteemiks. Projekti kood on kirjutatud C keeles ja levitatakse on BSD litsentsi all. Allalaadimiseks on ette valmistatud live-pilt (2.3.1), suurusega 7.4 MB, mida saab testida QEMU, VMware või VirtualBoxis.
ToaruOS-i põhialuseks on kernel, mis kasutab hübriidset moodulite arhitektuuri, ühendades monoliitse aluse ja vahendid laaditavate moodulite kasutamiseks, milles on vormistatud enamik olemasolevaid seadme draivereid, nagu ketta draiverid (PATA ja ATAPI), FS Ext2 ja ISO9660, framebuffer, klaviatuurid, hiired, võrgukaardid (AMD PCnet FAST, Realtek RTL8139 ja Intel PRO/1000), helichippide (Intel AC’97) ja VirtualBoxi lisade jaoks külgnevatele süsteemidele. Kernel toetab Unix-vooge, TTY-d, virtuaalset FS-i, pseudopäevikuga /proc, mitme lõime toimetamist, IPC-d, ramdisk-i, ptrace-i, jagatud mälu, mitme ülesande täitmist ja muid tüüpilisi funktsioone.
Süsteem on varustatud komposiitakenhalduriga, toetab dünaamiliselt seotud ELF-failivormingus täitmisfaile, mitme ülesande täitmist, graafilist kihti, suudab käivitada Python 3 ja GCC. Failisüsteemina on kasutusel ext2. Alglaadija toetab BIOS-i ja EFI-d. Võrgukiht võimaldab kasutada BSD-süsteemide sokliks API-d ja toetab võrguliideseid, sealhulgas loopback.
Oma rakendustest on välja toodud Vi-le sarnane koodi redaktor Bim, mida on viimased paar aastat kasutatud ToaruOS-i spetsiifiliste rakenduste, näiteks failihalduri, terminali emulaatori, graafilise paneeli (kus on widgetide tugi), paketihalduri ja ka piltide (PNG, JPEG) ja TrueType-fontide toetusraamatute arendamiseks. ToaruOS-ile on porteeritud selliseid programme nagu Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, Super Nintendo emulator, Bochs jne.
Projekt arendab ka oma dünaamilist programmeerimiskeelt Kuroko, mis on mõeldud Python'i asendamiseks utiliitide ja kasutajarakenduste arendamisel süsteemine. Süntaksilt meenutab ta Python'it (positsioneeritud kui lühendatud dialekt Python'ist, millel on selge muutujate määramine) ning erineb väga kompaktse teostuse poolest. Toetatakse byte-koodi kompileerimist ja tõlgendamist. Byte-koodi tõlgendaja pakub prügikoristajat, toetab mitme lõime töötlemist ilma globaalse lukustamiseta. Kompilaator ja tõlgendaja saavad olla kogutud väikese jagatava teegina (~500KB), mis on integreeritav teiste programmidega ja laiendatav C API kaudu. Peale ToaruOS'i saab keelt kasutada Linux'is, macOS'is, Windows'is ning see saab toimida brauserites, mis toetavad WebAssembly't.
Uues uus väljalase:
- Terminali emulaatorisse on lisatud vahekaartide tugi, mille vahel saab vahetada järjestusega Alt-number. On teostatud rasvase fondi simuleerimine topelt-gliifide ülekatte kaudu. Lisatud alammenüü 'Terminali olek', et näidata erinevate režiimide olekuid ja 'Saada signaal', et saata signaale taustprotsessidele.
- On realiseeritud süsteemijuhendite vaatamise vahend, mis toetab man-lehti roff formaadis.
- Kontekstimenüüsse on lisatud alammenüü akende mosaiikkompositsiooni haldamiseks.
- Tuuma on realiseeritud uued süsteemi kutsete, sealhulgas pread/pwrite, sigsuspend, sigqueue, lchown, pipe2, dup3, getrusage ja fcntl. Lisatud tugi FD_CLOEXEC ja FD_CLOFORK lipu jaoks. On teostatud tuuma laadimisaadressi randomiseerimise tugi. Süsteemi kutsete ABI on muudetud syscall/sysret käskude kasutamisele.
- Virtuaalse konsooli (TTY) võimalusi on oluliselt laiendatud, pakkudes tekstirežiimi VGA simuleerimist raamifaili põhjal.
- Aarch64 arhitektuuri versioonis on realiseeritud käivitamise võimalus QEMU põhiste virtuaalmasinate sees.
- Võrgu stacki on lisatud samal ajal töötamise tugi mitme ICMP socketiga.
- Standardbibliotek libc on lisatud funktsioonid getdelim, getline, scandir, telldir, rewinddir, seekdir, ftruncate, fchmod, fchown, popen, pclose, sig2str, str2sig.
- Uued standardse utiliidid rmdir, uniq, cmp, zcat, realpath, id, nohup, cksum on lisatud. Lisatud uued valikud ls, grep ja fgrep. Uuendatud utiliidid ps, top, pstree, killall ja pidof, mis on muudetud uue teegi libtoaru_procfs kasutamiseks, ühtlustades töötamise pseudofailisüsteemiga /proc. Kommando tõlgendaja esh on laienenud.
- Lisatud on utiliit check-image, et kontrollida, kas pildifaili saab graafikabiblioteek üles laadida, ja kuvada pildi suuruse.
- Programmeerimiskeel Kuroko on uuendatud versioonile 1.5rc2.
- Tekstiredaktor on uuendatud versioonile 3.2 Bim (github.com), mis on loodud Vim'i põhjal. Uues versioonis on parendatud süntaksi esitlemist, laiendatud Kuroko skriptide toetamist ning lisatud uus automaatse täiendamise süsteem.
Allikas: linux.org.ru
