Linuxグラフィックスタックはどのように構成されていますか?

Linuxグラフィックスタックはどのように構成されていますか?

Linuxグラフィックススタックがどのように構成されているか(図とともに)説明できる人はいますか?私はX / GTK / GNOME / KDEなどについて聞いていますが、彼らが実際に何をしているのか、そして彼らがお互いやスタックの残りの部分とどのようにやり取りするのかわかりません。 UnityとWaylandはどのように統合されますか?

ベストアンサー1

X Windowsシステムはクライアント - サーバーアーキテクチャを使用します。 Xサーバーはディスプレイ(モニター+入力デバイス)を持つコンピューターで実行されますが、Xクライアントは別のコンピューターで実行でき、Xプロトコルを使用してXサーバーに接続できます(直接接続ではなくXlibなどのライブラリを使用して接続)。またはより現代的な非ブロックイベントベースのXCB)。 Xプロトコルは拡張可能に設計されており、多くの拡張があります(参考資料を参照xdpyinfo(1))。

Xサーバーは、ウィンドウの作成と削除、描画操作の実行(最近、ほとんどの描画はクライアント上で実行され、イメージとしてサーバーに送信されます)、ウィンドウへのイベント転送などの低レベルのタスクのみを実行します。 Xサーバーがあります。これは、実行X :1 &(他のXサーバーでまだ使用されていないランダムな番号を使用)またはXephyr :1 &(Xephyrが現在Xサーバーに組み込まれているXサーバーを実行)実行してから実行し、新しいxterm -display :1 &Xサーバーに切り替えることによって実行されます(必要な場合があります)。 X認証設定)xauth(1)

ご覧のとおり、Xサーバーはほとんど実行されず、タイトルバーを描画せず、ウィンドウの最小化/アイコン化を実行せず、ウィンドウの配置を管理しません...もちろん、コマンドを手動で実行することもできます。などのコントロールウィンドウの配置xterm -geometry -0-0。ただし、通常は上記のタスクを実行するための特別なXクライアントがあります。このクライアントはウィンドウマネージャ。一度に1つのウィンドウマネージャのみを有効にできます。前のコマンドを使用してベアXサーバーがまだ開いている場合は、そのサーバーでウィンドウマネージャ(たとえば、、、、、、、、... )twmを実行してみることができます。metacitykwincompizlarswmpawm

私たちが言ったように、ツールキット、例:Xaw、GTK、Qt、FLTK、...

デスクトップ環境は、統合されたユーザーエクスペリエンスを提供するように設計されたプログラムの集まりです。したがって、デスクトップ環境は通常、パネル、アプリケーションランチャー、システムトレイ、コントロールパネル、および構成インフラストラクチャ(設定が保存される場所)を提供します。有名なデスクトップ環境には、KDE(Qtツールキットを使用して構築)、Gnome(GTKを使用)、Enlightenment(独自のツールキットライブラリを使用)などがあります。

いくつかの最新のデスクトップエフェクトは、3Dハードウェアを使用して最もよく実装されています。だから新しいコンポーネントが登場しました。複合マネージャ。 X拡張(XComposite拡張)は、ウィンドウの内容を複合マネージャに送信します。合成マネージャはそれをテクスチャに変換し、OpenGLを介して3Dハードウェアを使用してさまざまな方法(アルファブレンディング、3D投影など)で合成します。

しばらく前に、Xサーバーはハードウェアデバイスと直接通信していました。デバイス処理の大部分がオペレーティングシステムカーネルであるDRI(Xが3Dハードウェアにアクセスできるようにする)に移動されました。そして直接レンダリングクライアント)、evdev(入力デバイス処理用の統合インターフェイス)、KMS(グラフィックモード設定をカーネルに移動)、GEM / TTM(テクスチャメモリ管理)。

したがって、デバイス処理の複雑さがXの外側にあるため、単純化されたウィンドウシステムを実験するのが簡単になりました。ウェイランド複合管理者の概念に基づくウィンドウシステム、つまりウィンドウシステムは複合管理者です。 WaylandはXで移動したデバイス処理を活用し、レンダリングにOpenGLを使用します。

Unityの場合は、ネットブックに優しいユーザーインターフェイスを持つように設計されたデスクトップ環境です。

おすすめ記事