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 le versioni 2.3 e 2.3.1 del sistema operativo Unix-like ToaruOS, sviluppato da zero e fornito con il proprio kernel, bootloader, libreria standard C, gestore pacchetti, componenti per lo spazio utente e interfaccia grafica con gestore finestre composito.

Inizialmente, il progetto è stato sviluppato presso l'Università dell'Illinois come un lavoro di ricerca focalizzato sulla creazione di nuove interfacce grafiche composite, ma poi si è trasformato in un sistema operativo autonomo. Il codice del progetto è scritto in linguaggio C e distribuito sotto licenza BSD. È disponibile per il download un immagine live (2.3.1), della dimensione di 7.4 MB, che può essere testata in QEMU, VMware o VirtualBox.

Alla base di ToaruOS si trova un kernel che utilizza un'architettura modulare ibrida, combinando una base monolitica con strumenti per l'utilizzo di moduli caricabili, attraverso i quali sono implementati la maggior parte dei driver di dispositivo attualmente disponibili, come i driver per dischi (PATA e ATAPI), il file system Ext2 e ISO9660, framebuffer, tastiere, mouse, schede di rete (AMD PCnet FAST, Realtek RTL8139 e Intel PRO/1000), chip audio (Intel AC’97), così come le estensioni di VirtualBox per i sistemi guest. Il kernel supporta flussi Unix, TTY, file system virtuali, pseudo-file system /proc, multithreading, IPC, ramdisk, ptrace, memoria condivisa, multiprogrammazione e altre funzionalità standard.

Il sistema è dotato di un gestore di finestre composito, supporta file eseguibili legati dinamicamente in formato ELF, multiprogrammazione, un stack grafico, può eseguire Python 3 e GCC. Come file system viene utilizzato ext2. Il bootloader supporta sia BIOS che EFI. Lo stack di rete consente l'uso di API di socket in stile BSD e supporta interfacce di rete, incluso loopback.

Tra le applicazioni sviluppate spicca l'editor di codice simile a Vi, Bim, utilizzato negli ultimi anni per la creazione 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 di immagini (PNG, JPEG) e font TrueType. Per ToaruOS sono stati portati programmi come Vim, GCC, Binutils, FreeType, MuPDF, SDL, Cairo, Doom, Quake, emulatore Super Nintendo, Bochs, e così via.

Il progetto sta anche sviluppando un linguaggio di programmazione dinamico proprietario. Kuroko, progettato per sostituire Python nello sviluppo di utility e applicazioni per il sistema. La sintassi del linguaggio è simile a quella di Python (posizionato come un dialetto ridotto di Python con una chiara definizione delle variabili) e si distingue per la sua implementazione molto compatta. Supporta la compilazione e l'interpretazione del bytecode. L'interprete del bytecode fornisce un raccoglitore di garbage, supporta il multithreading senza utilizzare il lock globale. Il compilatore e l'interprete possono essere assemblati come una piccola libreria condivisa (~500KB), integrabile con altri programmi e ampliabile tramite C API. Oltre a ToaruOS, il linguaggio può essere utilizzato in Linux, macOS, Windows e può essere eseguito nei browser che supportano WebAssembly.

In nuovo rilascio:

  • Nell'emulatore di terminale è stata aggiunta la supporto per le schede, tra cui è possibile passare tramite la sequenza Alt-numero. È stata implementata l'emulazione del grassetto tramite il doppio overlay dei glifi. Aggiunti i sottomenu «Stato del terminale» per attivare la visualizzazione dello stato di diverse modalità e «Invia segnale» per inviare segnali ai processi in background.
  • È stato implementato un visualizzatore di manuali di sistema, che supporta le pagine man in formato roff.
  • È stato aggiunto un sottomenu nel menu contestuale per gestire il layout a mosaico delle finestre.
  • Nel kernel sono stati implementati nuovi syscall, tra cui pread/pwrite, sigsuspend, sigqueue, lchown, pipe2, dup3, getrusage e fcntl. È stato aggiunto il supporto per i flag FD_CLOEXEC e FD_CLOFORK. È stata implementata la supporto per la randomizzazione dell'indirizzo di caricamento del kernel. L'ABI dei syscall è stato tradotto per utilizzare le istruzioni syscall/sysret.
  • Le capacità della console virtuale (TTY) sono state notevolmente ampliate, con l'emulazione della modalità testo VGA basata sul frame buffer.
  • Nella versione per l'architettura Aarch64 è stata implementata la possibilità di avviare macchine virtuali basate su QEMU.
  • Nel network stack è stato aggiunto il supporto per lavorare contemporaneamente con più socket ICMP.
  • Sono state aggiunte alla libreria standard libc le funzioni getdelim, getline, scandir, telldir, rewinddir, seekdir, ftruncate, fchmod, fchown, popen, pclose, sig2str, str2sig.
  • Sono state aggiunte nuove utility standard rmdir, uniq, cmp, zcat, realpath, id, nohup, cksum. Nuove opzioni sono state aggiunte a ls, grep e fgrep. Le utility ps, top, pstree, killall e pidof sono state riscritte e tradotte nella nuova libreria libtoaru_procfs, che unifica l'interazione con il pseudo-FS /proc. L'interprete di comandi esh è stato ampliato.
  • È stata aggiunta l'utility check-image per verificare la capacità di carico di un'immagine da parte della libreria grafica e per visualizzare le dimensioni dell'immagine.
  • Il linguaggio di programmazione Kuroko è stato aggiornato alla versione 1.5rc2.
  • Il text editor è stato aggiornato alla versione 3.2 Bim (github.com), progettato con un occhio a Vim. Nella nuova versione è migliorata la sintassi evidenziata, è stata ampliata la supporto per gli script in Kuroko e aggiunto un nuovo sistema di completamento automatico.

Fonte: linux.org.ru

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