inex_scs

物理実験I 情報実験第12回
サーバー・クライアントシステム
(X Window System )
前坂たけし
([email protected])
「サーバー・クライアントシステム」とは
サーバー(server)
ある機能やデータを,(ネットワークを介して)他の計算機
やソフトウエアに提供する計算機 or ソフトウエア.
例)
WWWコンテンツを提供する
WWWサーバー
ドメインネームシステムを提供する DNSサーバー
メールを配送する
SMTPサーバー
到着したメールを提供する
POPサーバー,IMAPサーバー
ニューズを配信する
NNTPサーバー
「サーバー・クライアントシステム」とは
クライアント(client)
サーバーの提供する機能やデータを,(ネットワークを介
して)利用する計算機 or ソフトウエア.
例)
WWWコンテンツを閲覧する
WWWブラウザ
メールを送信・受信する
メーラー(mew, Outlook Express)
ニューズを配信する
ニューズリーダー(mnews, gnus)
「サーバー・クライアントシステム」とは
例:WWWを閲覧する
[email protected]
[email protected]
(1) Netscape NavigatorというWWWクライ
アントを起動して,
‘http://www.ep.sci.hokudai.ac.jp/~inex/’
を要求する.
“GET /~inex/ HTTP/1.0”
(2)クライアントから“/~inex/”が要求され
たので,“/~inex/index.html”を送信する.
“/~inex/index.html”
(3)受信した“/~inex/index.html”を解釈し
て表示する.
「サーバー・クライアントシステム」の特徴
• 機能・情報の集中化
機能・情報を共有できる.データの安全性と負荷の集中を
さけるため,分散型サーバーシステムが主流.
• サーバーは常にクライアントからの要求を待機
サーバーは常に稼動していなければならないが,クライア
ントは必要な時のみ稼動していればよい.
• サーバー・クライアント間の通信プロトコルが必要
通信さえできれば地理的拘束から開放される
• ネットワーク指向なシステムでは標準的な概念
UNIXでもサーバー・クライアントシステムは多く採用されて
いる.(例:X Window System)
「X Window System」とは
• UNIX系OSでよく使用されるGUI環境
• 通称「X」,「X11」.窓にはsがない.
• マサチューセッツ工科大学で開発.その後はXコンソーシア
ムが管理.
• クライアントがサーバーの機能を呼び出して使う分散構造
• サーバー・クライアント間の通信プロトコルと基本的な見栄
えが規定されており,この規定に従っていろいろなシステム
が開発されている.
「X」におけるサーバー・クライアント
network
host0
Xプロトコル
(
アX
プク
リラ
ケイ
ーア
シン
ョト
ン
)
青い丸を作画し
て!
マウスが動いた
ぞ!
画面のサイズは?
1024x768ですよ
エラー発生!!
X
サ
ー
バ
ー
作画
マウス
キーボード
「X」におけるサーバー・クライアント
host3
network
host2
Xクライアント
Xクライアント
Xサーバー
Xサーバー
host1
host0
Xクライアント
Xクライアント
Xサーバー
Xサーバー
「X」におけるサーバー・クライアント
• 他のX端末(Xサーバー)の画面に作画することができる.
(つまり,ウインドウをネットワーク越しに飛ばすことが可
能)
• ネットワークを介するため,セキュリティに注意が必要.(ど
の端末に表示するか?,他のクライアントからの要求を制
限する等)
表示するサーバーと画面の選択
• 環境変数 DISPLAYに示されるサーバーを使用する
(ホスト名):(ディスプレイ番号).(スクリーン番号)
例)
% export DISPLAY=localhost:0.0
% export DISPLAY=joho6.ep.sci.hokudai.ac.jp:0.0
実験!
(3n+1)マシンから(3n+2)マシンへxeyesを飛ばしてみよう.
(3n+1)->(3n+2) % export DISPLAY=192.168.0.3:0.0
% xeyes &
(3n+2)->(3n+1) % export DISPLAY=192.168.0.2:0.0
% xeyes &
Xサーバーへのアクセス制御
• 制御プログラム「xhost」で制限する
xhost [+|-](host)
例)
% xhost +joho9 <- joho9からの要求を受け付ける
% xhost +
<- 全てのクライアントに開放
% xhost -joho9 <- joho9からの要求に答えない
もう一度実験!
(3n+1)マシンから(3n+2)マシンへxeyesを飛ばしてみよう.
Xサーバーへのアクセス制御
• 「xauth」でもっと厳しく設定する.(詳しくは man xauth)
サーバー側(mikan:画面を飛ばされる方)
% xauth list :0.0
mikan/unix:0 MIT-MAGIC-COOKIE-1 174bakcfd407df4fa7cc5f4457c11147
クライアント側(orange:画面を飛ばす方)
% xauth xauth
Using authority file /home/msaka/.Xauthority
xauth> add mikan:0.0 174bakcfd407df4fa7cc5f4457c11147
xauth> exit
% xeyes &
sshによるX転送機能
• sshを使うと,自動的に画面が転送されます.このときxhost
などの設定は不要です.(内部でxauthを設定しています)
サーバー側(mikan:画面を飛ばされる方)
% ssh mikan
password:
mikan% xeyes &
Xのセキュリティ
• 「xhost +」なサーバーの画面を盗み見る
サーバー側(192.168.0.2)
% xhost +
クライアント側(192.168.0.3)
% xwd -display 192.168.0.2:0.0 -root -silent -out xhost.xwd
% xv xhost.xwd &
xwd :X のイメージをダンプする Xクライアント
xv
:画像ビュワー(なければapt-getしてください)
実験!
• (2n+1),(2n+2)でお互いに「xhost +」に設定して,互いの
画面をダンプしてみよう.
• mikan.ep.sci.hokudai.ac.jpの画面をダンプしてみよう.
Xのセキュリティ
• 「xhost +」なサーバーの入力を監視する
サーバー側(192.168.0.2)
% xhost +
クライアント側(192.168.0.3)
% xwininfo -display 192.168.0.2:0.0 -root -tree | less
(仮想端末らしいウインドウのIDを取得)
% xev -display 192.168.0.2:0.0 -id 0x4f8900
xwininfo :ウィンドウの属性を表示
xev
:指定したウインドウで発生したイベントを表示
実験!
• (2n+1),(2n+2)でお互いに仮想端末を検索し,その入力
を監視してみよう.
いろいろなXクライアント
• xlogo : Xのロゴを表示する
• xclock : 時計
• xneko : 猫がマウスポインタを追いかける
• xfontsel : 使用できるフォント一覧を表示する
• xload : システムの負荷を表示する
• xcalc : 計算機
• xroach : 画面にゴキブリが走り回る
• xsnow : 画面に雪が降る
• xmikan : ネットワークに負荷がかかるとミカンせいじんが動
き出す(拙作)
いろいろなXクライアント
• netmaj : ネットワーク麻雀
• xblast : ネットワーク対応ボン●ーマン
Xのまとめ
• Xはサーバー・クライアントシステムにより設計されている.
• 通信可能なX端末に画面の表示や入出力を飛ばすことが
できる.
• Xのセキュリティに注意しないと,パスワードの入力を監視
されたり,画面を盗み見られる可能性がある.
• 特に xhost + は危険です.できれば xauth を使いましょう.
個人的なお知らせ
• 自転車
• 二層式洗濯機(古い)
• ガステーブル(古い)
• 電子レンジ(古い)
• PC-486MU(DX4/16MB/200MB+SCSI 340MB)
• 上のディスプレイ