X サーバーは、定義済みの関数のセットを備えたライブラリではなく、サーバーであるのはなぜですか?

X サーバーは、定義済みの関数のセットを備えたライブラリではなく、サーバーであるのはなぜですか?

最近、初めて「X Window Server」という概念に直面しました。それについてたくさん読み、その中核となる概念のほとんどを理解するのに苦労した後 (主に私が「現代のコンピューティング時代」に生まれ、「実際の端末」や「X クライアントを実行するには性能が足りない PC」に触れたことがなかったため)、あることに混乱しました。

X サーバーは、定義済みの関数のセットを備えたライブラリではなく、サーバーであるのはなぜですか?

以前ここで尋ねられたいくつかの質問、特に以下の質問から多くのことを学ぶことができました:

X サーバーは当初、ネットワーク経由の通信もサポートするように設計されたと理解しています。これは、一部の古いコンピューターがグラフィック要素を実行するのに十分な性能がなかったためです。これが、X サーバーがサーバーとして機能するように設計された唯一の理由ですか? ネットワーク経由で「リクエスト」を受信し、「グラフィック要素」で応答するためですか?

X Server がローカルでもサーバーとして機能する他の理由はありますか? おそらく詳細が不足しており、それがまさに私がこれまで学んだすべてを「結び付ける」ために理解しようとしていることです。

可能であれば、過去に端末が X ウィンドウ サーバーとどのように通信していたかの実際の例も教えていただけますか? 想像できるのは、ターミナル コンピューターが多数 (黒い端末画面以外は何も実行されていない) あり、グラフィカル インターフェイスを実行できるコンピューターは 1 台だけという建物です。人々はこのコンピューターを共有して、ターミナル コンピューターと通信し、負荷の高いタスクを実行していたのでしょうか?

ありがとう!

答え1

端末に関して大きな誤解があるようです。

テキスト端末と X11 端末がありました。X11 端末は X サーバーを実行していました。これはシン クライアントとも呼ばれていました。

X サーバーを実行しているワークステーションもあるかもしれません。プロセス サーバーに接続します。地下にある強力なマシンです。

その他の利点は次のとおりです。

  • これは単なるプロセス (グラフィックス ハードウェア、キーボード、およびポインティング デバイスにアクセスできる) ですが、単なるプロセスです。これには利点があります。グラフィックス ハードウェア、キーボード、およびポインティング デバイスにアクセスできないプロセスを作成できます。また、X11-vnc ブリッジを作成する VNC サーバーになることもできます。テストに使用することもできます (人間の代わりにロボット プロセスで制御します)。
  • これは別のプロセスです。コンピューターをマルチコードにアップグレードしました。これらのコアを使用し、ソフトウェアに変更を加える必要はありません (コアは数個まで)。
  • 複数のモニター、キーボード、マウスがある場合、アーキテクチャ的にはそれらを別々のシート (端末) にするのは簡単です。
  • スイッチユーザーの実装が容易になります。
  • 他のプロセスにハードウェアへのアクセスを与えません。ライブラリ アプローチの場合と同様に、より安全です (X11 にはセキュリティ上の問題がいくつかあることに注意してください。これは再設計で解決できます)。
  • ウィンドウ マネージャーも別のプロセスです。これにより、デスクトップ環境を選択できます。つまり、X11 サーバー用のプロセス、ウィンドウ マネージャー用のプロセス、ディスプレイ マネージャー (ログイン サービス) 用のプロセス、その他さまざまなプロセスです。これにより柔軟性が高まり、ログアウトしなくてもデスクトップ環境を変更できます。

答え2

複数のキーボード、その他の入力デバイス、および複数のディスプレイを備えた単一のハードウェア (概念的にはワークステーション) 上で表示サービスを提供および調整するため、サーバーと呼ばれます。

複数のプロセスがローカルまたはリモートで接続し、画面スペース、入力フォーカス、カラー マップ スロット、およびその他のリソースをネゴシエートできます。プロセスは互いに直接ネゴシエートしたり、異なる要求を調整したりすることはできません。X ウィンドウ サーバーは、すべてのクライアント プロセスがワークステーションのすべての機能にアクセスできると認識できるようにするサービスを提供します。

関連情報