28 aprilie și 5 mai au avut loc lansările versiunilor 2.3 și 2.3.1 ale sistemului de operare Unix-like ToaruOS, scris de la zero și livrat cu propriul său kernel, bootloader, bibliotecă standard C, manager de pachete, componente de utilizator și interfață grafică cu un manager de feronerie compozit.
Inițial, proiectul a fost dezvoltat la Universitatea din Illinois ca un proiect de cercetare în domeniul creării de noi interfețe grafice compozite, dar a fost ulterior transformat într-un sistem de operare independent. Codul proiectului este scris în C și se răspândește sub licența BSD. A fost pregătit pentru descărcare o imagine live (2.3.1), de dimensiuni 7.4 MB, care poate fi testată în QEMU, VMware sau VirtualBox.
La baza ToaruOS se află un kernel care utilizează o arhitectură modulară hibridă, combinând o bază monolitică cu capabilități pentru utilizarea modulelor încărcabile, în care sunt formulate majoritatea driverelor de dispozitive existente, cum ar fi driverele de disc (PATA și ATAPI), FS Ext2 și ISO9660, framebuffer, tastaturi, maus, plăci de rețea (AMD PCnet FAST, Realtek RTL8139 și Intel PRO/1000), chip-uri audio (Intel AC’97), precum și extensii VirtualBox pentru sisteme gazdă. Kernelul suportă fire de execuție Unix, TTY, FS virtual, pseudo-FS /proc, multitasking, IPC, ramdisk, ptrace, memorie partajată, multitasking și alte funcționalități tipice.
Sistemul este dotat cu un manager de feronerie compozit, suportă fișiere executabile legate dinamic în format ELF, multitasking, stivă grafică, poate rula Python 3 și GCC. Sistemul de fișiere utilizat este ext2. Bootloaderul suportă BIOS și EFI. Stiva de rețea permite utilizarea API-ului de socket-uri în stil BSD și suportă interfețele de rețea, inclusiv loopback.
Dintre aplicațiile proprii, se remarcă editorul de cod similar cu Vi, Bim, care a fost utilizat în ultimii câțiva ani pentru dezvoltarea aplicațiilor specifice ToaruOS, cum ar fi managerul de fișiere, emulatorul de terminal, bara grafică cu suport pentru widget-uri, managerul de pachete, precum și biblioteci pentru suportul imaginilor (PNG, JPEG) și fonturi TrueType. Pentru ToaruOS au fost portate programe precum Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, emulatorul Super Nintendo, Bochs etc.
Proiectul dezvoltă de asemenea propriul limbaj de programare dinamic Kuroko, destinat la înlocuirea Python în dezvoltarea utilitarelor și aplicațiilor pentru utilizator în sistem. Limbajul, prin sintaxă, semănă cu Python (se poziționează ca un dialect scurtat al Python cu o definiție clară a variabilelor) și se distinge printr-o implementare foarte compactă. Suportă compilare și interpretare de bytecode. Interpretatorul bytecode oferă un colector de gunoi, susține multi-threading fără utilizarea unui blocaj global. Compilatorul și interpretatorul pot fi construite sub forma unei mici biblioteci partajate (~500KB), integrabilă cu alte programe și extensibilă prin API C. Pe lângă ToaruOS, limbajul poate fi utilizat în Linux, macOS, Windows și poate fi rulat în browsere cu suport pentru WebAssembly.
În în noul release:
- Emulatorul de terminal a adăugat suport pentru file, între care se poate comuta prin secvența Alt-cifră. A fost implementată o simulare a fonturilor cu grosime îngroșată prin suprapunerea dublă a glifelor. Au fost adăugate submeniuri 'Starea terminalului' pentru activarea vizualizării stării diferitelor moduri și 'Trimiterea semnalului' pentru trimiterea semnalelor proceselor de fundal.
- A fost implementat un vizualizator de manuale sistemice, care suportă paginile man în format roff.
- În meniul contextual a fost adăugat un submemu pentru gestionarea compunerii mozaice a ferestrelor.
- În kernel au fost implementate noi apeluri de sistem, printre care pread/pwrite, sigsuspend, sigqueue, lchown, pipe2, dup3, getrusage și fcntl. A fost adăugat suport pentru flag-urile FD_CLOEXEC și FD_CLOFORK. A fost implementat suport pentru randomizarea adresei de încărcare a kernel-ului. ABI-ul apelurilor de sistem a fost tradus pentru a utiliza instrucțiunile syscall/sysret.
- Funcționalitatea consolei virtuale (TTY) a fost semnificativ extinsă, asigurând emularea modului text VGA pe baza framebuffer-ului.
- În versiunea pentru arhitectura Aarch64 a fost implementată posibilitatea de a rula în mașini virtuale bazate pe QEMU.
- În stiva de rețea a fost adăugat suport pentru funcționarea simultană cu mai multe socket-uri ICMP.
- În biblioteca standard libc au fost adăugate funcțiile getdelim, getline, scandir, telldir, rewinddir, seekdir, ftruncate, fchmod, fchown, popen, pclose, sig2str, str2sig.
- Au fost adăugate noi utilitare standard rmdir, uniq, cmp, zcat, realpath, id, nohup, cksum. Au fost adăugate noi opțiuni în ls, grep și fgrep. Utilitarele ps, top, pstree, killall și pidof au fost rescrise și au fost migrate pe noua bibliotecă libtoaru_procfs, unificând interacțiunea cu pseudo-FS /proc. Interpretul de comandă esh a fost extins.
- A fost adăugată aplicația check-image pentru a verifica dacă biblioteca grafică poate încărca o imagine și pentru a afișa dimensiunea imaginii.
- Limbajul de programare Kuroko a fost actualizat la versiunea 1.5rc2.
- Editorul de text a fost actualizat până la versiunea 3.2 Bim (github.com), creat având în vedere Vim. În noua versiune, a fost îmbunătățită evidențierea sintaxei, s-a extins suportul pentru scripturile în limbajul Kuroko și a fost adăugată un nou sistem de completare automată a intrării.
Sursa: linux.org.ru
