Xディスプレイマネージャとは
Xディスプレイマネージャ(X display manager)は、
X Window Systemにおいて、ローカルまたはリモートのXサーバ上でユーザーセッションを開始させるための重要なプログラムです。一般的には「ディスプレイマネージャ」とも呼ばれ、グラフィカルなログイン画面を提供し、ユーザー認証を経て
デスクトップ環境へのアクセスを可能にします。
主な機能
ログイン画面の提供: ユーザー名とパスワードを入力するためのグラフィカルインターフェースを提供します。
セッション管理: ユーザー認証後、
デスクトップ環境を起動し、セッションを開始します。
Xサーバの起動: ディスプレイマネージャがローカルで動作する場合、ログイン画面を表示する前にXサーバを起動します。ログアウト時には再度ログイン画面を表示するオプションも提供します。
リモートセッションの開始: XDMCPプロトコルを介して、リモート
コンピュータ上のXサーバへのセッションを開始できます。
ディスプレイマネージャの役割
ディスプレイマネージャは、テキスト
端末における `init`、`getty`、`login` コマンドと同様の役割を、
X Window Systemにおいて果たします。ローカルで動作する場合は、Xサーバの起動とログイン画面の表示を担い、リモートで動作する場合は、`telnet` サーバのようにユーザー名と
パスワードを要求し、リモートセッションを開始します。
XDMCP (X Display Manager Control Protocol)
XDMCPは、Xサーバがディスプレイマネージャに接続し、セッション開始を要求するためのプロトコルです。Xサーバは、ディスプレイ(画面)と入力デバイスを持つ
コンピュータ上で動作し、XDMCPを介して他の
コンピュータ上のディスプレイマネージャに接続できます。
XDMCPの仕組み
1.
セッション開始要求: Xサーバは、ディスプレイマネージャにQueryパケットを送信し、セッション開始を要求します。また、Broadcast QueryやIndirectQueryパケットを用いてセッション開始を要求することも可能です。
2.
接続許可: ディスプレイマネージャは、Xサーバからのアクセスを許可する場合、Willingパケットで応答します。
3.
認証: Xサーバは、ディスプレイマネージャにRequestパケットを送信し、Acceptパケットを受け取ることでディスプレイマネージャを認証します。認証成功後、XサーバはManageパケットをディスプレイマネージャに送り、セッションを開始します。
4.
セッション維持: セッション中、XサーバはKeepAliveパケットをディスプレイマネージャに定期的に送信し、Aliveパケットで応答があるかを確認します。応答がない場合、接続を終了することがあります。
XDMCPの問題点
XDMCPの認証パケットは暗号化されていないため、セキュリティ上の脆弱性が存在します。そのため、Xの通信にはSSHトンネルを使用することが推奨されています。
ディスプレイマネージャの歴史
最初のディスプレイマネージャであるXDM(
X Window Display Manager)は、X11R3で導入されました。しかし、X11R3のXDMには、X
端末の再起動時に問題が発生するという課題がありました。この問題を解決するために、X11R4ではXDMCPが導入され、Xサーバが能動的にディスプレイマネージャに接続を要求するようになりました。
様々なディスプレイマネージャ
X Window Systemの標準ディスプレイマネージャはXDMですが、他にも様々なディスプレイマネージャが開発されています。以下に主なディスプレイマネージャを挙げます。
GNOME Display Manager (GDM): GNOMEデスクトップ環境で使用されるディスプレイマネージャ
LightDM: Ubuntuで標準採用されている軽量なディスプレイマネージャ
KDM (KDE): KDEデスクトップ環境で使用され、ウィンドウマネージャやデスクトップ環境をグラフィカルに選択可能
SDDM:
LXQtデスクトップ環境で標準採用
dtlogin: CDE (Common Desktop Environment)の一部
WINGs Display Manager:
Window MakerのウィジェットセットWINGsを使用
Entrance: Enlightenment v.17のアーキテクチャを使用
また、デスクトップ環境に依存しない独立したディスプレイマネージャも存在します。
SLiM: 軽量で独立したディスプレイマネージャ
*
Nodm:
デスクトップ環境に依存しないシンプルなディスプレイマネージャ
まとめ
Xディスプレイマネージャは、
X Window Systemにおけるユーザーログインとセッション管理において重要な役割を担っています。ローカルまたはリモートでのセッション開始を可能にし、XDMCPプロトコルを通じてリモート接続もサポートします。様々なディスプレイマネージャが存在し、それぞれが異なる特徴や機能を提供しています。