X顯示管理器

顯示管理器(display manager)建基於X Window系統,調用X Window系統用作以GUI登入以及登入後顯示GUI畫面,以及以GUI切換使用者。GNU/Linux下的tty7預設開啟顯示管理器,tty1~6則為文字列介面

KDMKDE顯示管理器)顯示的登錄界面

X Window系統中,作為程序運行的X顯示管理器允許你在本地X服務器或遠程X服務器上開始一個會話。

顯示管理器呈現給用戶一個登錄界面並提示輸入用戶和密碼。當用戶成功輸入正確的用戶和密碼,顯示管理器會開始一個會話。

當顯示管理器在用戶電腦上運行時,它會在顯示登錄界面前開啟X服務器,並能在用戶登出後任意的重複運行。在這種情況下,顯示管理器在X Window系統中實現initgetty和在字符類型終端登錄的功能。當顯示管理器運行在遠程計算機時,它扮演類似telnet服務器的角色,需要用戶名和密碼才開始一個遠程會話。

1988年10月X11 Release 3引入了顯示管理器,它的目標是在市場上支持獨立的X終端機。多種顯示管理器繼續一成不變的在運行X系統的獨立的工作站上提供圖形化登錄提示。1989年12月X11R4引入X顯示管理器控制協議XDMCP)來修復由X11R3帶來的問題。

本地和遠程顯示管理

顯示管理器可以運行在用戶面前的計算機上也可以運行在遠程計算機上。第一種情況,顯示管理器會自動開始一個或多個X服務器,並顯示登錄界面。第二種情況,顯示管理器要通過XDMCP協議工作。

 
在X Window系統中,X服務器運行在用戶面前的計算機上。X服務器可以連接到另一台計算機上運行的顯示管理器,開始一個會話並運行存在於另一台計算機中的程序。

XDMCP協議要求X服務器能自發的啟動並連接到顯示管理器。在X Window系統範例中,X服務器運行的那台計算機提供顯示和輸入設備。X服務器能夠連接(使用XDMCP協議)到另一台運行顯示管理器的計算機,並請求開始會話。在這種情況下,X服務器扮演類似圖形化telnet客戶端的角色,而顯示管理器類似telnet服務器:用戶啟動的程序是運行在顯示管理器那台計算機,而它們的輸入和輸出是工作在X服務器(用戶面前)那台計算機上。

管理員可以配置X服務器連接到某個指定的顯示管理器,或顯示運行X顯示管理器的主機列表。XDMCP選擇器程序允許用戶選擇下面其中一個能連接到的主機:

  1. 一個預先定義好的主機列表,它們有各自的網絡地址;
  2. 一個主機列表(工作於本地IP網段),它們的XDMCP服務器可以通過廣播地址找到。

XDMCP服務器經常出現在這個列表中。當用戶從列表中選中一個主機,工作於本地計算機的X服務器會連接選中的遠程計算機的X顯示管理器

X顯示管理器控制協議(XDMCP)

X顯示管理器控制協議使用UDP 177 端口。需要顯示管理器開始一個會話時,X服務器需要向其發送Query包。如果顯示管理器允許X服務器的訪問,它會向X服務器返回Willing包作為回應。(X服務器也可以發送BroadcastQueryIndirectQuery包來開始一個會話,這種機制類似於使用DHCP來獲得IP地址。)

顯示管理器必須向X服務器進行認證。為做到這一點,X服務器發送Request包給顯示管理器,顯示管理器返回一個Accept包。如果Accept包包含了X服務器期望的響應,則顯示管理器通過認證。舉例來說,為生成正確的響應可能需要顯示管理器訪問一個密鑰。如果認證成功,X服務器會發送Manage包來告訴顯示管理器。然後,顯示管理器會作為一個常規的X客戶端向連接的X服務器顯示登錄界面。

在會話期間,X服務器會間隔的向顯示管理器發送KeepAlive包。如果顯示管理器在一段時間內沒有回應Alive包,X服務器會假定顯示管理器停止運行,並終止該連接。

XDMCP有一個問題,類似telnet,認證時是不加密的並且如果能夠嗅探,這會讓系統易受到攻擊。比較安全的方法是對X通信使用ssh通道。[1]頁面存檔備份,存於網際網路檔案館

歷史

XDM是在X11R3中引入的。這個版本出現了幾個問題,最顯著的一個是當用戶打開X終端電源時。在X11R3中,XDM只能通過Xservers文件得知一個X終端,但是只有在啟動時XDM才會讀取這個文件。因此,每次用戶打開X終端電源時,系統管理員不得不發送SIGHUP信號給XDM指示它重新讀取Xservers文件。

X11R4(1989年10月)引入了XDMCP。使用XDMCP時,X服務器必須主動請求一個顯示管理器連接。當X服務器使用XDMCP時就不再需要Xservers文件。

一些實例

X Window系統使用XDM做為它標準的顯示管理器。

也有其他X顯示管理器被開發出來,有商業有開源,在基本的顯示管理上提供了附加的功能。

在大多數Linux發行版中,系統默認的顯示管理器由/etc/X11/default-display-manager文件選擇(註:本條已不適用使用Gnome或KDE的現代Linux發行版)

參見

參考文獻

  1. ^ Added a bigger not maintained note · spanezz/nodm@0552524. GitHub. [2020-10-31] (英語). 

外部連結