X Windows Systemは通称X11ともいわれ、多くのUNIXやLinuxで使用されるGUIシステムです。
LPICの重要項目でもあるので、このシステムの基本的なアーキテクチャをまとめました。
X Window Systemはサーバー/クライアント方式です。
クライアントのリクエストがあってサーバーがレスポンスで返します。
具体的な流れは以下の通りです。
X Window Systemの処理の流れ
①キーボードやマウスからの入力をXサーバーで受け取る
②Xサーバーは入力データを受け付けて、Xクライアント(アプリ)にデータを送る。
③Xクライアントは受け取ったデータを処理して、処理結果をXサーバーへ送る
④XサーバーはXクライアントから受け取った処理結果をディスプレイに出力する
X Window Systemの設定
設定ファイルは/etc/X11/xorg.confに保存されています。
Xorg.confは複数のセクションから成り立っています。
Xorg.confのセクション
ServerLayout:入出力デバイスに関する設定
Files :フォント関連
Module :Xサーバーがロード予定のモジュール設定
InputDevice :キーボードやマウスなどの入力デバイスの設定
Monitor :モニタータイプの設定
Screen :ディスプレイの表示色や画面サイズなどの設定
セクションの書式は「Section “セクション名”」 ~ EndSection
のようにあらわします。
X Window System ネットワーク経由での利用
クライアント・サーバー方式を使用しているため、XサーバーとXクライアントは異なるマシンで稼働することができます。
XクライアントからXサーバーへアクセスするにはxhostコマンドを使います。
・xhostコマンド
Xサーバーへのアクセス許可・拒否をコントロールするコマンド
書式:xhost [+,-] ホスト名
ホスト名を指定しない場合はすべてのホストに対してアクセスコントロールします。
例:Xクライアント(192.168.1.20)とXサーバー(192.168.1.10)でxeyesを起動
1 xhost +192.168.1.20
2 DISPLAY = 192.168.1.10:0.0
3 export DISPLAY
4 xeyes &
またxhostはホスト名とIPアドレスでアクセス許可するため、クライアントが認証なしにサーバーへアクセスできてしまうという問題があり、セキュリティ上好ましくありません。
認証を行うsshのポートフォワーディングを利用するなどの対策が必要になります。
またxauthコマンドで、ユーザー単位でXサーバーへのアクセスを制限することができます。
X Window Systemクライアント・サーバーの起動シーケンス
XクライアントとXサーバーは以下の起動の流れです。
①startxコマンド(usr/bin/startxのスクリプト実行)
②xinitコマンド
③~/.xinitrc ない場合は、/etc/X11/xinit/xinitrc
④~/.xsession ない場合は、~/.Xclients
⑤統合デスクトップ環境が起動
統合デスクトップとはGUI環境とアプリケーションを総合的に扱える仕組みです。
この環境でディスプレイマネージャーやウィンドウマネージャーなどの細かい設定が可能です。
細かい話はまた別の記事で。
■参考
https://www.infraeye.com/study/linuxz37.html
https://www.infraeye.com/study/linuxz38.html