ウィンドウシステムは、
コンピュータ上で複数のアプリケーションを同時に表示し、それぞれを独立した領域で操作するためのシステムです。具体的には、各アプリケーションに専用の「ウィンドウ」と呼ばれる領域を割り当て、画面出力を多重化します。これにより、ユーザーは複数のアプリケーションを同時に利用しながら、情報を比較したり、異なる作業を並行して進めたりすることが可能になります。
ウィンドウシステムの仕組み
ウィンドウシステムは、グラフィカルユーザインターフェース (GUI) を持つ
デスクトップ環境の重要な構成要素であり、ウィンドウマネージャの実装をサポートします。また、グラフィックハードウェアや
ポインティングデバイス、キーボードなどの基本的なサポートも提供します。古典的な単画面
ソフトウェアとは異なり、ウィンドウシステムでは、ディスプレイサーバと呼ばれる単一の
プロセスが画面出力を管理します。各アプリケーションは、ディスプレイサーバのクライアントとして機能し、自身のウィンドウの状態のみを認識し、実際の表示についてはディスプレイサーバに委ねます。
オペレーティングシステム (OS) によっては、ウィンドウシステムとウィンドウマネージャの境界線があいまいな場合があります。例えば、一部のOSでは、ウィンドウシステムの機能がOSに深く組み込まれており、個別のウィンドウマネージャが存在しない場合があります。
また、ネットワーク透過性を備えたウィンドウシステム(
X Window Systemなど)の場合、遠隔にある
コンピュータで動作しているアプリケーションのウィンドウを、ローカルの
コンピュータに表示することが可能です。この機能により、ユーザーはリモート環境にあるアプリケーションを、あたかもローカルで動作しているかのように操作できます。
X Window Systemは階層構造を持ち、GUIの外観や動作に関する規定は、ウィンドウマネージャやウィジェットツールキット、
デスクトップ環境に委ねられています。
ウィンドウシステムの例
Unix系OSでは、以下のようなウィンドウシステムが利用されています。
8½ と rio (Plan 9)
Fresco/Berlin
FBUI
ManaGeR (MGR)
Metisse
Mir
NeWS / Xnews
NeXT DPS
Qtopia
Quartz Compositor (macOS)
Twin (ウィンドウシステム) (Text WINdows)
Wayland
X Window System
Xynth
XFast
Y Window System
Webウィンドウシステムとしては、以下のようなものがあります。
Dojo
Ext JS
TIBCO General Interface
WebWM
その他のウィンドウシステムとしては、以下のようなものがあります。
DM(アポロコンピュータのウィンドウシステム)
GEM
Intuition(AmigaOSのウィンドウエンジン。ただしGUIの名称は Workbench)
MiniGUI
Nano-X Window System
ooHG
SX-Window (X68000)
また、XP以前のMicrosoft Windows、Classic Mac OS、Garnet OSなどのOSでは、ウィンドウシステムがOSに一体化して組み込まれています。これらのOSでは、ウィンドウシステムはOSの基本的な機能の一部として、ユーザーインターフェースの中核を担っています。
関連事項
ウィンドウシステムは、以下の要素と密接に関連しています。
グラフィカルユーザインタフェース (GUI): ウィンドウシステムは、GUIの中核をなす要素であり、ユーザーが視覚的に
コンピュータを操作するための基盤を提供します。
ウィジェットツールキット: ウィンドウシステム上で動作するアプリケーションのGUI部品(ボタン、テキストボックスなど)をまとめたライブラリです。
デスクトップ環境: ウィンドウシステムやウィンドウマネージャ、各種アプリケーションなどを統合的に管理する環境です。
ウィンドウシステムは、現代の
コンピュータ環境において、効率的なマルチタスクを実現するための重要な基盤となっています。ユーザーは、ウィンドウシステムを通じて、複数のアプリケーションを同時に操作し、様々な作業を効率的に進めることができます。