Projekt Frame rozwija nowy serwer X, stworzony w całości w assemblerze NASM dla architektury x86_64, przeznaczony do pracy w systemie Linux bez zewnętrznych zależności. Interakcja z jądrem Linux, w tym interfejsami DRM/KMS i evdev, odbywa się bezpośrednio przez wywołania systemowe, bez korzystania z bibliotek takich jak libc, Mesa czy FreeType. Kod Frame jest udostępniany jako własność publiczna. Rozwój prowadzony jest z pomocą asystenta AI Claude Code.
Celem projektu jest wdrożenie rozszerzeń protokołu X11, wystarczających do działania pulpitu CHasm, rozwijanego przez tego samego autora i również napisanego w assemblerze. Jako niezbędne minimum zadeklarowano wsparcie dla uruchamiania typowych aplikacji X11, w tym Firefox, VS Code, GIMP i Inkscape. Wśród planowanych do wdrożenia rozszerzeń X11 wymieniono SHAPE, RENDER, XKB, COMPOSITE, DAMAGE, RANDR, MIT-SHM, XInput2 i XVideo.
Rozwój podzielono na 14 etapów. Obecnie projekt znajduje się na 7 etapie, na którym zrealizowane zostały podstawowe możliwości uruchamiania terminala i niektórych aplikacji X11. Etap 14 zostanie osiągnięty, gdy zostaną wdrożone wszystkie możliwości pełnej obsługi Firefox. Na obecnym etapie ogłoszono możliwość uruchomienia podstawowego pulpitu CHasm, GIMP i Firefox (z ograniczeniami).
Wśród już zrealizowanych możliwości znajduje się odbieranie zapytań X11 przez gniazdo Unix, programowe renderowanie przez podsystem jądra DRM/KMS, obsługa wejścia przez evdev, API do zarządzania wejściem, wsparcie dla podłączania wielu klientów X11, funkcje tworzenia i obsługi okien, operacje na mapach pikseli, operacje atomowe, wydzielanie tekstu do schowka, rozszerzenia X11 SHAPE, RANDR, XKB, XInput2 i MIT-SHM. Nie zaimplementowano jeszcze prymitywów wektorowego renderowania, atomowego przełączania trybów wideo, schowka, przełączania układu klawiatury, zarządzania kursorem oraz rozszerzeń X11 RENDER, DAMAGE i COMPOSITE.
Środowisko pulpitu CHasm liczy około 100 tysięcy linii kodu i zawiera komponenty napisane w assemblerze: mozaikowy menedżer okien Tile, pasek stanu Strip, blokada ekranu Bolt, interaktywna powłoka Bare oraz emulator terminala Glass. Opracowane komponenty zastępują zestaw gdm, serwer X11, i3, conky, wezterm i zsh.
Rozwój jest prowadzony z uwzględnieniem minimalnego zużycia energii podczas korzystania z laptopa. W trybie uśpienia menedżer okien Tile i terminal Glass nie zużywają zasobów i aktywują się tylko w odpowiedzi na działanie użytkownika. Frame w trybie bezczynności zużywa prawie trzykrotnie mniej zasobów CPU niż X.Org Server.
Twierdzi się, że środowisko oparte na Frame i CHasm jest już wystarczająco stabilne do codziennego użytku przez autora projektu. Gdy pojawiają się problemy lub czegoś brakuje, autor w razie potrzeby angażuje Claude'a i usuwa niedociągnięcia. Autor rozwija również zestaw narzędzi konsolowych fe2o3, napisanych w Rust, które pokrywają wszystkie jego potrzeby, z wyjątkiem przeglądarki internetowej. W skład fe2o3 wchodzi dwupanelowy menedżer plików Pointer, interpreter poleceń rush, edytor tekstu podobny do vima Scribe, czytnik RSS Gazette, klient poczty i komunikator Kastrup, kalendarz-planer Tock, konfigurator Crush oraz przeglądarka dokumentów Viewer.


Źródło: opennet.ru
