顯示管理器(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] (英語). 

外部連結

編輯