Il progetto Frame sviluppa un nuovo server X, interamente scritto in assembler NASM per architettura x86_64 e destinato a funzionare su Linux senza dipendenze esterne. L'interazione con il kernel Linux, comprese le interfacce DRM/KMS ed evdev, avviene direttamente tramite chiamate di sistema, senza utilizzare librerie come libc, Mesa e FreeType. Il codice di Frame è distribuito come dominio pubblico. Lo sviluppo è supportato da un assistente AI, Claude Code.
L'obiettivo del progetto è implementare estensioni del protocollo X11 sufficienti per il funzionamento del desktop CHasm, anch'esso sviluppato dallo stesso autore e scritto in assembler. Come minimo richiesto, è dichiarato il supporto per l'esecuzione di applicazioni X11 standard, tra cui Firefox, VS Code, GIMP e Inkscape. Tra le estensioni X11 previste si menzionano SHAPE, RENDER, XKB, COMPOSITE, DAMAGE, RANDR, MIT-SHM, XInput2 e XVideo.
Lo sviluppo è suddiviso in 14 fasi. Attualmente, il progetto è alla settima fase, nella quale sono già implementate le funzionalità di base per l'avvio del terminale e di alcune applicazioni X11. La quattordicesima fase sarà raggiunta quando saranno implementate tutte le funzionalità per un utilizzo completo di Firefox. In questa fase, è già possibile avviare un ambiente desktop di base, CHasm, GIMP e Firefox (con alcune limitazioni).
Tra le funzionalità già implementate ci sono: ricezione delle richieste X11 tramite socket Unix, rendering software tramite il sottomodulo del kernel DRM/KMS, gestione dell'input tramite evdev, API per la gestione dell'input, supporto per la connessione di più client X11, funzioni per la creazione e gestione delle finestre, operazioni sulle mappe dei pixel, operazioni atomiche, selezione del testo per il copia e incolla, estensioni X11 SHAPE, RANDR, XKB, XInput2 e MIT-SHM. Non sono ancora implementati i primitivi di rendering vettoriale, il cambio atomico della modalità video, il clipboard, il cambio della layout della tastiera, la gestione del cursore e le estensioni X11 RENDER, DAMAGE e COMPOSITE.
L'ambiente desktop CHasm conta circa 100.000 righe di codice e include componenti scritti in assembly: il gestore di finestre mosaico Tile, il pannello di stato Strip, il blocco schermo Bolt, la shell interattiva Bare e l'emulatore di terminale Glass. I componenti sviluppati sostituiscono una combinazione di gdm, server X11, i3, conky, wezterm e zsh.
Lo sviluppo è orientato a un consumo energetico minimo durante l'uso su laptop. In modalità inattiva, il gestore di finestre Tile e il terminale Glass non consumano risorse e si attivano solo con l'interazione dell'utente. Frame in modalità inattiva utilizza quasi tre volte meno risorse CPU rispetto a X.Org Server.
Si afferma che l'ambiente basato su Frame e CHasm è già sufficientemente stabile per l'uso quotidiano da parte dell'autore del progetto. Quando si presentano problemi o manca qualcosa, l'autore coinvolge Claude secondo necessità per risolvere le carenze. L'autore sta anche sviluppando un insieme di utilità da console fe2o3, scritte in Rust, che coprono tutte le sue esigenze tranne il browser web. Il pacchetto fe2o3 include un file manager a doppio pannello chiamato Pointer, un interprete di comandi chiamato rush, un editor di testo simile a vim chiamato Scribe, un lettore RSS di nome Gazette, un client di posta e messaggistica Kastrup, un calendario e pianificatore chiamato Tock, un configuratore denominato Crush, e un visualizzatore di documenti chiamato Viewer.


Fonte: opennet.ru
