回答:
(私はGNOMEとXの関係を調べています。私の理解のいくつかを共有したいと思います。私はそれを可能な限り論理的な方法で提示します。)
以下は、GUIの基本コンポーネントの図です。
キーコンポーネントはディスプレイサーバーです。使用可能なディスプレイサーバーがいくつかあります。といった:
X、X11、X Window Systemは同義語です。それらはすべてウィンドウシステムの略です。ウィンドウシステムは、ユーザーインターフェイスのWIMP(ウィンドウ、アイコン、メニュー、ポインター)パラダイムを実装する一種のグラフィカルユーザーインターフェイス(前述のGUI)です。
LinuxおよびWindowsシステムの主要なウィンドウシステムのリストを次に示します。
任意のウインドウシステムの主要コンポーネントは、通常と呼ばれるディスプレイ・サーバのような他の名前が、(ウィンドウイングシステムは、GUIの一種であり、ディスプレイ・サーバは、任意のGUIの重要な部分であるため、驚き)ウィンドウサーバまたはコンポがまた使用されています。
GUIを実行して表示するアプリケーションはすべて、ディスプレイサーバーのクライアントです。ディスプレイサーバーとそのクライアントは、通常ディスプレイサーバープロトコルと呼ばれる通信プロトコルを介して互いに通信します。ディスプレイサーバーは、クライアントとユーザーの間のメディエーターです。ディスプレイサーバーは、カーネルからすべての入力を受信します。カーネルは、キーボード、ポインティングデバイス、タッチスクリーンなど、接続されているすべての入力デバイスから受信し、それを正しいクライアントに送信します。ディスプレイサーバーは、クライアントからコンピューターモニターへの出力も行います。ディスプレイ・サーバ・プロトコルネットワーク対応にすることも、ネットワーク透過にすることもできます。(ご覧のとおり、基本的にはデータフローとルーティングに関するものであり、ビジュアルデータはデータです。)
そしてここによると:
Xサーバーは、他のプログラムに表示およびユーザー入力サービスを提供するプログラムです。これに対して、ファイルサーバーは、他のプログラムにファイルストレージデバイスへのアクセスを提供します。ファイルサーバーは通常、離れた場所にあり、ユーザーは自分がいるマシンからファイルサーバーのサービスを使用します。対照的に、Xサーバーは通常、ユーザーがいるマシン上で実行されます。ディスプレイおよびユーザー入力サービスは、リモートマシンで実行されているプログラムだけでなく、マシンで実行されているプログラムによっても要求される場合があります。
したがって、Xは次の要素で構成されます。
ここによると:
Xは、GUI環境の基本的なフレームワークを提供します。つまり、ディスプレイデバイス上でウィンドウを描画および移動したり、マウスやキーボードを操作したりします。Xはユーザーインターフェイスを義務付けていません。これは個々のプログラムによって処理されます。そのため、Xベースの環境の視覚的なスタイルは大きく異なります。異なるプログラムは根本的に異なるインターフェースを提供する場合があります。
言い換えれば、Xはプログラムに、ウィンドウの描画/移動や入力の相互作用などの基本的なことを実行する機能のみを提供します。Xは視覚的なスタイルを強制しません。つまり、「... UIを表示するための標準をアプリケーションに与える」というのは正しくありません。
GNOMEとKDEはどちらもLinux デスクトップ環境です。デスクトップ環境は、オペレーティングシステム上で実行されるプログラムのバンドルであり、共通のGUIを共有します。
しかし、前述したように、ディスプレイサーバーとしてのX11は、XlibやXCBなどの一部のライブラリを介して基本的な描画機能のみを提供します。このようなライブラリを介してX11を直接インターフェースするアプリケーションは、根本的に異なる視覚スタイルを持つことができます。
では、一般的なGUIを作成する方法は?これがウィジェットツールキットです。以下のようなGTK +とQtの。それらはWaylandおよびX11 ウィンドウシステムで人気があります。
GNOMEはGTK +を使用します。
KDEはQtを使用します。
そして、ここでの X Window Systemのデスクトップ環境の比較です。
大まかな概念図を描いています。OSの上の3つの部分は非常にカスタマイズ可能です。そのため、非常に多くの柔軟性(混乱)が生じます。
そして、ここでは QTとGTK(ただし、このスレッドに多分offtopic ...)に関するいくつかの議論があります
Xorg(および以前のXfree、以前の X10)は、より完全にX Window Systemと呼ばれるプロトコルのサーバーです。アプリケーションが「画面」上に描画できるようにします。Xでリモートにすることができます。Gnome/ KDE / Xfceやその他のウィンドウマネージャー /デスクトップ環境は、境界線やアイコンなどを描画し、アプリケーション自体が行わない最小化および最大化するXで実行される特別なアプリケーションです。
また、GnomeとKDEはどちらもMS Windows(およびさまざまな程度のWayland)で実行できる(または実行された)ため、そうです(Xからは独立しています(または独立している可能性があります)。