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

外部連結

編輯