A fost publicată versiunea 2.1 a 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 o interfață grafică cu un manager de feronerie compozit. Proiectul a fost inițial dezvoltat la Universitatea din Illinois ca un lucru de cercetare în domeniul creării de noi interfețe grafice compozite, dar apoi s-a transformat într-un sistem de operare separat. Codul proiectului este scris în limbajul C și este distribuit sub licența BSD. A fost pregătit un live image pentru descărcare, de 14,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 fundație monolitică și unelte pentru utilizarea modulelor încărcabile, în care sunt formatate majoritatea driverelor de dispozitive existente, cum ar fi driverele de hard disk (PATA și ATAPI), sistemul de fișiere EXT2 și ISO9660, framebuffer, tastaturi, mouse-uri, plăci de rețea (AMD PCnet FAST, Realtek RTL8139 și Intel PRO/1000), cipuri de sunet (Intel AC’97), precum și extensii VirtualBox pentru sistemele gazdă. Kernelul suportă fire de execuție Unix, TTY, un sistem de fișiere virtual, pseudo-sistem de fișiere /proc, multi-threading, IPC, ramdisk, ptrace, memorie partajată, multitasking și alte funcții tipice.
Sistemul este echipat cu un manager de feronerie compozit, suportă fișiere executabile legate dinamic în format ELF, multitasking, un stack grafic și poate rula Python 3 și GCC. Sistemul de fișiere utilizat este ext2. Bootloader-ul suportă BIOS și EFI. Stack-ul de rețea permite utilizarea API-urilor de socket în stil BSD și suportă interfețele de rețea, inclusiv loopback.
Dintre aplicațiile proprii, se distinge editorul de cod Bim, asemănător cu Vi, care este folosit de câțiva ani pentru dezvoltarea de aplicații specifice pentru ToaruOS, cum ar fi managerul de fișiere, emulatorul de terminal, panoul grafic cu suport pentru widgeturi, managerul de pachete, precum și biblioteci pentru suportul imaginilor (PNG, JPEG) și fonturilor TrueType. Au fost portate pentru ToaruOS programe precum Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, emulator Super Nintendo, Bochs etc.
Proiectul dezvoltă, de asemenea, un limbaj de programare dinamic propriu, Kuroko, destinat să înlocuiască Python în dezvoltarea utilitarilor și aplicațiilor pentru sistem. Limbajul este similar cu Python din punct de vedere al sintaxei (se poziționează ca un dialect mai concis al Python-ului cu definirea explicită a variabilelor) și se distinge printr-o implementare foarte compactă. Suportă compilarea și interpretarea bytecode-ului. Interpretul bytecode-ului oferă un colector de gunoi și suportă threading fără a folosi blocarea globală. Compilatorul și interpretul pot fi construite sub forma unei biblioteci partajate de dimensiuni reduse (~500KB), integrabile cu alte programe și extensibile prin API C. În afară de ToaruOS, limbajul poate fi utilizat pe Linux, macOS, Windows și poate fi rulat în browsere care suportă WebAssembly.
În noua versiune:
- A fost adăugat suport inițial pentru arhitectura AArch64 (ARMv8), inclusiv cu posibilitatea experimentală de a folosi ToaruOS pe plăcile Raspberry Pi 400 și în emulatorul QEMU.
- A fost revizuită manipularea și transmiterea semnalelor proceselor în spațiul utilizatorului. Au fost implementate apelurile sigaction, sigprocmask, sigwait și sigsuspend.
- A fost îmbunătățit managementul memoriei în spațiul utilizatorului. A fost adăugat apelul de sistem munmap.
- În managerul de compunere, a fost implementat un efect de estompare și a fost revizuită gestionarea evenimentelor la redimensionarea ferestrei.
- A fost îmbunătățită redarea terminalului, a fost implementată redarea întârziată și a fost adăugat un cache de glife pentru fonturile TrueType.
- Capabilitățile linker-ului au fost extinse.
- Au fost adăugate mecanisme pentru setarea orelor, inclusiv a fost implementat apelul de sistem settimeofday și au fost extinse funcționalitățile utilitarului date.
- Stiva de rețea a fost îmbunătățită. În utilitarul ifconfig a fost adăugat suport pentru setarea adreselor IPv4 și configurarea rutării. Funcționarea socket-urilor ICMP a fost asigurată. A fost adăugat suport pentru funcția recvfrom pentru socket-uri UDP și ICMP.
- În bootloader a fost adăugată capacitatea de a lucra cu tastaturi USB.
- În meniul contextual al managerului de fișiere a fost adăugat un element pentru ștergerea fișierelor.
- A fost îmbunătățită vizualizarea graficele în monitorul de sistem.
- A fost adăugată utilitarul grep cu suport pentru expresii regulate.
- A fost îmbunătățit output-ul comenzii ps (au fost adăugate coloane suplimentare).

Sursa: opennet.ro
