X Window System(通称はXまたはX11)はUNIXやLinuxでGUIを実現するために使用されています。Linuxで標準的に使用されているX Window SystemはX.Orgです。
X Window Systemはクライアント・サーバ方式を使用しているため、XサーバとXクライアントは異なるマシンで動作していても使用できます。例えば、Xサーバが動作するマシンの画面上に、異なるマシンで起動したXクライアントプログラムを表示できます。
Xサーバは、キーボードやディスプレイなどのハードウェアを管理するソフトウェアで、XクライアントはWebブラウザやメーラーなどのGUIアプリケーションです。
X.Orgの設定ファイルは「/etc/X11/xorg.conf」。
各セクションは「Section "セクション名"」から始まり、「EndSection」で終わります。
・xhostによる認証
Xサーバへのアクセスを許可するには「xhost」コマンドを使用。
xhost [[+-]ホスト名 ...]
Xクライアント(192.168.1.20)上で実行したプログラム(xeyes)をXサーバ(192.168.1.10)上で表示する場合、以下のような手順が必要です。
■Xサーバ側
xhostコマンドで、「192.168.1.20」からのアクセスを許可します。
$ xhost +192.168.1.20
192.168.1.20 being added to access control list
■Xクライアント側
環境変数DISPLAYで表示先(Xサーバ)を指定し、Xサーバに表示させたいプログラム(xeyes)を実行します。
環境変数DISPLAYの書式は以下の通りです。
[Xサーバ]:ディスプレイ番号.スクリーン番号
デフォルトのディスプレイを使用する場合はディスプレイ番号に0を指定します。スクリーン番号は省略できます。
複数のXサーバが起動している場合は、ディスプレイ番号0から1, 2, 3...の順で番号を指定します。
複数のモニターが接続されている場合は、スクリーン番号0から1, 2, 3...の順で番号を指定します。
$ DISPLAY=192.168.1.10:0
$ export DISPLAY
$ xeyes &
上記コマンドを実行するとXサーバ側でxeyesプログラムが表示されます。
xeyesコマンドは、目玉のグラフィックがマウスカーソルを追うプログラムです。
・xauthによる認証
xhostコマンドはホスト単位でアクセスを許可するため、セキュリティ上好ましくありません。xauthコマンドはユーザ単位でXサーバへのアクセスを制限します。
■Xサーバ側
xauth listコマンドでXサーバごとの接続に使用される資格情報が表示されます。
■Xクライアント側
xauthのaddコマンドで、接続ユーザの「~/.Xauthority」ファイル(クライアント認証ファイル)にXサーバと同じ資格情報を保存します。Xサーバと資格情報が一致したユーザのみがアクセスできるようになります。
X Window Systemの主なプログラムにディスプレイマネージャ、ウィンドウマネージャ、統合デスクトップ環境があります。
■ディスプレイマネージャ
ディスプレイマネージャはランレベルが5の時にユーザにグラフィカルログイン画面(GUI環境のログイン)を提供し、ログイン認証、ログイン後のデスクトップ環境の準備を行います。
SysVinitの場合は、initが起動する「prefdm(Preferred Display Manager)」が環境変数DISPLAYMANAGERを読み取って必要なディスプレイマネージャーが起動されます。systemdの場合は「display-manager.service」として起動されますが、これはgdmやkdmなど、使用するディスプレイマネージャーサービスへのシンボリックリンクとなっています。
指定したディスプレイマネージャが起動すると、ユーザ名とパスワードを入力するログインプロンプトの認証画面が表示されます。
主なディスプレイマネージャは以下の通り。
・XDM(Xディスプレイマネージャ)
X.Org標準のディスプレイマネージャです。
XDMCPプロトコルを使用して、ネットワーク上にあるX端末にもグラフィカルログイン画面を提供します。
XDMの設定ファイルは「/etc/X11/xdm」ディレクトリに格納されています。
・GDM(GNOMEディスプレイマネージャ)
GNOME標準のディスプレイマネージャ
GDMの設定ファイルは「/etc/X11/gdm」ディレクトリに格納されています(ディストリビューションによって異なる)。
・KDM(KDEディスプレイマネージャ)
KDE標準のディスプレイマネージャ
KDMの設定ファイルは「/etc/X11/kdm」ディレクトリに格納されています(ディストリビューションによって異なる)。
■ウィンドウマネージャ
ウィンドウの概観、アイコンやカーソル、メニューなどを提供するXクライアントのアプリケーションです。
最小限の機能を備えた「twm」、KDE標準の「kWin」などがあります。
■統合デスクトップ環境
ディスプレイマネージャやウィンドウマネージャのGUI環境とアプリケーションをまとめて統一的な操作を提供します。