Unix系OSでのグラフィック機能(X Window)の利用 (SFC CNSローカル)

[2006年度秋学期用注意] 2006年10月の機器更新後、メディアセンターにあるPCで、 CNSのUnixシステムの端末としての機能があるものが見あたらない。 この下に述べるX Windowの機能を利用するためには、 個人のPCにLinuxまたはCygWinを入れる必要がありそうだ。

GMTを使った例文を実行するだけならば、 個人のPCにPostScript形式のデータを表示できるソフトウェア (WindowsではたとえばGSviewというフリーソフトウェアがあるはず) を入れ、PostScriptファイルをCNSからPCに転送する方法のほうが便利かもしれない。


Unix系OSで動くソフトウェアでは、グラフィック機能を X Window Systemの機能を使って実現しているものが多い。 データの可視化の教材でとりあげるものから例をあげると、 GrADS [別ページ参照]、 gnuplot [別ページ参照]がそうである。 GMT [別ページ参照]は PostScriptファイルを作るだけで画面表示をしないが、 PostScriptファイルの内容を図として見ようとすると、 ふつうghostscript (コマンド名 gs)を使うことになる。

なお、PostScriptファイルの図を表示する際に、 拡大縮小や向きを変えるなど、表示のしかたを変えたくなることがある。 ghostscriptでもできることはできるのだが、 PostScript語のプログラムを用意して、図形を含むファイルより先に読ませる 必要がある (GMTの結果の横長の図を表示するローカルコマンドはこれによって実現した)。 画面上のメニューなど(graphical user interface)からオプションを指定できるようにしたプログラム(中でgsを呼び出している)として、ghostview, gv, ggvなどがある。 CNSのSun (ccz02など)にはghostviewがある。 教室のLinuxマシン (zux001など)にはggvがある。 ccx00には残念ながらいずれもない(gsはある)。

X Window Systemの機能はネットワークごしに使うことができる。 手もとのマシン(ローカルホスト)に「Xサーバー」の機能 (これがX Window Systemの用語としては正しいが、「X端末」の機能と表現したほうがユーザーの実感には合っていると思う)があれば、 ネットワークの向こうのマシン(リモートホスト)でX Window Systemの機能を使うプログラムを実行し、ローカルホストの画面に表示することができる。 それには次のような準備手続きが必要である。 (コマンドの形式はUnix系OSを想定した代表的な例。)

2001〜2002年ごろには、SFCメディアセンターには一般ユーザーがloginできるUnix系ワークステーションが多数あったが、 今は一般ユーザーが端末として使えるマシンのOSはほとんどMS Windows (一部はMacOS)になっている。

2005年度には、センター1階の"IBM Intellistation"という機種のPCでは、 OSはWindowsだが、 CygWinというフリーソフトウェアがはいっていてそのXサーバー機能を使うことができたので、 その場合の使いかたを説明する。

2006年10月の機器更新で、メディアセンター内のIBM Intellistationはなくなり、 11月2日現在、センター内常備のPCでCygWinのはいっているものは見あたらない。 (特別教室については未確認)。 しかし、自分のPCにCygWin (Xサーバー機能を含むバージョン) およびTeraTerm (またはそれと同様な機能をもつ端末ソフトウェア)を導入したうえで CNSのネットワークに接続すれば同様な手順で使えるはずなので、 参考としてこのまま示しておくことにする。

次の例は、ローカルホストispc043から、 リモートホストccz03を利用する場合である。

なお、この手順はもう少し簡単にできるのではないか --たとえばTera Termを使わずにCygWinのxtermからリモートホストにはいる方法もあるのではないか--と思うが、まだ調べていない。

ローカルホスト名は、 センター内常備のマシンの場合は固定であり本体に書いてあるので調べる必要はないが、DHCP接続の場合は毎回変わるので調べる必要がある。 Linux (ccx00およびzux001など)では、wというコマンドでlogin中のユーザーを表示させると、自分に対応する行の「From」の列にローカルホスト名が表示される。 Sun (ccz02など)の場合は、wコマンドの表示にローカルホスト名が含まれないので、 lastというコマンドで過去にloginしたユーザーを表示させて現在の自分に対応する行を見る。 行数が多くなるので「last | head」または「last | less (脱出はq)」の形で実行するとよい。 なお、表示されるローカルホスト名は、ドメイン名「.sfc.keio.ac.jp」のついたものが、ある字数で打ち切られたものである。 なお、ローカルホスト側のxhostで指定するリモートホスト名も、ローカルホスト側の設定によっては、ドメイン名をつけた形で指定する必要があるかもしれない。


2005-10-09, 更新(最新) 2006-11-09
増田 耕一: 慶応義塾大学 環境情報学部 非常勤講師

[コンピュータ利用の教材の目次へ]