GUI環境:X Window Systemがベース

 LinuxをはじめとするUNIX系OSが備えるシェルは,柔軟性が高く強力ではあるが,対話的なアプリケーションの動作環境としては直観的で使い勝手が良いGUIを備えたウインドウ・システムに分がある。Windows98などを使い慣れたパソコン・ユーザーは,ウインドウ・システムを持たないOSになど何の魅力も感じないことだろう。

 UNIX系OSで使われるGUI環境は,ウインドウ・システムのX Window Systemがベースになっている(図6)。X Window Systemを使うことにより,ディスプレイ上に複数のウインドウを開いて同時並行的にいろいろな作業を進められる。

図6●LinuxのGUI環境
図6●LinuxのGUI環境
LinuxなどのUNIX系OSでは,X Window SystemをベースにしたGUI環境が使われている。ウインドウ・マネージャや統合デスクトップ環境はX上のアプリケーションとして動作している。
[画像のクリックで拡大表示]

 もちろん,シェルでもバックグラウンドで処理することにより複数のプログラムを同時実行できる。ただし,基本的にはX Window System上で動かしたときのように,各プログラムの出力を画面に表示しながら並列実行することはできない。

ネットワーク環境を前提にしたX

 X Window System(以下,X)の最大の特徴は,XサーバーとXクライアントという役割の異なる2種類のソフトに処理を割り振っていることである。Xサーバーは,キーボードやマウスからの入力の制御,画面描画などを受け持つ。Xクライアントは,X上で動作するアプリケーションのロジック実行部であり,(Xサーバーから得た)ユーザーからの入力情報に従って処理を行い,その結果をXサーバーに返す。つまり,ユーザーに対する入出力部分を受け持つするソフト(Xサーバー)と,実際のコンピューティング(ロジックの実行)を受け持つソフト(Xクライアント)が通信し合いながら処理を進めているのである。

 Xがこのようなクライアント/サーバー・モデルを採用している背景には,開発当初からネットワーク環境での分散処理が考慮されていたことがある。Xが開発された1980年代半ばには既にTCP/IPによるネットワークが使われており,このTCP/IP上でXサーバーとXクライアントが通信しながら処理を行えるよう設計された。つまり,ユーザーは手元のコンピュータで動かしているXサーバーを介して,ネットワークにつながった異なるコンピュータ上のXクライアント(アプリケーション・ソフト)を利用できる(図7)。XサーバーとXクライアントを分離することにより,それぞれの移植性が高まるという利点もある。

図7●クライアント/サーバー・モデルを採用したX Window System
図7●クライアント/サーバー・モデルを採用したX Window System
パソコンAのユーザーはXサーバーを介してパソコンBやパソコンCで動かしているXクライアント(アプリケーション・ソフト)を利用できる。

 スタンドアローン環境でXを使用している場合は,XサーバーとXクライアントが同じコンピュータ上で動作しているため,ウインドウ・システムがサーバー・ソフトとクライアント・ソフトに分かれていることを意識することはないだろう。そのため一見すると,WindowsやMacintoshのウインドウ・システムと機構面で大差はないように感じられるかも知れない。しかし,Xはあくまでネットワーク環境を前提にしたウインドウ・システムなのである。

 Linuxの場合は通常,XFree86というフリーのXサーバーを利用する。なお,現在Linuxディストリビューションには,XFree86のバージョン3.3.6が組み込まれていることが多い。

 さて,ここでシェルから

$ X(大文字のX)

 と打ち込んで,Xを起動させてみてほしい。通常はグレーの背景にマウスのポインタだけが表示されたXの画面が現れる。ただし,マウスをクリックしてもポップアップ・メニューなどは一切表示されない。

 後述する端末エミュレータを起動させるために,CtrlキーとAltキーとF2キーを同時に押して仮想コンソール画面を表示させ,ログインしてから,

$ export DISPLAY=localhost:0.0 $ kterm (Bashの場合)

 と入力していただきたい。AltキーとF7キーを同時に押してXの画面に戻ると,端末エミュレータのktermのウインドウが表示されているはずである。 ただし,マウスを使ってこのウインドウを動かしたり,ウインドウ・サイズを変更することはできない。いったいどうしてなのか。

 実は,マウスを使ってウインドウを動かしたり,ウインドウ・サイズを変更するといった機能は,次に紹介するウインドウ・マネージャによって提供されるのである。なお,このXの画面を終了するには,CtrlキーとAltキーとBackspaceキーを同時に押せば良い(強制終了する)。

多種多様なGUI環境

 実際にはXだけでは,ウインドウ・システムとしては実用にならない。Xはウインドウ・システムのごく基本的な機能だけしか提供しないためだ。例えば,Xを起動しただけでは,開いたウインドウの大きさや位置を変更できないし,マウスのボタンを押してメニューを表示することもできない。

 普通は,「ウインドウ・マネージャ」と呼ばれるソフトウエアをXと併用して用いる。ウインドウ・マネージャはその名の通り,X上に表示されるウインドウを制御するソフトウエアである。Xサーバーと共にウインドウ・マネージャを起動すると,X上で開いたウインドウにタイトル・バーが付き,またマウスを使ってウインドウをアイコン化したり,ウインドウの大きさや位置を変更したりできるようになる。

 X用には,数多くのウインドウ・マネージャが提供されている。例えば,twmやWindow Maker,AfterStep,Enlightenment,Sawfishなどである。なお,twmはXの配布パッケージに含まれている。各ウインドウ・マネージャはそれぞれ,機能や見た目が異なる。ユーザーは自分の好きなウインドウ・マネージャを選択して使用できる。

 現在では,統合デスクトップ環境と呼ばれるソフトウエアが広く使われている。統合デスクトップ環境は,アイコンやパネルなどで構成されたグラフィカルな操作画面やファイル・マネージャなどのユーティリティ・ソフトをまとめて提供することにより,統一的でより使いやすい操作環境を実現するものだ。ウインドウ・マネージャは,主にウインドウの操作と見た目に限定した機能しか提供しないが,統合デスクトップ環境はディスプレイを現実の作業場(机の上)になぞらえて,多様な機能を提供する。現在のLinuxディストリビューションには,GNOME(GNU Network Object Model Environment)とKDE(The K Desktop Environment)という2種類の統合デスクトップ環境が組み込まれていることが多い。

 シェルから

$ startx

 と入力して,GUI環境を立ち上げてみよう。最近のLinuxディストリビューションをインストールしてある場合には,GNOMEあるいはKDEが起動したことだろう。どのウインドウ・マネージャや統合デスクトップ環境が起動するかは,設定によって異なる。例えばGNOMEが起動したのなら,GNOMEコントロール・センターというツールを起動し,その中の「デスクトップ」-「ウインドウマネージャ」を選ぶと,他のウインドウ・マネージャに切り替えられる。Linuxディストリビューションによっては,統合デスクトップ環境やウインドウ・マネージャを容易に切り替えられるよう,専用ツールを用意している(表4)。

表4●ウインドウ・マネージャや統合デスクトップ環境を切り替えるためのツール
表4●ウインドウ・マネージャや統合デスクトップ環境を切り替えるためのツール

コマンドライン環境と併用して使おう

 Windowsには,Windowsの中からDOSコマンドやDOSアプリケーションを実行できるよう,DOS互換ボックスが用意されている。UNIX系OSでXをベースにしたGUI環境を利用している場合でも,コマンドラインで操作するシェルを使えると便利である。

 それには,X上でコンソールを提供するソフトである端末エミュレータを起動すればよい。xtermやkterm,Gnome Termなどがそうした端末エミュレータである。ktermやGnome Termを使えば,日本語を表示したり,入力したりできるため,LinuxではktermやGnome Termが使われることが多い。Linuxを使い始めた当初はGUI環境だけでアプリケーション・ソフトを起動することが多いかもしれないが,慣れるに従ってGUI環境を立ち上げた後には,まず端末エミュレータを起動することになるだろう。