190 likes | 302 Views
物理実験 I 情報実験第 12 回. サーバー・クライアントシステム (X Window System ). 前坂たけし (msaka@ep.sci.hokudai.ac.jp). 「サーバー・クライアントシステム」とは. サーバー (server). ある機能やデータを,(ネットワークを介して)他の計算機やソフトウエアに提供する計算機 or ソフトウエア.. 例) WWW コンテンツを提供する WWW サーバー ドメインネームシステムを提供する DNS サーバー メールを配送する SMTP サーバー
E N D
物理実験I 情報実験第12回 サーバー・クライアントシステム(X Window System ) 前坂たけし(msaka@ep.sci.hokudai.ac.jp)
「サーバー・クライアントシステム」とは サーバー(server) ある機能やデータを,(ネットワークを介して)他の計算機やソフトウエアに提供する計算機 or ソフトウエア. 例) WWWコンテンツを提供する WWWサーバー ドメインネームシステムを提供する DNSサーバー メールを配送する SMTPサーバー 到着したメールを提供する POPサーバー,IMAPサーバー ニューズを配信する NNTPサーバー
「サーバー・クライアントシステム」とは クライアント(client) サーバーの提供する機能やデータを,(ネットワークを介して)利用する計算機 or ソフトウエア. 例) WWWコンテンツを閲覧する WWWブラウザ メールを送信・受信する メーラー(mew, Outlook Express) ニューズを配信する ニューズリーダー(mnews, gnus)
「サーバー・クライアントシステム」とは 例:WWWを閲覧する mikan@ep.sci.hokudai.ac.jp www@ep.sci.hokudai.ac.jp (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クライアント(アプリケーション) Xサーバー 青い丸を作画して! 作画 マウスが動いたぞ! マウス 画面のサイズは? キーボード 1024x768ですよ エラー発生!!
「X」におけるサーバー・クライアント network host3 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を飛ばしてみよう. % export DISPLAY=192.168.0.3:0.0% xeyes & (3n+1)->(3n+2) % export DISPLAY=192.168.0.2:0.0% xeyes & (3n+2)->(3n+1)
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 mikanpassword: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) • 上のディスプレイ