Het Frame-project ontwikkelt een nieuwe X-server die volledig in NASM-assembler is geschreven voor de x86_64-architectuur en is ontworpen om te draaien in Linux Geen externe afhankelijkheden. Interactie met de kernel. LinuxDe implementatie, inclusief de DRM/KMS- en evdev-interfaces, verloopt rechtstreeks via systeemoproepen, zonder gebruik te maken van bibliotheken zoals libc, Mesa en FreeType. De code van Frame is in het publieke domein verspreid. De ontwikkeling wordt uitgevoerd met behulp van de AI-assistent Claude Code.
Het doel van het project is om X11-protocoluitbreidingen te implementeren die voldoende zijn voor de CHasm-desktopomgeving, ontwikkeld door dezelfde auteur en eveneens geschreven in assembly. Ondersteuning voor het uitvoeren van standaard X11-applicaties, waaronder Firefox, VS Code, GIMP en Inkscape, wordt als minimale vereiste gesteld. De geplande X11-uitbreidingen omvatten SHAPE, RENDER, XKB, COMPOSITE, DAMAGE, RANDR, MIT-SHM, XInput2 en XVideo.
De ontwikkeling is verdeeld in 14 fasen. Het project bevindt zich momenteel in fase 7, die al basisfunctionaliteiten biedt voor het draaien van een terminal en enkele X11-applicaties. Fase 14 wordt bereikt wanneer alle functionaliteiten voor volledige Firefox-ondersteuning zijn geïmplementeerd. Momenteel is aangekondigd dat het mogelijk zal zijn om de basisversie van de CHasm-desktop, GIMP en Firefox (met beperkingen) te draaien.
Reeds geïmplementeerde functies omvatten: het ontvangen van X11-verzoeken via een Unix-socket, softwarematige rendering via het DRM/KMS-kernelsubsysteem, invoerverwerking via evdev, een API voor invoerbeheer, ondersteuning voor het verbinden van meerdere X11-clients, functies voor het maken en bewerken van vensters, pixmap-bewerkingen, atomaire bewerkingen, tekstselectie voor het klembord en de X11-extensies SHAPE, RANDR, XKB, XInput2 en MIT-SHM. Vectorrenderingprimitieven, atomaire videomoduswisseling, het klembord, toetsenbordindelingwisseling, cursorbesturing en de X11-extensies RENDER, DAMAGE en COMPOSITE zijn nog niet geïmplementeerd.
De CHasm-desktopomgeving bevat ongeveer 100 regels code en omvat componenten die in assembleertaal zijn geschreven: de Tile-vensterbeheerder, de Strip-statusbalk, de Bolt-schermvergrendeling, de Bare-interactieve shell en de Glass-terminalemulator. Deze componenten worden vervangen door een bundel bestaande uit gdm, X11 Server, i3, conky, wezterm en zsh.
De ontwikkeling is gericht op een minimaal energieverbruik bij gebruik op een laptop. In de inactieve modus verbruiken de Tile-vensterbeheerder en de Glass-terminal helemaal geen resources en worden ze alleen geactiveerd door interactie van de gebruiker. Frame gebruikt in de inactieve modus bijna drie keer minder CPU-resources dan X.Org Server.
De op Frame en CHasm gebaseerde omgeving is al stabiel genoeg voor de auteur van het project om deze in zijn dagelijkse werk te gebruiken. Wanneer er problemen optreden of iets ontbreekt, gebruikt de auteur Claude indien nodig om eventuele problemen op te lossen. Hij ontwikkelt ook een set commandoregelprogramma's, fe2o3, geschreven in Rust, die in al zijn behoeften voorzien, behalve een webbrowser. fe2o3 bevat de Pointer-bestandsbeheerder met twee vensters, de rush-opdrachtinterpreter, de Scribe-teksteditor (vergelijkbaar met Vim), de Gazette RSS-reader, de Kastrup-e-mailclient en -messenger, de Tock-kalenderplanner, de Crush-configuratietool en de Viewer-documentviewer.


Bron: opennet.ru
