這裏的“桌面”指的是桌面環境,Linux不是一種基於圖形界面環境的操作系統,它的圖形環境是完全可以卸載。在內核眼裏,圖形環境只不過是一個普通的應用程序,和其他的服務器程序沒有什麼不同。
在說桌面,先講X窗口系統的基本組成。X窗口系統(X Window System)是Linux圖形用戶環境的基礎,基於一種夠獨特的服務器/客戶機架構。
X窗口系統的基本組成
- X服務器
X服務器用於實際控制輸入設備(如鍵盤、鼠標等)和位圖式輸出設備((如顯示器)。準確地說,X服務器定義了給X客戶機使用這些設備的抽象接口,但沒有定義高級實體的編程接口,這意味着它不能理解“畫一個按鈕”這類語句。而必須告訴它:“畫一個方塊,周圍有陰影,用戶點鼠標左鍵的時候陰影要消失、、、方塊上還要有字、、”。
這種設計的意義在於,X服務器能夠最大程度上的與平臺無關。用戶可以自由選擇窗口管理器和widget庫來定製自己的桌面,而不需要改變窗口系統的底層配置。 - X客戶端程序
需要向X服務器請求服務的程序就是X客戶端程序。 - 窗口管理器
窗口管理器負責控制應用程序窗口的各種行爲,如移動、縮放、最大化和最小化窗口,在多個窗口間切換等。從本質上來說,窗口管理器是一種特殊的X客戶端程序,因爲這些功能也是需要向X服務器發送指令實現的。 - 顯示管理器
顯示管理器提供了一個登錄界面,它的任務就是驗證用戶的身份,讓用戶登錄到系統。可以說,圖形界面的一切(除了它自己)都是由顯示管理器啓動,包括X服務器。用戶可以選擇關閉顯示管理器,這樣就必須通過命令運行startx命令(或使用.login腳本)來啓動X服務器。 - widget庫
widget庫定義了一套圖形用戶界面的編程接口。應用程序的開發人員調用widget庫來實現具體的用戶界面,如按鈕、菜單、滾動條、文本框等。 - 桌面環境
桌面環境是把各種X有關的東西(除了X服務器)整合在一起的“大雜燴”。這些程序包括像gedit這樣的普通應用軟件、窗口管理器、顯示管理器和widget庫。無論桌面環境如何複雜,最後處理圖形輸出的仍然是X服務器。
X系統的啓動過程
X系統的啓動過程基本是由顯示管理器完成的。顯示管理器需要做下面的工作:
- 啓動X服務器
- 提供一個友界面友好的屏幕,等待驗證用戶的身份。
- 執行用戶的引導腳本,這個腳本用於建立用戶的桌面環境。
桌面環境的引導腳本是一段用Linux命令組成的腳本程序,叫做Xsession。Xsession通過啓動窗口管理器、任務欄,設定應用默認值、安裝標準鍵綁定等來啓動整個桌面環境。Xsession會一直運行,直到用戶退出,或者說,當Xsession結束後,用戶就退出了。窗口管理器(Window Manager)是Xsession啓動的唯一的前提程序(其他程序都在後臺執行),如果沒有這個前臺程序,那麼用戶會在登錄又立即退出系統。
第一次使用這個Markdown編輯工具,基本不會用,純文字沒有劃重點,有怪莫怪。感覺還是之前那個富文本編輯好用。