Lansarea sistemului de operare asemănător Unix ToaruOS 2.1 a fost publicată, scrisă de la zero și furnizată cu propriul kernel, încărcător de pornire, bibliotecă C standard, manager de pachete, componente pentru spațiul utilizatorului și o interfață grafică cu un manager de ferestre compus. Proiectul s-a dezvoltat inițial la Universitatea din Illinois ca activitate de cercetare în domeniul creării de noi interfețe grafice compozite, dar apoi a fost transformat într-un sistem de operare separat. Codul proiectului este scris în C și distribuit sub licența BSD. A fost pregătită pentru descărcare o imagine live de 14.4 MB, care poate fi testată în QEMU, VMware sau VirtualBox.

ToaruOS se bazează pe un nucleu care utilizează o arhitectură modulară hibridă care combină un cadru monolitic și instrumente pentru utilizarea modulelor încărcate, care formează majoritatea driverelor de dispozitiv disponibile, cum ar fi driverele de disc (PATA și ATAPI), sistemele 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 suplimente VirtualBox pentru sistemele oaspeților. Nucleul acceptă fire Unix, TTY, sistem de fișiere virtual, pseudo sistem de fișiere /proc, multithreading, IPC, ramdisk, ptrace, memorie partajată, multitasking și alte caracteristici standard.
Sistemul este echipat cu un manager de ferestre compus, acceptă fișiere executabile legate dinamic în format ELF, multitasking, o stivă grafică, poate rula Python 3 și GCC este folosit ca sistem de fișiere. Bootloader-ul acceptă BIOS și EFI. Stiva de rețea permite utilizarea API-urilor socket în stil BSD și acceptă interfețe de rețea, inclusiv loopback.
Dintre aplicațiile native, se remarcă editorul de cod Vi-like Bim, care a fost folosit în ultimii ani pentru a dezvolta aplicații specifice ToaruOS precum un manager de fișiere, emulator de terminal, panou grafic cu suport widget, manager de pachete, precum și ca biblioteci pentru imagini de suport (PNG, JPEG) și fonturi TrueType. Programe precum Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, emulator Super Nintendo, Bochs etc. au fost portate pe ToaruOS.
Proiectul dezvoltă, de asemenea, propriul limbaj de programare dinamic, Kuroko, conceput pentru a înlocui Python în dezvoltarea de utilități și aplicații pentru sistem. Limbajul este similar sintactic cu Python (este poziționat ca un dialect Python prescurtat cu definiții explicite ale variabilelor) și prezintă o implementare foarte compactă. Compilarea și interpretarea bytecode-ului sunt suportate. Interpretorul de bytecode oferă un colector de gunoi și suportă multithreading fără utilizarea unei blocări globale. Compilatorul și interpretorul pot fi compilate ca o bibliotecă partajată mică (~500 KB), integrate cu alte programe și extensibile prin API-ul C. Pe lângă ToaruOS, limbajul poate fi utilizat în... Linux, macOS, Windows și rulează în browsere care acceptă WebAssembly.
În noua versiune:
- S-a adăugat suport inițial pentru arhitectura AArch64 (ARMv8), inclusiv capacitatea experimentală de a utiliza ToaruOS pe placa Raspberry Pi 400 și în emulatorul QEMU.
- Procesarea și transmiterea semnalelor către procesele din spațiul utilizatorului a fost reproiectată. S-au implementat apeluri sigaction, sigprocmask, sigwait și sigsuspend.
- Gestionare îmbunătățită a memoriei în spațiul utilizatorului. Adăugat apel de sistem munmap.
- Managerul compozit implementează un efect de estompare și reproșează gestionarea evenimentelor atunci când dimensiunea ferestrei este modificată.
- Redarea terminalului a fost îmbunătățită, a fost implementată redarea leneșă și a fost adăugat un cache pentru glif pentru fonturile TrueType.
- Capacitățile compozitorului au fost extinse.
- Au fost adăugate mecanisme pentru setarea ceasului, inclusiv apelul de sistem settimeofday și capabilitățile extinse ale utilitarului pentru dată.
- Stiva de rețea îmbunătățită. Utilitarul ifconfig a adăugat suport pentru setarea adreselor IPv4 și a setărilor de rutare. Funcționarea activată a socket-urilor ICMP. S-a adăugat suport pentru funcția recvfrom pentru socket-urile UDP și ICMP.
- Bootloader-ul a adăugat capacitatea de a lucra cu tastaturi USB.
- Un element pentru ștergerea fișierelor a fost adăugat în meniul contextual al managerului de fișiere.
- Afișare îmbunătățită a graficelor în monitorul sistemului.
- S-a adăugat utilitarul grep cu suport pentru expresii regulate.
- Ieșirea comenzii ps îmbunătățită (s-au adăugat coloane suplimentare).

Sursa: opennet.ru
