Linuxのグラフィックスのさまざまな部分についての理解を整理しようとしていますが、次の各概念が果たす役割について混乱しています。
私の質問:
この質問の私の目標は、どのプロジェクトがLinuxグラフィックスエクスペリエンスのどの部分に貢献しているかを理解することです。
[〜#〜]更新[〜#〜]http://blog.mecheye.net/2012/06/the-linux -graphics-stack / には、探していた詳細がたくさんあります。
「グラフィックスドライバー」という用語は、いくつかの異なるものを指すために使用されます。それらの1つはカーネルドライバーです。カーネルドライバは、ほとんどの場合、ビデオモードを設定するだけで、カードとの間でデータをやり取りしやすくなります。また、通常、ファームウェアをカードのGPUにダウンロードします。ファームウェアはGPU自体が実行するプログラムですが、残念ながらグラフィックスベンダーはバイナリBLOBとしてのみ提供しているため、ソースコードを見ることができません。
その上で、通常Xorgを実行しています。Xorgには、汎用のX11またはOpenGL描画呼び出しをカードが理解できるコマンドに変換し、それらをカードに送信して実行する独自のドライバーがあります。また、GPUが実行するコマンドとサポートしないコマンドによっては、作業自体の一部を実行する場合もあります。 OpenGL呼び出しの場合、ダイレクトレンダリングインフラストラクチャでは、許容可能なパフォーマンスを得るために、ドライバーのこの部分をXサーバーではなくクライアントアプリケーションで実際に直接実行できます。また、起動時にXorgおよびカーネルドライバーと連携して支援することにより、クライアントアプリケーションのドライバーがコマンドを直接GPUに送信できるようにします。
WaylandとMirは、簡略化されたタイプのディスプレイサーバーとしてXorgに取って代わることになっています。
Unityは、シェル(デスクトップ/ランチャーを提供)とコンポジットウィンドウマネージャーの両方を1つにまとめたものです。
GNOMEとKDEはデスクトップ環境です。それらは多くのコンポーネントで構成される大規模なプロジェクトです。それらの中核は、GNOME用のGTKとKDE用のQtであるそれぞれのアプリケーションツールキットです。これは、アプリケーションの記述に使用されるライブラリフレームワークであり、他のすべてが構築される基盤を提供します。それらが提供する基本的なサービスには、イベントとオブジェクトの処理、Windows、基本的な描画機能、I/Oなどがあります。
nouveau
ドライバでビルドされていると、後で独自のNVIDIAドライバをロードするときに競合が発生するため、それらはカーネルから除外されたと思います。metacity
を使用します)。そうは言っても、 awesome 、 xmonad 、 openbox のようなスタンドアロンのウィンドウマネージャー(デスクトップ環境なし)を実行できます。どのコンポーネントがどの役割を果たすかについて: