Frame: アセンブリ言語で書かれたミニマリストな Linux X Server

Frame: アセンブリ言語で書かれたミニマリストな Linux X Server

Frame はミニマリストな Assembly 実装を通じて X server のオーバーヘッドを削減します

Frame は、膨大な X11 のコードベースを置き換えるために設計された、Assembly で書かれたカスタム Linux X server です。X11 が約 400 万行のコードで構成されているのに対し、Frame は約 20,000 行で機能的なデスクトップ環境を実現しています。この複雑さの削減により、システムは Xorg と比較して、アイドル時に著しく低い CPU 使用率を維持でき、バッテリー寿命の向上と熱出力の低減に直接貢献します。

CHasm Assembly Stack

Frame は、CHasm として知られる Assembly ベースのツールのより広範なエコシステムのための基盤となるグラフィックスエンジンとして機能します。このスタックは、完全なソフトウェアの所有権と極限の効率性を実現するために設計されており、GDM、i3、および zsh といった従来のコンポーネントを置き換えます。

フルスタックは以下の構成要素で構成されています:

  • Linux Kernel: ベースレイヤー。
  • Frame: X server (グラフィックスエンジン)。
  • Tile: Strip と呼ばれるインフォバーを備えたウィンドウマネージャー。
  • Glass: Tile 内で動作するターミナルエミュレータ。
  • Bare: Glass 内で動作するシェル。
  • Bolt: グレーター(以前はスクリーンロッカー)。

CHasm スタック全体では合計約 100,000 行のコードとなり、著者は、置き換える対象のスタック(GDM、X11、i3、conky、wezterm、および zsh)よりも 50 倍以上小さいと推定しています。

パフォーマンスとリソース利用率

システムの効率性を測定すると、アイドル状態における CPU 利用率に顕著な差が現れます。Frame と Xorg は、アイドル時の消費電力は同程度ですが(主にディスプレイパネルと Wi-Fi ハードウェアが電力を消費するため)、Xorg は Frame がアイドル状態を維持するために必要とする CPU リソースのほぼ 3 倍を消費します。さらに、ウィンドウマネージャー (Tile) とターミナル (Glass) は、3 分間の測定期間中に CPU 使用率 0 ミリ秒を記録しました。これは、ユーザーの操作が行われるまでデスクトップが完全に休止状態であることを意味します。

開発手法と AI の統合

Frame は、コードの生成とハードウェアレベルの概念の学習のための主要なツールとして Claude (LLM) を使用して開発されました。著者は、特定の要件や「痒いところ」を AI に説明し、LLM を利用して高レベルのロジックを Assembly に変換する作業を任せました。このアプローチにより、著者はボイラープレートをすべて手動で書くことなく、カーソル描画、GPU ハンドオフ、イベントウォッチャー、およびハードウェアレイヤーに関する深い洞察を得ることができました。

AI 生成 Assembly に関するコミュニティの視点

生の Assembly を生成するために LLM を使用することは、技術的な議論を呼び起こしています:

  • コード構造について: 一部の批判者は、結果として得えるコードが冗長すぎる、と主張しています。ある観察者は、人間のプログラマーは通常、関数プロローグとエピローグのボイラープレートをカプセル化するために macro-assembler (NASM など) を使用し、ソースを AI が生成する生の出力よりもコンパクトで読みやすくすること、と指摘しています。
  • コンパイラの役割について: 一部のコメント主は、標準的な C コンパイラに -s フラグを付けて Assembly を生成させるのではなく、LLM を「コンパイラ」として使用して高レベルの操作を Assembly に変換することの有用性に疑問を疑問を呈しています。
  • 「Vibe Coding」について: このプロジェクトは、一部の人々から「vibe coding」の例として見なされています。これは、開発者がロジックを直接実装するのではなく、AI の意図を指示する手法であり、ソフトウェアの最適化における新しい時代なのか、それとも伝統的なプログラミングスキルの低下をなのか、という議論を議論を呼び起こしています。
  • カスタマイズ性について: 支持者は、LLM が「自分自身のための完璧なツール」の作成を可能にすると主張しています。これは、 個人が、一般的なユーザー層ではなく、特定のユーザーのニーズに合わせて高度に専門化され、依存関係のないソフトウェアをビルドすること、を可能にします。

現在の機能と制限事項

Frame は現在、日常的な使用に十分なほど安定しており、Firefox や GIMP などの主要な GUI アプリケーションを実行できます。Frame は X protocol の完全な実装ではありません。著者は、実装すべきプロトコル機能のリストがまだかなりの量残っている、と述をべています。

Sources