X顯示管理器
顯示管理器(display manager)建基於X Window系統,調用X Window系統用作以GUI登入以及登入後顯示GUI畫面,以及以GUI切換使用者。GNU/Linux下的tty7預設開啟顯示管理器,tty1~6則為文字列介面
在X Window系統中,作為程序運行的X顯示管理器允許你在本地X服務器或遠程X服務器上開始一個會話。
顯示管理器呈現給用戶一個登錄界面並提示輸入用戶和密碼。當用戶成功輸入正確的用戶和密碼,顯示管理器會開始一個會話。
當顯示管理器在用戶電腦上運行時,它會在顯示登錄界面前開啟X服務器,並能在用戶登出後任意的重複運行。在這種情況下,顯示管理器在X Window系統中實現init,getty和在字符類型終端下登錄的功能。當顯示管理器運行在遠程計算機時,它扮演類似telnet服務器的角色,需要用戶名和密碼才開始一個遠程會話。
1988年10月X11 Release 3引入了顯示管理器,它的目標是在市場上支持獨立的X終端機。多種顯示管理器繼續一成不變的在運行X系統的獨立的工作站上提供圖形化登錄提示。1989年12月X11R4引入X顯示管理器控制協議(XDMCP)來修復由X11R3帶來的問題。
本地和遠程顯示管理
顯示管理器可以運行在用戶面前的計算機上也可以運行在遠程計算機上。第一種情況,顯示管理器會自動開始一個或多個X服務器,並顯示登錄界面。第二種情況,顯示管理器要通過XDMCP協議工作。
XDMCP協議要求X服務器能自發的啟動並連接到顯示管理器。在X Window系統範例中,X服務器運行的那台計算機提供顯示和輸入設備。X服務器能夠連接(使用XDMCP協議)到另一台運行顯示管理器的計算機,並請求開始會話。在這種情況下,X服務器扮演類似圖形化telnet客戶端的角色,而顯示管理器類似telnet服務器:用戶啟動的程序是運行在顯示管理器那台計算機,而它們的輸入和輸出是工作在X服務器(用戶面前)那台計算機上。
管理員可以配置X服務器連接到某個指定的顯示管理器,或顯示運行X顯示管理器的主機列表。XDMCP選擇器程序允許用戶選擇下面其中一個能連接到的主機:
- 一個預先定義好的主機列表,它們有各自的網絡地址;
- 一個主機列表(工作於本地IP網段),它們的XDMCP服務器可以通過廣播地址找到。
XDMCP服務器經常出現在這個列表中。當用戶從列表中選中一個主機,工作於本地計算機的X服務器會連接選中的遠程計算機的X顯示管理器。
X顯示管理器控制協議(XDMCP)
X顯示管理器控制協議使用UDP 177 端口。需要顯示管理器開始一個會話時,X服務器需要向其發送Query
包。如果顯示管理器允許X服務器的訪問,它會向X服務器返回Willing
包作為回應。(X服務器也可以發送BroadcastQuery
或IndirectQuery
包來開始一個會話,這種機制類似於使用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顯示管理器被開發出來,有商業有開源,在基本的顯示管理上提供了附加的功能。
- Qingy (頁面存檔備份,存於網際網路檔案館)在X Window中超輕型和可配置的圖形化登錄管事器(使用DirectFB)
- scologin(由SCO Open Desktop提供)能檢查過期密碼和執行一些管理任務
- GDM(由GNOME提供)
- KDM(由KDE提供)允許用戶在登錄界面圖形化的選擇某個窗口管理器或桌面環境
- XDM是X Window系統的默認顯示管理器
- LDM,Linux Terminal Server Project的(遠程)顯示管理器
- dtlogin(工作於CDE)
- WINGs Display Manager(使用WINGs widget-set,用於Window Maker)
- entranced/entrance (employs the architecture used in Enlightenment v.17, on hiatus since 2005)
- LXDM,一個輕量級的顯示管理器http://wiki.lxde.org/en/LXDM (頁面存檔備份,存於網際網路檔案館)
- SLiM,一個獨立的登錄管理器
- CDM,一個Linux下的超輕量級控制台顯示管理器
- xlogin,X Window登錄和獨立的XDMCP服務器
- Enter,輕量級的圖形登錄管理器
- Orthos,另一個輕量級的解決方案附帶真正的結構化主題
- nodm,針對收款機、電器和移動電話的自動登錄的顯示管理器(已停止開發[1])
- LightDM,Canonical公司開發的輕量級、模塊化、跨桌面,完全更換主題的桌面管理器
在大多數Linux發行版中,系統默認的顯示管理器由/etc/X11/default-display-manager文件選擇(註:本條已不適用使用Gnome或KDE的現代Linux發行版)
參見
參考文獻
- ^ Added a bigger not maintained note · spanezz/nodm@0552524. GitHub. [2020-10-31] (英語).
外部連結
- Linux XDMCP HOWTO (頁面存檔備份,存於網際網路檔案館)
- 馴服X顯示管理器 (頁面存檔備份,存於網際網路檔案館)
- X Display Manager (頁面存檔備份,存於網際網路檔案館),來自*FreeBSD手冊 (頁面存檔備份,存於網際網路檔案館)
- 從Windows中使用XDMCP登錄Linux使用Windows登錄Linux。