Projekt Frame tworzy nowy serwer X napisany w całości w assemblerze NASM dla architektury x86_64 i zaprojektowany do działania w Linux Brak zależności zewnętrznych. Interakcja z jądrem Linux, w tym interfejsy DRM/KMS i evdev, jest implementowany bezpośrednio poprzez wywołania systemowe, bez użycia bibliotek takich jak libc, Mesa i FreeType. Kod Frame jest rozpowszechniany w domenie publicznej. Rozwój jest realizowany z pomocą asystenta AI Claude'a Code'a.
Celem projektu jest implementacja rozszerzeń protokołu X11 wystarczających dla środowiska graficznego CHasm, opracowanego przez tego samego autora i również napisanego w języku assembler. Minimalnym wymaganiem jest obsługa standardowych aplikacji X11, takich jak Firefox, VS Code, GIMP i Inkscape. Wśród planowanych rozszerzeń X11 znajdują się: SHAPE, RENDER, XKB, COMPOSITE, DAMAGE, RANDR, MIT-SHM, XInput2 i XVideo.
Rozwój podzielony jest na 14 etapów. Projekt znajduje się obecnie na etapie 7, który obejmuje już podstawowe funkcje obsługi terminala i niektórych aplikacji X11. Etap 14 zostanie osiągnięty po zaimplementowaniu wszystkich funkcji zapewniających pełną obsługę Firefoksa. Obecnie ogłoszono, że będzie on obsługiwał podstawowy pulpit CHasm, Gimpa i Firefoksa (z ograniczeniami).
Wśród już zaimplementowanych funkcji znajdują się: odbieranie żądań X11 przez gniazdo Unix, renderowanie programowe przez podsystem jądra DRM/KMS, przetwarzanie danych wejściowych przez evdev, API do zarządzania danymi wejściowymi, obsługa wielu klientów X11, funkcje tworzenia i obsługi okien, operacje na mapach pikseli, operacje atomowe, zaznaczanie tekstu w schowku oraz rozszerzenia X11: SHAPE, RANDR, XKB, XInput2 i MIT-SHM. Prymitywy renderowania wektorowego, atomowe przełączanie trybów wideo, schowek, przełączanie układu klawiatury, sterowanie kursorem oraz rozszerzenia X11: RENDER, DAMAGE i COMPOSITE nie zostały jeszcze zaimplementowane.
Środowisko graficzne CHasm zawiera około 100 000 linii kodu i obejmuje komponenty napisane w języku asemblera: menedżera okien Tile, pasek stanu Strip, blokadę ekranu Bolt, powłokę interaktywną Bare oraz emulator terminala Glass. Komponenty te zostały zastąpione pakietem składającym się z gdm, serwera X11, procesorów i3, conky, wezterm i zsh.
W rozwoju oprogramowania położono nacisk na minimalne zużycie energii podczas korzystania z laptopa. W trybie bezczynności menedżer okien Tile i terminal Glass nie zużywają żadnych zasobów i są aktywowane wyłącznie przez interakcję użytkownika. Frame, w trybie bezczynności, zużywa prawie trzy razy mniej zasobów procesora niż X.Org Server.
Środowisko oparte na frameworku Frame i CHasm jest już na tyle stabilne, że autor projektu może z niego korzystać w codziennej pracy. W razie problemów lub gdy czegoś brakuje, autor korzysta z Claude'a, aby rozwiązać wszelkie problemy. Opracowuje również zestaw narzędzi wiersza poleceń, fe2o3, napisanych w języku Rust i zaspokajających wszystkie jego potrzeby z wyjątkiem przeglądarki internetowej. fe2o3 zawiera dwupanelowy menedżer plików Pointer, interpreter poleceń Rush, edytor tekstu Scribe przypominający vim, czytnik RSS Gazette, klienta poczty i komunikatora Kastrup, kalendarz Tock, narzędzie konfiguracyjne Crush oraz przeglądarkę dokumentów Viewer.


Źródło: opennet.ru
