• ベストアンサー

X window systemの仕組みについて

LinuxやFreeBSDのX Window systemについて教えてください。 "X.Org Foundation"前提で構いません。 1)Xはネットワーク通信を介して使われることを前提として設計されている。 2)クライアントサーバ型システムをとっている 3)つまり、たとえばKNOPPIXやPC-BSDなどのLIVE CDを起動して表示されるGUIシステムは、  自分で立てたXサーバ(127.0.0.1)に対して自分がクライアントとして接続しに行っているに過ぎない。 4)よってその気になればMS-Windowsや漢字Talk上でも、クライアントさえあればKNOPPIXのXサーバに  接続してデスクトップを引っ張ってこれる この理解は正しいですか。 これは目的から外れる質問ですが、可能でしたら教えて下さい 4)Windowsシリーズもこのシステムを採用しているのか、あるいは直接入出力デバイスの描画なり入力なり を管理しているのか 5)後者であればWindowsXP sp2のリモートデスクトップシステムの仕組みはX.Orgとはまったく異なる仕組みなのか

質問者が選んだベストアンサー

  • ベストアンサー
noname#136147
noname#136147
回答No.5

> 1)、2) 高性能マシンや非力なマシンと組み合わせて効率よく仕事をさせるために クライアントサーバ型とすることでパフォーマンスを得られるように 設計されたのではないでしょうか。 詳しくはリンク先を参照してください。 ・X を理解する http://www.freebsd.org/doc/ja/books/handbook/x-understanding.html ・X Window System(Xウィンドウシステム)の動作原理 Xプロトコル http://www.stackasterisk.jp/tech/engineer/xwindow01_01.jsp > 3) そのとおりです。 ただし、クライアントとサーバが同一マシンの時は、 UNIXドメインソケット(/tmp/.X11-unix/Xn)を使用し、違うマシンの時はTCP/IPを使用するようです。 > 4) すでにWindows用ならば、cygwinを使ったり、 他にもExceedのような商用のものを用いるとUnixアプリケーションを 動かす(Windows側が表示でXサーバ、アプリを動かすUnix側はクライアントになるのでしょうか?) こともできます。 LinuxやFreeBSDなどのマシンが2台あれば、 Xアプリならば、-displayオプションやDISPLAY環境変数を使うことで 試すことが出きると思います。 host1、host2の2台があったとして、 host1側で、 $ xhost +host2 とし、(最近はXAuthじゃないとダメな場合も‥‥) host2側で、 $ xeyes -display host1:0 などとすると、相手マシンにxeyesを表示できたり、 host1=>host2側にtelnetやsshでログインした後に、 $ emacs -display host1:0 などとすると、相手マシンのemacsが自分のホストで起動したりします。 これによって重いアプリケーションを高性能マシンで動かし 自分のホストでは描画だけ、などという風に使うことが出来ます。

4kobun_mac
質問者

お礼

遅くなりすみません。CygwinをセットアップしてWindows側のFWでポートを開けてやり、Linuxのtermからviはもちろん、GUIソフトであるワープロソフトなどをコマンドラインから起動したら見事にWindows側でそのUIが表示されました。 あまりに簡単にできてしまったので少し驚いています。 リンク先は熟読しておきます。ありがとうございます、解決です。

その他の回答 (4)

  • gon987
  • ベストアンサー率16% (53/312)
回答No.4

>サーバ, 「その画面で動くプログラム」のがクライアント. >だから, 「X としてのサーバ/クライアント」と「プログラム実行環境としてのサーバ/クライアント」は逆になりますが, 「サーバ/クライアント」という言葉の意味自体は逆じゃないです>#1. それだとVNCのサーバとクライアントの関係がちょっと変になる気がしますよ?

4kobun_mac
質問者

お礼

確かにこのあたりのことは解釈に相違があってややこしいですね。 http://www.atmarkit.co.jp/flinux/special/vnc01/vnc01a.html うーん。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

何らかの「サービス」をするのが「サーバ」, そのサーバのサービスを使って仕事をするのが「クライアント」で, X の場合「X の画面を提供する」のがサーバ, 「その画面で動くプログラム」のがクライアント. だから, 「X としてのサーバ/クライアント」と「プログラム実行環境としてのサーバ/クライアント」は逆になりますが, 「サーバ/クライアント」という言葉の意味自体は逆じゃないです>#1.

4kobun_mac
質問者

お礼

今回は被操作PC側をサーバという認識で書きました。でも、今後は前提認識を併記するようにします。ありがとうございます。

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.2

本題じゃない所への回答で申し訳無い。本題への回答は識者に任せる。 >4)Windowsシリーズもこのシステムを採用しているのか、あるいは直接入出力デバイスの描画なり入力なり >を管理しているのか 直接ではないが「デバイスコンテキスト」を介して「仮想画面」に描画を指示している。なので、クライアントサーバー型ではない。 その「仮想画面の先」に、つまり、「デバイスコンテキストの先」に、実画面があったり、プリンタがあったりする。 要は「デバイスコンテキストのドライバを介してアクセスしている」に過ぎない。 >5)後者であればWindowsXP sp2のリモートデスクトップシステムの仕組みはX.Orgとはまったく異なる仕組みなのか まったく異なる。 Windowsのリモートデスクトップシステムはクライアントサーバー型ではないので、リモートもクライアントも「それぞれ1つしか」存在できない。「1対1」のサービスとなる。

4kobun_mac
質問者

補足

デバイスコンテキストというやつがあるおかげで各アプリケーションは実ハードウェアの仕様を意識せずとも利用できる、だからそれを呼び出すための命令やそれに対する応答は、別にIPでカプセル化して遠隔で送り出しても同じこと、ということなのだと勝手に理解しました。 ありがとうございます。私が理解するにはもうちょっと勉強が必要かも・・・。 最近はSCSIコマンドをIPでカプセル化してネットワーク経由で送り出す仕組みもあるようですが、面白いですね。

  • gon987
  • ベストアンサー率16% (53/312)
回答No.1

>3)つまり、たとえばKNOPPIXやPC-BSDなどのLIVE CDを起動して表示されるGUIシステムは、 > 自分で立てたXサーバ(127.0.0.1)に対して自分がクライアントとして接続しに行っているに過ぎない。 逆。 Xサーバのサーバとクライアントの関係は通常のサーバクライアントのシステムとは逆の関係になっている。 だからWindows版Xサーバとか通常ならクライアント側の部分がサーバと言われる状態になる。 (Windows版XサーバでLinux環境に接続とかね。) >5)後者であればWindowsXP sp2のリモートデスクトップシステムの仕組みはX.Orgとはまったく異なる仕組みなのか 詳しい仕様は知らないけどVNCに近いシステムだと思いますよ。

4kobun_mac
質問者

お礼

実際に物理キーボードを叩くこちらの方がサーバ、こちらの方がそのマシンを遠隔で掌握するからサーバ、ということですね。 その考えは無かったので参考になりました。ありがとうございます。