Das Frame-Projekt entwickelt einen neuen X-Server, der vollständig in NASM-Assembly für die Architektur x86_64 geschrieben ist und für den Betrieb unter Linux ohne externe Abhängigkeiten konzipiert wurde. Die Interaktion mit dem Linux-Kernel, einschließlich der DRM/KMS- und evdev-Interfaces, erfolgt direkt über Systemaufrufe, ohne Bibliotheken wie libc, Mesa und FreeType zu verwenden. Der Frame-Code wird als Public Domain verbreitet. Die Entwicklung erfolgt mit Unterstützung des KI-Assistenten Claude Code.
Ziel des Projekts ist die Implementierung von Erweiterungen des X11-Protokolls, die ausreichend für den Betrieb des CHasm-Desktops sind, der vom gleichen Autor entwickelt wird und ebenfalls in Assembly geschrieben ist. Als notwendiges Minimum wird die Unterstützung für den Start typischer X11-Anwendungen, darunter Firefox, VS Code, GIMP und Inkscape, angegeben. Zu den geplanten X11-Erweiterungen gehören SHAPE, RENDER, XKB, COMPOSITE, DAMAGE, RANDR, MIT-SHM, XInput2 und XVideo.
Die Entwicklung ist in 14 Phasen unterteilt. Derzeit befindet sich das Projekt in der 7. Phase, in der die grundlegenden Möglichkeiten zum Starten eines Terminals und einiger X11-Anwendungen bereits umgesetzt sind. Die 14. Phase wird erreicht, wenn alle Funktionen für die vollständige Nutzung von Firefox entwickelt wurden. In der aktuellen Phase wurde die Möglichkeit des Starts des grundlegenden CHasm-Desktops, GIMP und Firefox (mit Einschränkungen) bekannt gegeben.
Zu den bereits umgesetzten Funktionen gehören: Empfang von X11-Anfragen über Unix-Sockets, Software-Rendering über das DRM/KMS-Kernsubsystem, Verarbeitung der Eingabe über evdev, API zur Eingabesteuerung, Unterstützung mehrerer X11-Clients, Funktionen zum Erstellen und Verwalten von Fenstern, Operationen mit Pixmaps, atomare Operationen, Textauswahl für die Zwischenablage, X11-Erweiterungen SHAPE, RANDR, XKB, XInput2 und MIT-SHM. Vektor-Renderprimitive, atomare Video-Modusumschaltung, Zwischenablage, Tastaturlayoutwechsel, Cursorsteuerung sowie die X11-Erweiterungen RENDER, DAMAGE und COMPOSITE sind noch nicht implementiert.
Die CHasm-Desktop-Umgebung umfasst etwa 100.000 Zeilen Code und enthält in Assembly geschriebene Komponenten: den Mosaik-Fenstermanager Tile, die Statusleiste Strip, den Bildschirm-Blocker Bolt, die interaktive Shell Bare und den Terminal-Emulator Glass. Die entwickelten Komponenten ersetzen eine Kombination aus gdm, X11-Server, i3, conky, wezterm und zsh.
Die Entwicklung erfolgt mit Blick auf einen minimalen Energieverbrauch bei der Nutzung auf einem Laptop. Im Standby-Modus verbraucht der Fenster-Manager Tile und das Terminal Glass überhaupt keine Ressourcen und werden nur durch Benutzeraktionen aktiviert. Im Leerlauf verbraucht Frame fast dreimal weniger CPU-Ressourcen als der X.Org Server.
Es wird behauptet, dass die Umgebung basierend auf Frame und CHasm bereits ausreichend stabil ist, um sie im Alltagsbetrieb des Projektautors zu verwenden. Wenn Probleme auftreten oder etwas fehlt, zieht der Autor nach Bedarf Claude hinzu, um Anpassungen vorzunehmen. Der Autor entwickelt auch eine Sammlung von Konsolen-Tools fe2o3, die in Rust geschrieben sind und alle seine Bedürfnisse abdecken, mit Ausnahme eines Webbrowsers. Zu fe2o3 gehören der zweispaltige Dateimanager Pointer, der Befehlsinterpreter rush, der vim-ähnliche Texteditor Scribe, der RSS-Reader Gazette, der E-Mail-Client und Messenger Kastrup, der Kalender-Planer Tock, der Konfigurator Crush und der Dokumenten-Viewer Viewer.


Quelle: opennet.ru
