X Windowsシステムがサーバーを使用するのはなぜですか?

X Windowsシステムがサーバーを使用するのはなぜですか?

私はWindowsシステムになぜサーバーが必要なのかわかりませんでした。デスクトップ環境、ディスプレイマネージャ、ウィンドウマネージャにxorg-serverが必要なのはなぜですか?グラフィックカードの上に抽象化レイヤーしかありませんか? Windowsシステムがクライアントサーバーモデルを使用するのはなぜですか?名前付きパイプを介してプロセス間通信を実行する方が簡単ではありませんか?

ベストアンサー1

私はあなたが何らかの「サーバー」が必要であることに気づいたと思います。各クライアント(デスクトップ環境、ウィンドウマネージャ、またはウィンドウプログラム)は、他のすべてのクライアントとディスプレイを共有し、ハードウェアの詳細やディスプレイを使用している他の人を知らなくてもコンテンツを表示できる必要があります。したがって、X11サーバーはIPCイン​​ターフェースを提供し、前述の抽象化と共有層を提供します。

X11は、名前付きパイプで実行できますが、名前付きパイプでは実行できない2つの大きなタスクがあります。

  • 名前付きパイプは一方向にのみ通信します。
  • 両方のプロセスが名前付きパイプの「転送」の末尾にデータを挿入し始めると、データは一緒に混在します。

実際、ほとんどのXクライアントは、UNIXドメインソケットと呼ばれる「新しく拡張された」名前付きパイプを使用してサーバーと通信します。これは、プロセスが双方向で通信し、誰が何を言ったのかを追跡できることを除いて、名前付きパイプと非常によく似ています。これはネットワーキングが実行する必要があるすべての操作なので、UNIXドメインソケットはネットワーク通信を提供するTCP / IPソケットと同じプログラミングインターフェースを使用します。

しかし、ここでは、「クライアント以外のホストでサーバーを実行するとどうなりますか?」と言うのは簡単です。 UNIXソケットの代わりにTCPソケットを使用するだけです。チャジャン、これはWindows RDPよりも数年前の方法です。リモートデスクトッププロトコル。ssh4つの異なるリモートホストに接続し、各ホストで(グラフィックパッケージマネージャ)を実行でき、synaptic4つのウィンドウがすべて自分のローカルコンピュータのディスプレイに表示されます。

おすすめ記事