コンテンツにスキップ

X Window Programming/X11とUNIXの関係

出典: フリー教科書『ウィキブックス(Wikibooks)』

X11とUNIXの関係

[編集]

X Window Systemの歴史とUNIXでの普及

[編集]

X Window System(以下、X11)は、1984年にMITの計算機科学研究所で開発が始まりました。当初の目標は、ネットワーク越しにグラフィカルなユーザーインターフェース(GUI)を提供することでした。X11は、1987年にリリースされた第11版(X11R1)で現在の基本仕様が確立され、以降、多くの改良が重ねられています。

X11は、特にUNIX環境で広く採用されました。その理由は以下の通りです:

  • UNIXは、ネットワーク機能が強力であり、X11のクライアント/サーバーモデルと自然に統合できた。
  • マルチユーザー環境での操作性向上が求められていたため、リモートディスプレイ機能が重宝された。
  • UNIXのオープンな文化に合致し、X11もオープンソースで提供されたこと。

X11は、BSD UNIXやSystem VといったUNIXシステムに移植され、その後のLinuxのディストリビューションやその他のオペレーティングシステムにも影響を与えました。

UNIXの哲学とX11アーキテクチャの一致点

[編集]

UNIXは「シンプルであること」「モジュール性」「再利用性」を重視した哲学に基づいて設計されています。この哲学はX11のアーキテクチャにも深く反映されています。

UNIXの哲学

[編集]
  1. 小さい部品の組み合わせ: UNIXでは、1つのプログラムは単一の機能に集中し、それを他のプログラムと組み合わせて利用します。
  2. テキストストリーム: 通信の標準としてテキストを利用し、システム間の相互運用性を確保します。
  3. オープンな標準: プログラムとプロトコルが公開され、誰でも拡張可能です。

X11アーキテクチャの対応

[編集]
  • クライアント/サーバーモデル: X11では、Xサーバーが描画処理を担当し、クライアントが指示を送る形で役割を分担しています。この分離は、UNIXの小さな部品の組み合わせという考え方に一致します。
  • プロトコルのオープン性: Xプロトコルは完全に公開されており、さまざまなクライアントアプリケーションが実装可能です。
  • ネットワーク透過性: UNIXのネットワーク能力を活かし、X11はリモート環境でも問題なく動作します。

クライアント/サーバーモデルの概要

[編集]

X11は「クライアント/サーバーモデル」に基づいて設計されています。このモデルは、X11の中核をなす概念であり、UNIXのマルチタスク環境で特に効果を発揮します。

クライアントとサーバーの役割

[編集]
  • Xサーバー: 物理的なディスプレイ、キーボード、マウスを管理し、クライアントからの要求に応じて描画や入力の処理を行います。
  • Xクライアント: ウィンドウ操作や描画命令をサーバーに送信するアプリケーションです。Xクライアントはリモートまたはローカルで動作可能です。

動作の仕組み

[編集]
  1. Xクライアントからサーバーへの接続: `DISPLAY`環境変数を使用して、サーバーのアドレスを指定します。
  2. 描画命令の送信: クライアントはXプロトコルを通じて描画命令を送ります。
  3. 入力イベントの受信: サーバーは、キーボードやマウスの入力イベントをクライアントに送信します。

このモデルにより、X11はローカル環境だけでなくリモート環境にも対応し、柔軟でスケーラブルなGUI環境を提供します。