X Window System

 


X Window System の特徴

  • OSと独立.
         MS Windows や MacOS はGUIとOSが一体化している
  • 完全なC/Sシステム.
         ウィンドウの操作を管理する Window Managerもクライアントの一つ.
  • ネットワーク透過性.
  • 番外: キーボードマップ,マウスイベントをコントロール.
         Ctrl+Alt+Del でもシステムはリブートしない.X の再起動は Ctrl+Alt+BackSpace


ファイル

  • コマンドは /usr/X11R6/bin にある.xeyes, xclock, xev など.確認して見よう.
  • 通常,設定ファイルは /usr/X11R6/lib/X11 にある.最近の Linux では /etc/X11
  • Vine Linux でのXの設定ファイルは /etc/X11/xorg.conf.確認して見よう.


xdm

  • GUIのログイン画面は X Display Manager(xdm) というプログラムが管理する.
  • Vine Linux では Gnome X Display Manager(gdm) がデフォルトで起動する.
  • ログインに成功すると,gdmはGUIをコントロールする Window Manager を起動する.


wm

  • Window Manager (wm) は Windowの管理を行う(移動,リサイズなど). Window Manager (wm) を替えると,GUIの見え方が大きく変わる.
  • Window Manager (wm) には色々なものがある.通常 twm は必ずインストールされている(X11R6のデフォルトwm).
    wm には他にも mwm, windowmaker, fvwm, fvwm95, sawfish 等がある. (井関が)個人的に好きな wm は fvwm2.軽くてシンプル.
  • Vine でデフォルトで立ち上がる GNOME は初心者用のディスクトップ環境.Window Manager は metacity である.
  • twm (Tom's Window Manager. Xのデフォルトwm) を動かしてみよう.
      下記の内容で ホームディレクトリに .xsession というファイルを作る.
     xterm  &             
     twm             
      実行パーミッションを設定する. chmod u+x .xsession
      一度ログアウトして再ログイン
      元(Gnome)に戻すには .xsession を削除する.

  • .xsessionの作成に失敗してログインできなくなったら.
      Crtl+Alt+F1 でコンソール画面にし,コンソールからログインして .xsession を修正.ログアウトする.
      Crtl+Alt+F7 でGUI画面に戻るので,もう一度トライする.


ネットワーク透過性

  • プログラムの実行を他のマシンで行わせて,結果だけ自分のマシンに表示できる(internet越しでは少しつらい)
    • プログラムを実行するマシン(X Client)
      • DISPLAY 環境変数を設定する. export DISPLAY=Xサーバマシン名:ディスプレイ番号
      • ディスプレイ番号は 0から数える(通常は 0)
    • プログラムの結果を表示するマシン(X Server)
      • xhost  +Xクライアントマシン名 (マシン単位での許可)
      • または ~/.Xauthority をクライアントマシンにコピー
  • ssh の場合は -XY オプションで上記の設定を全て自動で行ってくれる.
  • ssh -XY コマンドで他のデスクトップマシンにログインして,Xのクライアントを実行してみよう.


 


トラブルシューティング

    • ssh -XY コマンドを使用しても Xの表示をローカルマシンに出せない.

   原因) OpenSSH 3.8 から仕様が変化した.ここを参照
   対策1) /etc/ssh/ssh_config の最後の行に ForwardX11Trusted yes を追加.
   対策2) 対策1 でも駄目な場合.
         サーバとクライアントで OpenSSHのバージョンが違うと駄目のようなのでバージョンを合わせる.

Last modified: Friday, 18 April 2014, 5:33 PM