XorgとGnome / KDE / Xfceの違い


19

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

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

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

回答:


26

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

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

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

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

キーコンポーネントはディスプレイサーバーです。使用可能なディスプレイサーバーがいくつかあります。といった:

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

2. Xとは

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

LinuxおよびWindowsシステムの主要なウィンドウシステムのリストを次に示します。

任意のウインドウシステムの主要コンポーネントは、通常と呼ばれるディスプレイ・サーバのような他の名前が、(ウィンドウイングシステムは、GUIの一種であり、ディスプレイ・サーバは、任意のGUIの重要な部分であるため、驚き)ウィンドウサーバまたはコンポがまた使用されています。

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

そしてここによると:

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

したがって、Xは次の要素で構成されます。

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

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

ここによると:

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を使用します。

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

要約する...

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

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

追加1-1:26 PM 2018/09/21

そして、ここでは QTとGTK(ただし、このスレッドに多分offtopic ...)に関するいくつかの議論があります


「ユーザーの前でソフトウェアに「サーバー」という用語が適用されているという事実は、リモートコンピューター上のサービスのクライアントであるプログラムに慣れているユーザーにとっては驚くべきことです。ここでは、リモートデータベースがローカルアプリのリソースであるよりも、ユーザーのグラフィックディスプレイと入力デバイスは、ユーザーと通信するためにユーザーのグラフィックスと入力デバイスを共有する必要があるローカルおよびリモートでホストされたXクライアントプログラムの両方でローカルXサーバーによって利用できるリソースになります。」(wikiを参照)
yaobin

1
「Xサーバーは通常、あなたがいるマシンで実行されています」という文で混乱する場合は、上のコメントを参照してください。@smwikipediaにこのような信じられないほど素晴らしい答えをくれてありがとう!
-yaobin

5

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.