web-dev-qa-db-ja.com

XorgとGnome / KDE / Xfceの違い

UNIXシステムについてもっと学びたいのですが、かなり簡単な質問があると思います。 Xの用途を知っていると思います。これにより、アプリケーションのUI(他のものも含む)を表示するための標準が提供されます。

しかし、なぜGnome/KDEが必要で、Xとどのように関連しているのでしょうか。私は彼らがアプリケーションとGUIの間のある種のインターフェースとしてXを使用していると思ったので、インターフェースはアプリケーション間で同じままで、GUIはカスタマイズ可能です。

それは本当ですか、それともGnome/KDEはXから独立していますか?

21
Liess Jemai

(私はGNOMEとXの関係を調べています。私は私の理解のいくつかを共有したいと思います。私はそれを可能な限り論理的な方法で提示します。)

1. GUIは何で構成されていますか?

以下は、GUIの基本コンポーネントの図です。

enter image description here

重要なコンポーネントは 表示サーバー です。いくつかの表示サーバーが利用可能です。といった:

  • X11(主に* nix用)
  • ウェイランド(主に* nix用)
  • ミール(主に* nix用)
  • SurfaceFlinger(これはGoogle Android用です。)
  • Quartz Compositor(これはApple MacOSが使用するものです。)
  • デスクトップウィンドウマネージャー(これはMicrosoft Windowsが使用するものです。)

2. Xとは何ですか?

X、X11、X Window Systemは同義語です。これらはすべて ウィンドウシステム を表しています。 ウィンドウシステムは、グラフィカルユーザーインターフェイスの一種です(前述のようにGUI)WIMP(ウィンドウ、アイコン、メニュー、ポインタ))パラダイムをユーザーに実装しますインターフェース。

ここで は、LinuxシステムとWindowsシステムの両方の主要なウィンドウシステムのリストです。

ウィンドウシステムの主なコンポーネントは通常 ディスプレイサーバー と呼ばれます(ウィンドウシステムはGUIの一種であり、ディスプレイサーバーはGUIの主要部分であるため、当然のことですが)ウィンドウサーバーまたはコンポジターも使用されます。

GUIを実行して表示するアプリケーションは、ディスプレイサーバークライアントです。ディスプレイサーバーとそのクライアントは、通常はディスプレイサーバープロトコルと呼ばれる通信プロトコルを介して相互に通信します。ディスプレイサーバーは、クライアントとユーザーの間のメディエーターです。ディスプレイサーバーは、カーネルからすべての入力を受け取ります。カーネルは、キーボード、ポインティングデバイス、タッチスクリーンなど、接続されているすべての入力デバイスから受け取り、それを正しいクライアントに送信します。ディスプレイサーバーは、クライアントからコンピューターモニターへの出力も行います。 ディスプレイサーバープロトコルは、ネットワーク対応にすることも、ネットワーク透過的にすることもできます。 (ご覧のとおり、基本的にはデータフローとルーティングに関するものであり、ビジュアルデータはデータのままです。)

そして によれば

Xサーバーは、他のプログラムに表示およびユーザー入力サービスを提供するプログラムです。対照的に、ファイルサーバーは他のプログラムにファイルストレージデバイスへのアクセスを提供します。ファイルサーバーは通常、離れた場所にあり、ユーザーは自分がいるマシンからファイルサーバーのサービスを使用します。 対照的に、Xサーバーは通常、配置されているマシンで実行されています;ディスプレイおよびユーザー入力サービスは、マシンで実行されているプログラムや、リモートマシンで実行されているプログラムによって要求される場合があります。

したがって、Xは以下で構成されます。

  • ディスプレイサーバー
  • 表示サーバープロトコル
  • 開発用のいくつかのライブラリ
  • と他のこと

enter image description here

によれば

Xは、GUI環境の基本的なフレームワークを提供します。つまり、ディスプレイデバイスでウィンドウを描画および移動したり、マウスやキーボードを操作したりします。 Xはユーザーインターフェイスを義務付けていません。これは個々のプログラムによって処理されます。そのため、Xベースの環境の視覚的なスタイルは大きく異なります。異なるプログラムは、根本的に異なるインターフェースを提示する場合があります。

言い換えれば、Xはプログラムにウィンドウの描画/移動入力の相互作用のような基本的なことを実行する機能のみを提供します。 Xは視覚スタイルを強制しません。したがって、「...アプリケーションのUIを表示するための標準を提供します...」と言ったことは正しくありません。

3. GNOME/KDEとは

GNOMEとKDEはどちらもLinux デスクトップ環境 です。デスクトップ環境は、オペレーティングシステム上で実行されるプログラムのバンドルです共通のGUIを共有します

しかし、上で述べたように、X11はディスプレイサーバーとして、XlibやXCBなどの一部のライブラリを介して基本的な描画機能のみを提供しますです。このようなライブラリを介してX11に直接インターフェースするアプリケーションは、根本的に異なる視覚スタイルを持つことができます。

では、一般的なGUIを作成する方法は? ウィジェットツールキット が登場しました。 GTK +およびQtなど。それらはWaylandとX11で人気がありますウィンドウシステム

GNOMEはGTK +を使用します。

KDEはQtを使用します。

そして here はX Window Systemデスクトップ環境の比較です。

要約する...

大まかな概念図を描いています。 OSの上の3つの部分は非常にカスタマイズ可能です。そのため、非常に多くの柔軟性(混乱)が生じます。

enter image description here

追加1-1:26 PM 2018年9月21日

そして ここ はQTとGTKについての議論です(多分このスレッドとは無関係です...)

29
smwikipedia

Xorg(および以前のXfree、およびearlierX1 )は、より完全に X Window System ;アプリケーションが「画面」上に描画できるようにします。 Xでリモートにすることができます。Gnome/ KDE/Xfceおよびその他の ウィンドウマネージャー /デスクトップ環境は、境界線やアイコンなどを描画し、アプリケーション自体が最小化および最大化するXで実行される特別なアプリケーションですt。

また、GnomeとKDEはどちらもMS Windows(およびさまざまな程度でWayland)で実行できる(または実行された)ため、そうです(Xとは独立しています(またはそうでなくてもかまいません)。

5
Elliott Frisch