X Window Systemにおいて、X ディスプレイマネージャは、同じコンピュータまたは別のコンピュータからX サーバー上でログイン セッションを開始するグラフィカルログインマネージャです。

Xディスプレイマネージャは、ユーザーにログイン画面を表示します。ユーザーが有効なユーザー名とパスワードの組み合わせを正しく入力すると、セッションが開始されます。
X ディスプレイマネージャがユーザーのコンピュータ上で実行される場合、ログイン画面を表示する前に X サーバーを起動し、必要に応じてユーザーがログアウトした際にもこの処理を繰り返します。この状態では、ディスプレイマネージャは X Window System 上で文字モード端末のgettyおよびloginの機能を実装します。ディスプレイマネージャがリモートコンピュータ上で実行される場合、 Telnetサーバーのように動作し、ユーザー名とパスワードを要求してリモートセッションを開始します。
X11 Release 3は、市場に登場したばかりのスタンドアロンX端末をサポートすることを目的として、1988年10月にディスプレイマネージャを導入しました。さまざまなディスプレイマネージャは、 Xを実行するスタンドアロンコンピュータワークステーションでグラフィカルなログインプロンプトを提供するために、現在も日常的に使用されています。X11R4は、X11R3の実装の問題を修正するために、1989年12月にXディスプレイマネージャ制御プロトコル(XDMCP)を導入しました。
XDM(X Window Display Manager)はX11R3で誕生しました。MIT X ConsortiumのKeith Packardによって書かれたこの最初のバージョンにはいくつかの制限があり、中でも最も顕著なのは、ユーザーがX端末をオン/オフに切り替えたことを検出できない点でした。X11R3では、XDMはXserversファイルのエントリからのみX端末を認識していましたが、XDMはこのファイルを起動時にしか参照しませんでした。そのため、ユーザーが端末をオン/オフするたびに、システム管理者はXDMにSIGHUPシグナルを送信してXserversを再スキャンするように指示する必要がありました。
XDMCPはX11R4(1989年12月)の導入とともに登場しました。XDMCPでは、Xサーバーはホストに対してディスプレイマネージャ接続を積極的に要求する必要があります。そのため、XDMCPを使用するXサーバーは、Xserversにエントリを登録する必要がなくなりました。
Xディスプレイマネージャは、ユーザーが座っているコンピュータ上で実行することも、リモートコンピュータ上で実行することもできます。Xディスプレイマネージャは、1つまたは複数のXサーバーを起動し、起動時および(オプションで)ユーザーがログアウトするたびにログイン画面を表示します。リモートコンピュータ上で実行する場合は、XDMCPプロトコルに従って動作します。

XDMCPプロトコルでは、Xサーバーが自律的に起動し、ディスプレイマネージャに接続することが義務付けられています。X Window Systemのパラダイムでは、サーバーはディスプレイと入力デバイスを提供するコンピュータ上で動作します。サーバーはXDMCPプロトコルを使用して、別のコンピュータ上で動作しているディスプレイマネージャに接続し、セッションの開始を要求できます。この場合、XサーバーはグラフィカルなTelnetクライアントとして動作し、ディスプレイマネージャはTelnetサーバーとして動作します。ユーザーはディスプレイマネージャを実行しているコンピュータからプログラムを起動しますが、入出力はサーバー(およびユーザー)が動作しているコンピュータ上で行われます。
管理者は通常、ローカルコンピュータまたはX端末で実行されているXDMCPセレクタプログラムを構成して、特定のホストのXディスプレイマネージャに接続したり、ユーザーが選択できる適切なホストのリストを表示したりできます。ほとんどの実装では、このようなリストに以下を含めることができます。
ユーザーがリストからホストを選択すると、ローカルマシンで実行されているXDMCPセレクターは、選択されたリモートコンピューターのディスプレイマネージャーにメッセージを送信し、ローカルコンピューターまたは端末上のXサーバーに接続するように指示します。
Xディスプレイマネージャ制御プロトコル(XDMCP)はUDPポート177を使用します。Xサーバーは、Queryパケットを送信することでディスプレイマネージャにセッションの開始を要求します。ディスプレイマネージャがそのXサーバーからのアクセスを許可すると、WillingXサーバーにパケットを返信します。(Xサーバーは、セッションを開始するためにパケットを送信することもできますBroadcastQuery。IndirectQueryこのセッション要求の仕組みは、DHCPを使用してIPアドレスを要求する仕組みに似ています。)
ディスプレイマネージャは、サーバーに対して認証を行う必要があります。この認証を行うために、XサーバーはRequestディスプレイマネージャにパケットを送信し、ディスプレイマネージャはAcceptパケットを返信します。このAcceptパケットにXサーバーが期待する応答が含まれていれば、ディスプレイマネージャは認証されます。正しい応答を生成するには、例えば、ディスプレイマネージャが秘密鍵Manageにアクセスできる必要がある場合があります。認証が成功すると、Xサーバーはディスプレイマネージャに通知するパケットを送信します。その後、ディスプレイマネージャは通常のXクライアントとしてXサーバーに接続し、ログイン画面を表示します。
セッション中、サーバーはKeepAlive一定間隔でディスプレイマネージャにパケットを送信できます。ディスプレイマネージャがAlive一定時間内にパケットで応答しない場合、Xサーバーはディスプレイマネージャが動作を停止したと判断し、接続を終了できます。
XDMCPの問題点の1つは、telnetと同様に、認証が暗号化されずに行われることです。盗聴が可能であれば、システムは攻撃に対して脆弱になります。Xトラフィックにはsshトンネルを使用する方が安全です。[ 1 ]
X Window Systemは、標準のディスプレイマネージャとしてXDMを提供しています。
プログラマーたちは、基本的なディスプレイ管理機能に加えて、追加機能を提供する商用版と無料版の両方のXディスプレイマネージャーを開発してきた。
一部のUnixディストリビューションでは、デフォルトのディスプレイマネージャはファイル$PREFIX/etc/X11/default-display-managerで選択されます。