ToaruOS 2.3 e 2.3.1

ToaruOS 2.3 e 2.3.1 ToaruOS 2.3 e 2.3.1 ToaruOS 2.3 e 2.3.1 ToaruOS 2.3 e 2.3.1

28 aprile e 5 maggio si sono svolti i rilasci 2.3 e 2.3.1 del sistema operativo simile a Unix ToaruOS, scritto da zero e consegnato con il proprio kernel, bootloader, libreria standard C, gestore pacchetti, componenti per lo spazio utente e un'interfaccia grafica con gestore finestre composito.

Inizialmente, il progetto è stato sviluppato all'Università dell'Illinois come un lavoro di ricerca nel campo della creazione di nuove interfacce grafiche composite, ma poi si è trasformato in un sistema operativo autonomo. Il codice del progetto è scritto in C e è distribuito sotto licenza BSD. È stata preparata un'immagine live (2.3.1), delle dimensioni di 7.4 MB, che può essere testata in QEMU, VMware o VirtualBox.

Alla base di ToaruOS c'è un kernel che utilizza un'architettura ibrida modulare, combinando una base monolitica e strumenti per l'uso di moduli caricabili, in cui sono implementati la maggior parte dei driver di dispositivo esistenti, come i driver per dischi (PATA e ATAPI), FS Ext2 e ISO9660, framebuffer, tastiere, mouse, schede di rete (AMD PCnet FAST, Realtek RTL8139 e Intel PRO/1000), chip audio (Intel AC'97), oltre a estensioni VirtualBox per sistemi guest. Il kernel supporta flussi Unix, TTY, FS virtuali, pseudo-FS /proc, multithreading, IPC, ramdisk, ptrace, memoria condivisa, multitasking e altre funzionalità standard.

Il sistema è dotato di un gestore finestre composito, supporta file eseguibili dinamicamente linkabili in formato ELF, multitasking, stack grafico e può eseguire Python 3 e GCC. Viene utilizzato il filesystem ext2. Il bootloader supporta BIOS ed EFI. Lo stack di rete consente l'utilizzo dell'API dei socket in stile sistemi BSD e supporta interfacce di rete, inclusa la loopback.

Tra le applicazioni proprietarie si distingue un editor di codice simile a Vi, Bim, utilizzato negli ultimi anni per lo sviluppo di applicazioni specifiche per ToaruOS, come un gestore di file, un emulatore di terminale, un pannello grafico con supporto per widget, un gestore pacchetti, e librerie per il supporto delle immagini (PNG, JPEG) e dei font TrueType. Sono stati portati su ToaruOS programmi come Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, emulatore Super Nintendo, Bochs, ecc.

Il progetto sviluppa anche un proprio linguaggio di programmazione dinamico Kuroko, progettato per sostituire Python nello sviluppo di strumenti e applicazioni utente per il sistema. La lingua ha una sintassi simile a Python (posizionata come un dialetto ridotto di Python con definizione esplicita delle variabili) e si distingue per un'implementazione molto compatta. Supporta la compilazione e l'interpretazione del bytecode. L'interprete del bytecode fornisce un raccoglitore di spazzatura e supporta la multithreading senza l'uso di un blocco globale. Compilatori e interpreti possono essere assemblati in forma di piccole librerie condivise (~500KB), integrabili con altri programmi e ampliabili tramite C API. Oltre a ToaruOS, la lingua può essere utilizzata su Linux, macOS, Windows e può essere eseguita nei browser con supporto WebAssembly.

In nuovo rilascio:

  • Nell'emulatore di terminale è stata aggiunta la supporto alle schede, tra cui è possibile passare usando una sequenza Alt-numero. È stata implementata l'emulazione del grassetto tramite il sovrapposizione doppia dei glifi. Sono stati aggiunti i sottomenu «Stato terminale» per attivare la visualizzazione dello stato dei diversi moduli e «Invia segnale» per inviare segnali ai processi in background.
  • È stato implementato un visualizzatore di manuali di sistema, che supporta le pagine man nel formato roff.
  • Nel menu contestuale è stato aggiunto un sottomenu per gestire il layout mosaico delle finestre.
  • Nel kernel sono state implementate nuove chiamate di sistema, tra cui pread/pwrite, sigsuspend, sigqueue, lchown, pipe2, dup3, getrusage e fcntl. Aggiunto supporto per i flag FD_CLOEXEC e FD_CLOFORK. È stata implementata la supporto per la randomizzazione dell'indirizzo di caricamento del kernel. L'ABI delle chiamate di sistema è stata convertita all'uso delle istruzioni syscall/sysret.
  • Le funzionalità della console virtuale (TTY) sono state significativamente ampliate, con emulazione della modalità testuale VGA basata su framebuffer.
  • Nella versione per architettura Aarch64 è stata implementata la possibilità di avviarsi in macchine virtuali basate su QEMU.
  • Nel stack di rete è stato aggiunto il supporto per l'utilizzo simultaneo di più socket ICMP.
  • Alla libreria standard libc sono state aggiunte le funzioni getdelim, getline, scandir, telldir, rewinddir, seekdir, ftruncate, fchmod, fchown, popen, pclose, sig2str, str2sig.
  • Aggiunte nuove utility standard rmdir, uniq, cmp, zcat, realpath, id, nohup, cksum. Aggiunte nuove opzioni in ls, grep e fgrep. Riscritte le utility ps, top, pstree, killall e pidof, tradotte nella nuova libreria libtoaru_procfs, che unifica il lavoro con il pseudo-FS /proc. Esteso l'interprete dei comandi esh.
  • Aggiunta l'utility check-image per testare la capacità di caricare immagini dalla libreria grafica e per visualizzare le dimensioni dell'immagine.
  • Il linguaggio di programmazione Kuroko è stato aggiornato alla versione 1.5rc2.
  • Il editor di testo è stato aggiornato alla versione 3.2 Bim (github.com), creato con un occhio a Vim. Nella nuova versione è stata migliorata l'evidenziazione della sintassi, è stata ampliata la supporto per gli script in linguaggio Kuroko e aggiunto un nuovo sistema di completamento automatico.

Fonte: linux.org.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster