The Frame project is developing a new X server written entirely in NASM assembler for the x86_64 architecture and designed to run in Linux No external dependencies. Interacting with the kernel Linux, including the DRM/KMS and evdev interfaces, is implemented directly via system calls, without the use of libraries such as libc, Mesa, and FreeType. Frame's code is distributed in the public domain. Development is being carried out with the help of the AI assistant Claude Code.
The project's goal is to implement X11 protocol extensions sufficient for the CHasm desktop, developed by the same author and also written in assembly. Support for running standard X11 applications, including Firefox, VS Code, GIMP, and Inkscape, is stated as a minimum requirement. X11 extensions planned for implementation include SHAPE, RENDER, XKB, COMPOSITE, DAMAGE, RANDR, MIT-SHM, XInput2, and XVideo.
Development is divided into 14 stages. The project is currently at stage 7, which already includes basic capabilities for running a terminal and some X11 applications. Stage 14 will be reached when all capabilities for full Firefox support are implemented. Currently, it is announced that it will be able to run the basic CHasm desktop, GIMP, and Firefox (with limitations).
Already implemented features include: receiving X11 requests via a Unix socket, software rendering via the DRM/KMS kernel subsystem, input processing via evdev, an API for input management, support for connecting multiple X11 clients, functions for creating and working with windows, pixmap operations, atomic operations, text selection for the clipboard, and the X11 extensions SHAPE, RANDR, XKB, XInput2, and MIT-SHM. Vector rendering primitives, atomic video mode switching, the clipboard, keyboard layout switching, cursor control, and the X11 extensions RENDER, DAMAGE, and COMPOSITE have not yet been implemented.
The CHasm desktop environment contains approximately 100 lines of code and includes components written in assembly language: the Tile window manager, the Strip status bar, the Bolt screen locker, the Bare interactive shell, and the Glass terminal emulator. These components are replaced by a bundle consisting of gdm, X11 Server, i3, conky, wezterm, and zsh.
The development is focused on minimal power consumption when used on a laptop. In idle mode, the Tile window manager and Glass terminal consume no resources at all and are activated only by user interaction. Frame, when idle, uses almost three times less CPU resources than X.Org Server.
The Frame and CHasm-based environment is already stable enough for the project's author to use it in his daily work. When problems arise or something is missing, the author uses Claude as needed to fix any issues. He is also developing a set of command-line utilities, fe2o3, written in Rust and covering all his needs except for a web browser. fe2o3 includes the Pointer dual-pane file manager, the rush command interpreter, the Scribe vim-like text editor, the Gazette RSS reader, the Kastrup email client and messenger, the Tock calendar planner, the Crush configuration tool, and the Viewer document viewer.


Source: opennet.ru
