Het Frame-project ontwikkelt een nieuwe X-server, volledig geschreven in NASM-assembler voor de x86_64-architectuur en bedoeld voor gebruik in Linux zonder externe afhankelijkheden. De interactie met de Linux-kernel, inclusief de DRM/KMS- en evdev-interfaces, verloopt rechtstreeks via systeemaanroepen, zonder gebruik te maken van bibliotheken zoals libc, Mesa en FreeType. De code van Frame wordt verspreid als publiek domein. De ontwikkeling vindt plaats met de hulp van de AI-assistent Claude Code.
Het doel van het project is de implementatie van extensies van het X11-protocol, die voldoende zijn voor de werking van de desktop CHasm, ontwikkeld door dezelfde auteur en ook geschreven in assembler. Voor deze minimumondersteuning is het noodzakelijk dat typische X11-applicaties zoals Firefox, VS Code, GIMP en Inkscape kunnen worden uitgevoerd. Onder de geplande X11-extensies worden SHAPE, RENDER, XKB, COMPOSITE, DAMAGE, RANDR, MIT-SHM, XInput2 en XVideo vermeld.
De ontwikkeling is opgesplitst in 14 fasen. Momenteel bevindt het project zich in fase 7, waarin al de basisfunctionaliteiten zijn gerealiseerd voor het uitvoeren van een terminal en enkele X11-applicaties. Fase 14 zal worden bereikt wanneer alle mogelijkheden voor volledige werking met Firefox zijn gerealiseerd. In deze fase is het mogelijk om een basisdesktopomgeving CHasm, GIMP en Firefox (met beperkingen) te starten.
Onder de al gerealiseerde mogelijkheden bevinden zich: het ontvangen van X11-verzoeken via een Unix-socket, softwarematige rendering via de DRM/KMS-kernelsubsystemen, invoerverwerking via evdev, API voor het beheren van invoer, ondersteuning voor het aansluiten van meerdere X11-cliƫnten, functies voor het maken en beheren van vensters, bewerkingen met pixelkaarten, atomische operaties, tekstselectie voor het klembord, en X11-extensies SHAPE, RANDR, XKB, XInput2 en MIT-SHM. Vector-rendering primitieve, atomische video-modus wisseling, klembord, wisseling van toetsenbordindeling, cursorbeheer, en X11-extensies RENDER, DAMAGE en COMPOSITE zijn nog niet gerealiseerd.
De desktopomgeving CHasm bevat ongeveer 100.000 regels code en omvat de in assembler geschreven componenten: de betegelde vensterbeheerder Tile, de statusbalk Strip, de screensaver Bolt, de interactieve shell Bare en de terminalemulator Glass. De ontwikkelde componenten vervangen een bundel van gdm, X11 Server, i3, conky, wezterm en zsh.
De ontwikkeling is gericht op een minimaal energieverbruik bij gebruik op een laptop. In de slaapstand verbruiken de tegelbeheerder en de terminal Glass geen hulpbronnen en worden ze alleen geactiveerd door gebruikersacties. Frame verbruikt bijna drie keer minder CPU-hulpbronnen in rust dan de X.Org Server.
Er wordt gesteld dat de omgeving op basis van Frame en CHasm al voldoende stabiel is voor dagelijks gebruik door de auteur van het project. Wanneer er problemen optreden of iets ontbreekt, betrekt de auteur indien nodig Claude en verhelpt hij de tekortkomingen. De auteur ontwikkelt ook een reeks consolehulpprogramma's genaamd fe2o3, geschreven in Rust en dekt al zijn behoeften, behalve de webbrowser. Fe2o3 omvat een dual-pane bestandsbeheerder genaamd Pointer, een command interpreter genaamd rush, een vim-achtige teksteditor genaamd Scribe, een RSS-lezer genaamd Gazette, een e-mailclient en messenger genaamd Kastrup, een agenda-planner genaamd Tock, een configurator genaamd Crush, en een documentviewer genaamd Viewer.


Bron: opennet.ru
