この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)
出典検索?: "X Window System"
「X11」はこの項目へ転送されています。その他の用法については「X11 (曖昧さ回避)」をご覧ください。
「Xサーバ」はこの項目へ転送されています。レンタルサーバについては「エックスサーバー」をご覧ください。
X Window System
開発元X.Org Foundation
最新版バージョン11, リリース7.7 / 2012年6月6日 (11年前) (2012-06-06)
対応OSクロスプラットフォーム
種別ウインドウシステム
公式サイトX.Org Foundation
テンプレートを表示
GNOME 2.28KDE 4.xXfce 4.6
X Window System(エックスウィンドウシステム、別称:「X11」・「X」など→名称については後述)とは、ビットマップディスプレイ上でウィンドウシステムを提供する表示プロトコルである。リファレンス実装として X.Org Server があり、標準ツールキットとプロトコルを提供し、Unix系オペレーティングシステム (OS) やOpenVMSなどでのグラフィカルユーザインタフェース (GUI) を構築するのに使われる。他の多くの汎用OSにも移植されている。 Xは1984年、マサチューセッツ工科大学が開発した。現在のバージョンであるX11は1987年9月に登場した。現在はX.Org FoundationがXプロジェクトを主導している。リファレンス実装であるversion 11 release 7.3(2007年9月6日)はフリーソフトウェアとしてMIT Licenseおよび類似のライセンスで提供している[1]。 Xは、GUI環境構築のための基本フレームワークやプリミティブを提供する。ウィンドウを画面上に描画したり、移動させたり、マウスやキーボードを使ってやり取りする。Xはユーザインタフェースを規定しない。それは、個々のクライアントプログラムの管理下にある。そのため、Xに基づいた環境の見た目は様々である。プログラムごとにインタフェースは異なる。XはOSの中核 (kernel) には含まれない。アプリケーション層構築の基盤となっている。 それ以前の表示プロトコルとは異なり、Xは表示機器に付属した(あるいは統合された)システムではない。ネットワークコネクションを通して使うことを意図して設計している。X の特徴は、Xプロトコルという、画面表示や入出力時に利用するプロトコルがネットワーク透過だということである。そのため、手元のマシンの表示と遠隔のマシンとの表示で表示方法に差がない。このことは、ネットワークを利用したUNIXワークステーション群でGUI表示を行うのに便利であり、UNIXマシンの普及と共にXも普及していった。 Xはクライアントサーバモデルに基づき、Xサーバが各種「クライアント」プログラムと通信する。サーバはグラフィカルな出力要求を受け付け、(マウス、キーボード、タッチパネルなどからの)ユーザー入力をクライアントに送信する。Xプロトコル自身はハードウェア環境に依存しない。そのため、X Window Systemが動作するマシンはUNIXマシンだけとは限らない。Windows上でXサーバを動作させる、通称PC Xサーバというソフトウェアや、ハードウェア(ファームウエア)でXプロトコルを処理する、通称X端末も存在する。特にX端末は、UNIXマシンが非常に高価な時代に、GUIだけを安価に表示、処理できる機器として良く利用された。 このクライアントサーバという用語(ユーザーの端末、サーバ、クライアントであるアプリケーション)は、しばしば新規のXユーザーを混乱させる。なぜなら用語が逆に使われているように見えるからである。しかしXはエンドユーザーではなく、むしろアプリケーションからみた考え方をしている。XはディスプレイやI/Oサービスをアプリケーションに提供している。そのためサーバである。アプリケーションはこれらのサービスを利用している。そのためアプリケーションはクライアントである。この例では、Xサーバがキーボードとマウスの入力を受け取り、画面に表示する。ウェブブラウザと端末エミュレータがローカルに動作しており、system updaterがリモートのサーバ上で動作しているが、それを制御しているのはローカルのマシンである。リモート・アプリケーションはローカルに動作するのと何ら変わりなく動作することに注意されたい。 サーバとクライアント間の通信プロトコルは、ネットワーク透過性を備える。クライアントとサーバは同じマシン上でも動作するし、別々のマシン上でも動作する。双方のアーキテクチャやOSが違っていても構わない。クライアントとサーバ間の通信は、インターネット上でもトンネリングによって安全に行うことができる。 Xクライアント自体がXサーバを内包し、複数のクライアントに対してサーバとして動作する構成も可能である。これを「Xネスティング」と呼ぶ。XnestやXephyr
概要
アーキテクチャ詳細は「X Window System プロトコルとアーキテクチャ」を参照詳細は「X Window System コアプロトコル」を参照
リモートのクライアントプログラムをローカルなサーバで表示するには、端末エミュレータのウィンドウを開き、telnetあるいはsshでリモートのクライアントアプリケーション(あるいはシェル)を起動し、入出力先をローカルに指定してクライアントを起動する(すなわち、export DISPLAY=[ユーザーのマシン]:0 をリモートのマシン上で設定する)。クライアントアプリケーションはローカルサーバと接続され、ローカルマシンのディスプレイと入力機器を使って動作する。またローカルマシンは、リモートマシンに接続しクライアントアプリケーションを起動する小さなプログラムを実行することもできる。
リモートクライアントの実用的な利用例として、次のようなものがある。
リモートマシンの管理をグラフィカルに行う。