アスタリスク インフラTECH wiki

X Window System

最終更新:

saijou

- view
メンバー限定 登録/ログイン
■X Window Systemとは?
 GUIを実現させる為のシステムです。Linuxで使用されるXとしてはX Free86が主流だったが、今は派生であるX.OrgがLinuxで使用されている。
 X.Orgの構成は
・Xサーバ ・Xクライアント ・Xライブラリ ・ディスプレイマネージャ ・ファイルフォントなどのデータ類
 があります。
 サーバとクライアントがある事に気付いたと思います。
 X Window Systemは、ネットワークでの利用を実現させるためのシステムでもあるために、XサーバとXクライアントが用意されています。
 まず、Xサーバは
・モニタ
・ビデオカード
・キーボード
 などのハードウェアを管理をします。
 Xクライアントは
・Webブラウザ
・オフィスアプリケーション
 などのアプリケーションを管理を管理します。
 X Window Systemはネットワークでの利用を想定しているので、今、手元にあるPCがXサーバで遠隔地にXクライアントがあっても
 遠隔地のXクライアントを利用できます。
 もちろん、手元のPCがXサーバ兼、Xクライアントになる事もあります。
 UbuntuやCentOSなど、クライアントとして利用している限りは後者になります。
 図にすると、以下のようなイメージ。
127.0.0.1
----------  6000/tcp            ----------  参照
| X Server | <----------------- | X client | ===> DISPLAY環境変数
----------        通信         ----------       例:(127.0.0.1:0.0)
 || 表示
 V
DISPLAY(0)
 127.0.0.1というのは、自分のPC(localhost)のIPで、6000/tcp ポートと通信して0番のディスプレイ使用。
 自分のPCで通信となると、ややこしく感じますが、同じPC内でもサーバとクライアントが
 あるので、portを指定する訳です。

 じゃあ、別ネットワークのXクライアントにあるアプリケーションを使用する場合は、どうなるの??

 意図しない相手からの接続を受け付けてしまうと、作業中に余計な邪魔が入ったり悪戯される可能性があり
 デスクトップ上で作業をするにあたって問題が発生します。セキュリティ的にも大事です。
 そんな理由で、デフォルトでXサーバに接続できるのは自分のPC(localhost)だけになっています。
 そこで、まずはXサーバに接続できるホストの一覧を確認しましょう。
 使用するコマンドは「xhost」です。
$ xhost
access control enabled, only authorized clients can connect
INET:aster.com
INET:localhost
INET:aster
INET:aster
LOCAL:
 自分以外の登録はありません。※asterが自分だと思ってください。
 Xクライアントは「isk」って事にします。
 「xhost」コマンドを使用してiskという名前のXクライアントからの接続を許可します。
 書式は以下の通りです。
 「xhost +か- ホスト名」 ※+や-とホスト名の間にスペースはありません。

オプション	説明					
+ホスト名	 指定したホストをXサーバ許可リストに追加 ※+がなくてもOK					
-ホスト名	 指定したホストをXサーバ許可リストから削除					
+	 すべてのホストからの接続を許可 ※アクセス制御は無効					
-	 アクセス制御を有効にする		

 実行します。
$ xhost isk
uriel being added to access control list
$ xhost
access control enabled, only authorized clients can connect
INET:isk  ← これが追加される
INET:michael.example.com
INET:localhost
INET:aster
INET:aster
LOCAL:

 これでXクライアントiskからXサーバasterへの接続が許可されました。
 で、Xクライアントであるアプリの表示結果をXサーバのディスプレイに表示しないと、なにも見れないので設定します。
 表示先のディスプレイは環境変数「DISPLAY」で指定します。
 書式 ホスト名:ディスプレイ番号
 自分のPCのディスプレイ番号は「0」です。デフォルトの場合ですが。
 なので「aster:0」となります。
 これを組み合わせると
DISPLAY=aster:0 ←変数「DISPLAY」に引数「aster:0」を渡します。
 あとは「export」コマンドを使用して
export DISPLAY ←exportコマンドで環境変数を指定します。
 これで表示先をXサーバのデフォルトディスプレイに設定できました!
 一回で行う場合は
export DISPLAY=aster:0
 でもOK。
 「サーバ」と「クライアント」の立ち位置が逆じゃない?と思いますが、今やったネットワーク上の設定をすると
 逆でないと、成り立たないですね。
 ■サーバ→接続される側で、接続を許可する。
 ■クライアント→接続する側で、接続を許可される。
 ですから。
 遠隔地のXクライアントを自分のPC(Xサーバ)で使用したい場合は
 ・Xクライアントの接続許可リストに追加
 ・環境変数DISPLAYの設定
 の二つを実行する事で、リモート環境でもXサーバXクライアントの関係が成り立ちます。


 X.Orgの設定をします。Xサーバの設定です。
 設定ファイルは/etc/X11/xorg.confです。
 この設定ファイルには
・キーボード
・マウス
・モニタ
・フォント
・解像度
 などの設定があります。
 しかし、設定はやや難解なので設定ツールを使用する事ができます。
 このツールを使用すると、PCに接続しているマウスやキーボードなどのデバイス情報を
 取得して、設定用のファイルを新しく作成してくれます。
 そのツールを使用するコマンドがXorg -configureです。
 このコマンドを実行すると
 「どこどこに設定用ファイルを作成したよ!次に表示されているコマンドを実行」してね!と表示されます。
Your xorg.conf file is /root/xorg.conf.new
To test the server, run 'X -config /root/xorg.conf.new
 実行すると
X -config /root/xorg.conf.new
 マウスポインタだけが表示された画面が出ます。それで成功です。
 これで、必要最低限な設定はされたので「/root/xorg.conf.new」を「/etc/X11/xorg.conf」としてコピーすればOKです。
cp /root/xorg.conf.new /etc/X11/xorg.conf
 また、ビデオモードの詳細な設定をする場合は「xvidtune」コマンドを使用します。
 水平同期周波数や垂直同期周波数の範囲の設定と確認ができます。

 X Window System上で、設定を確認したり、様々な情報を集めるためにコマンドが用意されています。
コマンド	 説明
showrgb	 Xで利用可能な色をRGB値を確認する。
xwininfo	 指定したウィンドウのサイズや位置、色深度などを確認できます。
xdpyinfo	 ディスプレイ情報を確認できます。
xlsfonts	 利用できるフォントの一覧を表示します。
startx	 X Window Systemを起動します。
目安箱バナー