GUIプログラミングで特定のことを行う方法を学習する過程で(たとえば、アプリケーション用に画面上のスペースを予約する)、通常はLinux上のX11であるWindow Managerについてさらに学習する必要があります(ディストリビューションがあるかどうかもわかりません) 、X11以外のものを使用しますが、まだ実装されていないWaylandについて聞いたことがあります。)
私はプログラミングを始めたばかりで、いらいらします。だから私はそれに飛び込んでいます。今、私はICCCMを読んでいます。もっと学びたいと思っています。ただし、このドキュメントは、私よりも(方法)を知っている大衆を対象としています。それで、私はいくつかの情報に出くわしました、そして、私はいくつかの説明を得たいです。
ICCCM引用のセクション2:
通常、所有者と要求者の間で転送されるすべてのデータは、Xバージョン11環境のサーバーを経由する必要があることに注意してください。クライアントは、別のクライアントが同じファイルを開いたり、直接通信したりできるとは想定できません。他のクライアントは、完全に異なるネットワークメカニズムを使用してサーバーと通信している場合があります(たとえば、1つのクライアントがDECnetと他のTCP / IPである場合があります)。したがって、データへの間接参照(ファイル名、ホスト名、ポート番号など)の受け渡しは、両方のクライアントが明確に同意した場合にのみ許可されます。
私の知る限り、X Window ManagerはTop of 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 Serverを使用して、またはD-Busを使用して相互作用するプログラムの違いは何ですか?*
この情報がなんとなくあいまいなままであるのは残念ですが、学ぶのが難しくなりますが、これに少し光を当てることができれば幸いです:)ありがとう。