web-dev-qa-db-ja.com

X11はどのように機能しますか?

リモートマシンに接続するときにMacでX11を動作させようとしていますが、多くの問題が発生しています。私は一日中グーグルで無駄に過ごしました。これが私の主な質問です:

  1. Ssh -X、ssh -Yの違いは何ですか。これを行うと、どのコンピューター(ローカルまたはリモート)にxサーバーがあり、どのコンピューターにクライアントがありますか?

  2. Startxコマンドはxサーバーを起動しますか?それで、ターミナルに行ってstartxを押すと、xserverを起動するだけですか?

  3. リモートコンピューターにSSH接続してstartxを使用したいのはなぜですか? startxを使用するには-Xまたは-Yが必要ですか?リモートマシンでデスクトップをgnome/kde用に起動することについて私が読んだことはすべて、startxを使用する必要があるようです。このシナリオでstartxを使用する場合、xserverとxclientは誰ですか?

  4. Gnome/kdeのウィンドウマネージャーがリモートマシンでstartxを使用することは、Macによる独自のx11ウィンドウマネージャーの実装に干渉しますか?とにかくそれを修正することはありますか?

  5. VNCのようなものはこれらすべてにどのように影響しますか?リモートXセッションと、リモートマシンにsshingしてstartxを使用することには違いがありますか?

  6. サーバーのリモートマシンでGUIデスクトップを実行するためにgnome/kdeを取得する正しい方法/コマンドは何ですか? (つまり、私のコンピューターに表示されるデスクトップはサーバーのデスクトップです)?デスクトップとは、壁紙、フォルダ、ごみ箱などが欲しいという意味です。

  7. NX/VNCが#6の意味で真のリモートデスクトップを正しく持つ唯一の方法である場合、コマンド$ gnome-sessionまたは$ startkdeが機能しないのにssh-Xで必要なデスクトップを表示するのはなぜですか正しく?

これらのそれぞれに個別に対処することは役に立ちますが、私をいくつかの明確なドキュメントに導くことができれば、それも役に立ちます!

4
Tony Stark
  1. 正しく思い出せば、ssh -XはXサーバーをターゲットマシンにマップし、SSHによって作成されたチャネルを介して端末(つまり、マシン)に接続をルーティングします。 「Xサーバー」は、それらのウィンドウを使用するプログラムである「Xクライアント」のウィンドウを描画するソフトウェアです。

  2. はい、startxはXサーバーを起動します。ただし、Mac OS Xでは、ユーティリティでX11.appを起動してXサーバーを起動します。

  3. SSHを使用するコンピューターでXサーバーを再起動しようとしない限り、これは実際には必要ありません。しかし、それはそのコンピューターへの接続やその接続を介して実行したいプログラムとは何の関係もありません。

  4. 質問がわかりません。リモートサーバーが実行するウィンドウマネージャーは、接続にとって重要ではありません。ウィンドウマネージャーはXサーバー(特別なXクライアント)で実行され、MacのXサーバーとリモートマシンのXサーバーは2つの別々の獣です。

  5. VNCは、GUIアプリをリモートで表示する問題に対する別のソリューションです。この2つを組み合わせることができますが、別々に理解することをお勧めします。

  6. PaulをMac、Peterを接続する(Linux)マシンとします。

Paul:startx(つまり、X11.appを起動し、X11.appが作成するターミナルウィンドウを次の目的で使用します)

ポール:xhost + Peter

ポール:ssh-Xピーター

Peter:xlogo&(これはPaulの画面に表示されるはずですが、表示されない場合は続行します)

Peter:export DISPLAY = Paul:0

Peter:xlogo&(これはPaulの画面に表示されるはずです)

2
Andrew J. Brehm

リモートコンピューターにSSH接続してstartxを使用したいのはなぜですか? startxを使用するには-Xまたは-Yが必要ですか?リモートマシンでデスクトップをgnome/kde用に起動することについて私が読んだすべてのことは、startxを使用することを求めているようです。このシナリオでstartxを使用する場合、xserverとxclientは誰ですか?

Xには、クライアント/サーバーのわずかに「異常な」定義があります。
グラフィック画面を備えたマシンがサーバーであり、アプリケーションがクライアントです。したがって、XServerをローカルで(startxを使用して)起動し、クライアント(アプリケーション)をおそらくリモートで実行します。

ローカルアプリケーションのみを実行している場合、これは実際には重要ではありません。アプリケーションが「サーバー」(つまり、地下にあるBIGマシン)の数を処理する能力を必要としていた昔は、ディスプレイのないマシンでジョブを実行し、オフィスの端末に表示させることができました。

ウィンドウマネージャーは興味深いケースです。それは他のものと同じように単なるXアプリケーションです。 MacでローカルにXserverを起動し、SunでMotifウィンドウマネージャーを実行して、別の場所のLinuxマシンで実行されているXアプリで作業しながらローカルウィンドウを管理することは完全に可能です。

ps。人々がコメント/編集できるように、9月の回答で回答します。

2
Martin Beckett

VNCのようなものはこれらすべてにどのように影響しますか?リモートXセッションと、リモートマシンにsshingしてstartxを使用することには違いがありますか?

VNCは、わずかに異なる方法で同様の仕事をします。 VNCは、画面全体または1つのウィンドウを取得し、ネット経由でローカルマシンのVNCアプリにビデオを送信するだけです。 Xはリモートマシンでアプリケーションを実行しますが、すべての表示コマンドをネット経由でローカルXディスプレイに送信します。 Xは実際にはローカルで実行している場合でもこれを実行しますが、同じマシンへのネットワーク呼び出しはショートカットでき、非常に高速です。

ps。リモートマシンとstartxにSSHで接続するのではなく、Xサーバーをローカルで起動してからリモートマシンにSSHで接続し、Xアプリケーション(office/gimp/xeyes/etc)を起動すると、Xがローカルに表示される処理を処理します。

1
Martin Beckett