Frame:以組合語言編寫的極簡 Linux X 伺服器
Frame:以組合語言編寫的極簡 Linux X 伺服器
Frame 透過極簡的組合語言實作降低 X 伺服器開銷
Frame 是一個以組合語言編寫的自訂 Linux X 伺服器,旨在取代龐大的 X11 程式碼庫。雖然 X11 約有 400 萬行程式碼,Frame 只用大約 20,000 行就能實現可用的桌面環境。這樣的複雜度縮減,使系統在閒置時的 CPU 使用率遠低於 Xorg,直接提升電池續航並降低熱量產生。
CHasm 組合語言堆疊
Frame 為一套稱為 CHasm 的更廣泛組合語言工具生態的基礎圖形引擎。此堆疊旨在實現完整的軟體所有權與極致效能,取代傳統的 GDM、i3 與 zsh 等元件。
完整堆疊包括:
- Linux Kernel:基礎層。
- Frame:X 伺服器(圖形引擎)。
- Tile:視窗管理器,內含名為 Strip 的資訊列。
- Glass:在 Tile 中執行的終端模擬器。
- Bare:在 Glass 中執行的殼層。
- Bolt:歡迎畫面(原為螢幕鎖定程式)。
整個 CHasm 堆疊約有 100,000 行程式碼,作者估計其規模比被取代的堆疊(GDM、X11、i3、conky、wezterm、zsh)小超過五十倍。
效能與資源使用情況
測量系統效率時,可見閒置狀態下 CPU 使用率的明顯差異。雖然 Frame 與 Xorg 在閒置時的功耗相近——主要因為顯示面板與 Wi‑Fi 硬體佔主導——但 Xorg 的 CPU 資源消耗約為 Frame 的三倍。此外,視窗管理器(Tile)與終端(Glass)在三分鐘的測量期間 CPU 使用時間為 0 毫秒,意味著桌面在未有使用者操作時完全處於休眠狀態。
開發方法與 AI 整合
Frame 的開發主要使用 Claude(大型語言模型)作為產生程式碼與學習硬體層概念的工具。作者向 AI 描述具體需求與「痛點」,讓 LLM 負責將高階邏輯轉譯為組合語言。此方式使作者得以深入了解游標繪製、GPU 交接、事件監聽與硬體層的運作,而不必手動撰寫每一行樣板程式。
社群對 AI 產生組合語言的看法
使用 LLM 產生原始組合語言在觀察者之間引發技術討論:
- 程式結構:部分批評者認為產出的程式過於冗長。有人指出,人類程式設計師通常會使用巨集組譯器(如 NASM)將函式序言與尾聲的樣板封裝起來,使原始碼比 AI 直接產出的裸碼更緊湊、易讀。
- 編譯器的角色:有評論者質疑將 LLM 當作「編譯器」把高階操作轉成組合語言的實用性,認為直接使用帶
-s參數的標準 C 編譯器產生組合語言會更合理。 - 「氛圍編程」:部分人將此專案視為「氛圍編程」的例子——開發者引導 AI 的意圖而非手動實作邏輯,於是引發是否代表軟體最佳化新時代或是傳統程式設計技能被稀釋的討論。
- 客製化:支持者則認為 LLM 讓使用者能打造「為自己量身打造的完美工具」,使個人能建構高度專門、無相依性的軟體,針對特定使用者需求而非一般大眾。
目前的功能與限制
Frame 目前已相當穩定,可供日常使用,且能執行如 Firefox、GIMP 等主要 GUI 應用程式。然而,它尚未完整實作 X 協定;作者指出仍有相當多的協定功能尚待實作。
摘要: Frame 是一個以組合語言編寫的輕量級 Linux X 伺服器,以 20,000 行程式碼取代 X11,降低 CPU 開銷並提升電池續航。
標題: Frame:以組合語言編寫的極簡 Linux X 伺服器