28. travnja i 5. svibnja održani su izdanja 2.3 i 2.3.1 Unix-sličnog operativnog sustava ToaruOS, koji je napisan od nule i isporučuje se sa svojim kernelom, bootloaderom, standardnom C knjižnicom, paketnim menadžerom, komponentama prostorom korisnika te grafičkim sučeljem s kompozitnim upraviteljem prozora.
Izvorno se projekt razvijao na Sveučilištu u Illinois-u kao istraživački rad u području stvaranja novih kompozitnih grafičkih sučelja, ali je potom transformiran u zaseban operativni sustav. Kod projekta napisan je u jeziku C i distribuira se pod BSD licencom. Pripremljena je live slika (2.3.1), veličine 7.4 MB, koja se može testirati u QEMU, VMware-u ili VirtualBox-u.
Osnova ToaruOS-a je kernel, koji koristi hibridnu modularnu arhitekturu, kombinirajući monolitnu osnovu i sredstva za korištenje učitavanih modula, u obliku kojih su većina postojećih upravljačkih programa, kao što su upravljački programi za diskove (PATA i ATAPI), FS Ext2 i ISO9660, framebuffer, tipkovnice, miševi, mrežne kartice (AMD PCnet FAST, Realtek RTL8139 i Intel PRO/1000), zvučni čipovi (Intel AC’97), kao i dodaci za VirtualBox za gostujuće sustave. Kernel podržava Unix procese, TTY, virtualni FS, pseudo-FS /proc, višedretvenost, IPC, ramdisk, ptrace, zajedničku memoriju, višezadaćnost i druge standardne mogućnosti.
Sistem dolazi s kompozitnim upraviteljem prozora, podržava dinamički povezane izvršne datoteke u ELF formatu, višezadaćnost, grafički stog, može izvršavati Python 3 i GCC. Kao datotečni sustav koristi se ext2. Bootloader podržava BIOS i EFI. Mrežni stog omogućuje korištenje BSD-sličnog API-ja soketa i podržava mrežne sučelje, uključujući loopback.
Od vlastitih aplikacija ističe se kodni editor sličan Vi-u, Bim, koji se koristi posljednjih nekoliko godina za razvoj specifičnih ToaruOS aplikacija, kao što su upravitelj datotekama, emulator terminala, grafička ploča s podrškom za widgete, paketni menadžer, kao i knjižnice za podršku slikama (PNG, JPEG) i TrueType fontovima. Za ToaruOS su portirane takve programe kao što su Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, emulator Super Nintendo, Bochs i dr.
Projekt također razvija vlastiti dinamički programski jezik Kuroko, dizajniran kao zamjena za Python prilikom razvoja alata i korisničkih aplikacija za sustav. Jezik po sintaksi podsjeća na Python (pozicionira se kao skraćeni dijalekt Pythona s jasnim definicijama varijabli) i razlikuje se vrlo kompaktom implementacijom. Podržava se kompajliranje i interpretacija bajtkoda. Interpretator bajtkoda pruža sakupljač smeća, podržava višedretvenost bez korištenja globalne blokade. Kompajler i interpretator mogu se sastaviti kao mala dijeljena biblioteka (~500KB), koja se može integrirati s drugim programima i proširiti putem C API-a. Osim ToaruOS, jezik se može koristiti na Linuxu, macOS-u, Windows-u i pokretati u preglednicima koji podržavaju WebAssembly.
- U emulator terminala dodana je podrška za kartice, između kojih se može prebacivati slijedom Alt-broj. Implementirana je emulacija podebljanog fonta putem dvostrukog preklapanja glifova. Dodani su podizbornici „Stanje terminala“ za uključivanje prikaza stanja raznih režima i „Pošalji signal“ za slanje signala pozadinskim procesima.
- Implementiran je preglednik sistemskih priručnika koji podržava man-stranice u roff formatu.
- U kontekstni izbornik dodan je podizbornik za upravljanje mozaikom prozora.
- U kernelu su implementirani novi sistemski pozivi, među kojima su pread/pwrite, sigsuspend, sigqueue, lchown, pipe2, dup3, getrusage i fcntl. Dodana je podrška za oznake FD_CLOEXEC i FD_CLOFORK. Implementirana je podrška za randomizaciju adrese učitavanja kernela. ABI sistemskih poziva prebačeno je na korištenje instrukcija syscall/sysret.
- Značajno su proširene mogućnosti virtualne konzole (TTY), osigurana je emulacija tekstualnog režima VGA na osnovi framebuffera.
- U verziji za arhitekturu Aarch64 implementirana je mogućnost pokretanja u virtualnim strojevima temeljenim na QEMU.
- U mrežni stek dodana je podrška za istovremeni rad s više ICMP soketa.
- U standardnu biblioteku libc dodane su funkcije getdelim, getline, scandir, telldir, rewinddir, seekdir, ftruncate, fchmod, fchown, popen, pclose, sig2str, str2sig.
- Dodane su nove standardne utilitarne komande rmdir, uniq, cmp, zcat, realpath, id, nohup, cksum. Dodane su nove opcije u ls, grep i fgrep. Prepisane su utilitarne komande ps, top, pstree, killall i pidof, koje su prevedene na novu biblioteku libtoaru_procfs, koja unificira rad sa pseudo-FS /proc. Proširen je komandni interpreter esh.
- Dodana je utilitarna komanda check-image za provjeru sposobnosti učitavanja slike od grafičke biblioteke i ispis veličine slike.
- Programski jezik Kuroko ažuriran je na verziju 1.5rc2.
- Do verzije 3.2 ažuriran je uređivač teksta Bim (github.com), dizajniran s obzirom na Vim. U novoj verziji poboljšana je sintaktička boja, proširena je podrška za skripte na jeziku Kuroko i dodan je novi sustav automatskog završavanja unosa.
Izvor: linux.org.ru
