「X Window System」の編集履歴(バックアップ)一覧に戻る
X Window System - (2012/02/28 (火) 22:21:48) のソース
■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を起動します。