X、Xorg、D-Bus:違いは何ですか?

X、Xorg、D-Bus:違いは何ですか?

GUIプログラミングで特定のタスク(アプリケーション用の画面スペースの予約など)を実行する方法を学ぶ過程で、通常LinuxのX11(ディストリビューションがあるかどうかわからない)などのウィンドウマネージャについてもっと学ぶ必要がありました。 X11以外のものを使うと聞いたけどウェイランドまだまだどのバージョンでも実装されていません。 )

私はプログラミングが初めて、辛抱強く、ただ掘り下げた。今私はICCCMを読んでいて、もっと学びたいです。しかし、この文書は私よりも多くを知っている大衆を対象としています。だから、いくつかの情報を見つけて、明確な説明を聞きたいです。

第2章ICCCM引用:

所有者とリクエスタ間で転送されるすべてのデータは、通常、Xバージョン11環境のサーバーを通過する必要があります。クライアントは、他のクライアントが同じファイルを開くことも、直接通信できるとは想定できません。他のクライアントはまったく異なるネットワークメカニズムを介してサーバーと通信できます。たとえば、あるクライアントはDECnetで、もう一方のクライアントはTCP / IPです。したがって、データ(ファイル名、ホスト名、ポート番号など)への間接参照転送は、2つのクライアントが明示的に同意した場合にのみ許可されます。

私が理解したのは、X Window ManagerはX Serverの上に構築されました(Wikipediaのおかげで)。上記の引用は、クライアントがDECnetまたはTCP / IPを使用してサーバーと通信できることを示しています。今まで私は「サーバー」が比喩的な表現だと思っていましたが、今は気になりました。Xサーバーは「Webサーバー」のサーバーですか?機能/定義をどのように理解する必要がありますか?

その後、X11、Xorg、X Server、および/またはX Window Managerが頻繁に参照されます。混乱します。X11はXorgとX Window Managerを含むバンドルですか?それでは、このX11バンドルには別のものがありますか?

Xにはマウス、キーボード、または他の種類の入力も必要です。これもXサーバー機能の一部ですか? X Window Managerはディスプレイにのみ焦点を当てていますか?

最後に、上記の引用には、クライアントが互いに通信できるかどうかも記載されています。これは私が学習目的に使用したD-Busを思い出させます。 D-Busを使用すると、ウィンドウイベントを実行することもできます。これにより、プログラムが互いにどのように通信するかについて少し混乱しました。Xサーバーを使用するか、D-Busを使用して対話するプログラムの違いは何ですか? *

この情報がまだ多少曖昧で学習が難しいことは残念ですが、これについての洞察を得ることができることを願っています。 :) ありがとうございます。

ベストアンサー1

ここで5つの質問をしました。 5つの質問をする方が良いと思います。 ☺ しかし、私が答えます。

  1. Xは、特定のプロトコル(Xプロトコル)を使用して着信接続を受信して​​応答をエクスポートするプロセスであることから、「Webサーバー」と比較できるサーバーです。接続は、ローカルホスト上にあるか、ネットワーク経由でアクセスできるリモートホスト上にあるXクライアントで行われます。

  2. X11はXプロトコルの「主なバージョン」であり、最初から継続的に開発されてきました。 X11は最新のプロトコルであり、最も一般的なプロトコルです。 (XorgはMac OS X上で動作するXサーバーブランチのコレクションの実装です。)

  3. 「ウィンドウマネージャ」は、ウィンドウを管理するXクライアントである。通常、傾斜/罫線、影、ボタンを含むメニューバーなどを使用して、ウィンドウを装飾し、ウィンドウのドラッグ、サイズ変更、または再配置などをサポートするウィンドウ配置ロジックを処理します。

  4. Xは入力を必要とし、Xとカーネルはそれらの入力を共同で管理します。歴史的に、Xは多くのハードウェア管理タスクを直接行ってきました。現代では、LinuxプラットフォームではXが徐々に「より小さくなり」、この責任をLinuxカーネルに委任しました。これの利点は次のとおりです。Xコードベースは小さいです。同じタスクを管理しようとしているカーネルとXの間に「交差線」が少なくなります。 (Linuxイベントインターフェースは、マウスなどのイベントがカーネルとそのドライバによって解釈され、/dev/input/event*Xサーバーで使用できるように標準インターフェースに変換される例です。)他のプラットフォーム(BSD、Solaris)では、Xは依然として非常に単一です。

  5. プロセス間で通信する方法は非常に多いです。私はXクライアントがXプロトコルを介して対話できると信じています(例えば、伝統的なプロトコルはそれを反映しています)。 D-Busは、他の方法の欠点を解決するように設計された近代的なプロセス間通信(IPC)技術です。 X 固有ではありません。

おすすめ記事