プログラミング
Frame – 初のLinuxアセンブリXサーバー
Frame – the first Linux Assembly X server (isene.org)
要約
開発者は、X11の複雑さに代わるものとして、アセンブリ言語で独自のXサーバー「Frame」を開発しました。依存関係やライブラリなしで約2万行のアセンブリコードで記述されており、バッテリー寿命の改善とCPU使用率の低下を達成しています。このプロジェクトは、ハードウェア層やGPU連携など、低レベルのシステム知識を深める機会にもなっています。
全文翻訳
Frame – 初のLinuxアセンブリXサーバー
私のソフトウェアを完全に所有するという探求の中で、一つの基盤となる部分がずっと気になっていました…それはXサーバーです。ピクセルを画面に表示する、グラフィックスエンジンの根幹です。X11は400万行のコードからなり、理解していると主張できる人はほとんどいない巨大なものです。そこで、私は合理的なことをしました。アセンブリで独自のXサーバーを書いたのです。それはframeと呼ばれます。依存関係なし、ライブラリなし、ガベージコレクタなし。ホットパスなし、不要なウェイクアップなし。アイドル時には静止しています。話しかけられない限り、音を立てません。私の好みのソフトウェアです。コード量は約2万行で、すでに私のデスクトップ全体と、必要に応じてFirefoxやGIMPも動作させています。まだ若いですが、処理すべきXプロトコルのリストは長いです。しかし、起動し、描画し、そして私はこの投稿をそれを使って書いています。現在のスタックは以下のようになります:一番下にLinuxカーネル。その上にframe。次にウィンドウマネージャーのtileと情報バーのストリップ。tileの中にはターミナルガラスが走り、ガラスの中にはシェルがそのままあります。Boltはスクリーンロッカーからグリーターに昇格し、gdmを追い出しました。すべてアセンブリです。CHasm全体で約10万行です。置き換えられたスタック(gdm、X11、i3、conky、wezterm、zsh)は、その50倍以上です。私はバッテリー寿命のためにこれをやりました。このラップトップにはもうファンがないのかもしれません。私自身を除いて。今日、私は数字をそれに当てはめました。バッテリーでのアイドル時、frameとXorgは同じワット数を消費します。なぜなら、パネルとWi-Fiがその数字を支配しているからです。しかし、Xorgはframeが何もしないために必要なCPUのほぼ3倍を消費します。そしてtileとglassは3分間の測定でゼロミリ秒しか使用しませんでした。デスクトップは私が触れるまで完全に静止しています。デスクトップを超えて、私のFe₂O₃スイートのRustツールがあり、これらはすでに私が使っていた他のすべてを置き換えています。Firefoxを除いて。それが私が定期的に使う最後のGUIです。残りはどこでも同じキーバインディングを持つターミナルインターフェースで、置き換えられたものよりサイズと電力消費がずっと少ないです。しかし、安定しているのでしょうか?私が毎日使い、この投稿を書き、時々叫ぶのに十分安定しています。何かが壊れたり、機能が欲しくなったりすると、私の友人Claudeに話しかけて、その欲求を説明します。彼は決して疲れず、意見を言わず、そして本当に良い教師であることがわかりました。私は、計画していたよりも、ハードウェア層、カーソルペイント、GPUハンドオフ、イベントウォッチャーについて、今ではもっとよく知っています。電話も同じ治療を受け、独自のランチャー、毎日のパーソナライズされたニュースダイジェスト、そしてまさに一人向けのアプリの山があります。利点は単純です。私が必要とし、欲しいものを持っています。私はソフトウェアを制御し、所有しており、すべてがパブリックドメインで提供されています。大衆向けに設計されたソフトウェアは、すべての人に少しずつ合います。これは一人にぴったり合います。この投稿へのリンク: https://isene.org/2026/07/Frame.html #Geekery #Technology