なぜ x サーバーと Linux カーネルの両方にドライバーが必要なのでしょうか?

なぜ x サーバーと Linux カーネルの両方にドライバーが必要なのでしょうか?

Linux カーネルと X にそれぞれ 1 セットずつ、合計 2 セットのドライバーが必要な理由を説明していただけますか?

デバイス ドライバーがカーネル内にあることは理解していますが、xserver 内でのそれらの役割は何ですか?

Wayland を実行するにはそのようなドライバーが必要ですか?

答え1

Linux のグラフィック サポートは、カーネルの寿命のほとんどにわたって、大きく変化してきました。当初、カーネルはテキスト モードの目的でのみグラフィック カードと通信していました。当時、X はドライバーを使用してすべてを行っていたため、カーネル外の巨大なカーネルとして動作していました。

その後、ダイレクトレンダリングインフラストラクチャ (DRI)、高速化されたグラフィック機能のコードの一部がカーネル側 (Direct Rendering Manager、DRM と呼ばれます。デジタル著作権管理とは何の関係もありません) に移動され、3D 高速化機能への一貫した抽象化されたインターフェイスが提供されるようになりました。

現時点では、必要カーネル側の DRM モジュールをロードする必要があります。ただし、それがない場合は、X セッションがソフトウェア レンダリング 3D にフォールバックする可能性があります。これはハードウェア 3D よりもかなり遅く、電力を消費します。実行すると、glxinfoこれに関する情報が表示されます。

ウェイランドは少し違う話カーネルとクライアント アプリケーションの間に位置します。Wayland では、X サーバーは別のクライアント アプリケーションであり、ルート ウィンドウを別のものとして表示します。Wayland はハードウェアとの通信 (代わりに X が Wayland と通信) の役割を担います。プロジェクトはまだ開発中であるため、最終的にどうなるかはわかりませんが、私の理解では、3D レンダリングにはカーネルのサポートがまだ必要です。

Waylandアーキテクチャ図からも明らかです。左は現代のXデスクトップの現状、右は提案されているWaylandアーキテクチャです。Waylandコンポジターはハードウェアと通信するXサーバーを置き換えますが、カーネルインフラストラクチャ — そのため、適切なカーネルサポートが必要になります。実際、プロジェクトの目的を考えると、もっとさらに優れた抽象化のために、これらの機能はカーネルに移行する必要があります。Wayland は、X サーバーと同様に、依然としてグラフィックス ハードウェアに依存しています。

ここに画像の説明を入力してください

関連情報