Главная | IT | Представлены X-сервер Frame и рабочий стол CHasm, написанные на ассемблере

Представлены X-сервер Frame и рабочий стол CHasm, написанные на ассемблере

Проект Frame развивает новый X-сервер, написанный целиком на ассемблере NASM для архитектуры x86_64 и предназначенный для работы в Linux без внешних зависимостей. Взаимодействие с ядром Linux, включая интерфейсы DRM/KMS и evdev, осуществляется напрямую через системные вызовы, без привлечения библиотек, таких как libc, Mesa и FreeType. Код Frame распространяется как общественное достояние. Разработка ведётся с привлечением AI-ассистента Claude Code.

Целью проекта является реализация расширений протокола X11, достаточных для функционирования рабочего стола CHasm, развиваемого тем же автором и также написанного на ассемблере. В качестве необходимого минимума заявлена поддержка запуска типовых X11-приложений, среди которых Firefox, VS Code, GIMP и Inkscape. Из намеченных к реализации X11-расширений упомянуты SHAPE, RENDER, XKB, COMPOSITE, DAMAGE, RANDR, MIT-SHM, XInput2 и XVideo.

Разработка разделена на 14 стадий. В настоящее время проект находится на 7 стадии, на которой уже реализованы базовые возможности для запуска терминала и некоторых X11 приложений. 14 стадия будет достигнута, когда будут реализованы все возможности для полноценной работы с Firefox. На текущем этапе заявлено о возможности запуска базового рабочего стола CHasm, GIMP и Firefox (с ограничениями).

Среди уже реализованных возможностей: приём X11-запросов через Unix-сокет, программная отрисовка через подсистему ядра DRM/KMS, обработка ввода через evdev, API для управления вводом, поддержка подключения нескольких X11-клиентов, функции для создания и работы с окнами, операции с пиксельными картами, атомарные операции, выделение текста для буфера обмена, X11-расширения SHAPE, RANDR, XKB, XInput2 и MIT-SHM. Ещё не реализованы примитивы векторной отрисовки, атомарное переключение видеорежима, буфер обмена, переключение раскладки клавиатуры, управление курсором, X11-расширения RENDER, DAMAGE и COMPOSITE.

Среда рабочего стола CHasm насчитывает около 100 тысяч строк кода и включает написанные на ассемблере компоненты: мозаичный оконный менеджер Tile, панель состояния Strip,
блокировщик экрана Bolt, интерактивная оболочка Bare и эмулятор терминала Glass. Разработанные компоненты заменяются собой связку из gdm, X11 Server, i3, conky, wezterm и zsh.

Разработка ведётся с оглядкой на минимальное потребление энергии при использовании на ноутбуке. В режиме ожидания оконный менеджер Tile и терминал Glass совсем не потребляют ресурсы и активируются только при действии пользователя. Frame в режиме простоя расходует почти в три раза меньше ресурсов CPU, чем X.Org Server.

Утверждается, что окружение на базе Frame и CHasm уже достаточно стабильно для использования в повседневной работе автора проекта. Когда возникают проблемы или чего-то не хватает, автор по мере необходимости привлекает Claude и устраняет недоработки. Автор также развивает набор консольных утилит fe2o3, написанных на Rust и покрывающих все его потребности, кроме web-браузера. В состав fe2o3 входит двухпанельный файловый менеджер Pointer, командный интерпретатор rush, vim-подобный текстовый редактор Scribe, RSS-ридер Gazette, почтовый клиент и мессенджер Kastrup, календарь-планировщик Tock, конфигуратор Crush, просмотрщик документов Viewer.

Источник