xinit, xorg, X11, x server这些有什么区别(和联系)?
xinit, xorg, X11, x server这些有什么区别(和联系)?
1 个回答
它們有的是不同類別的東西,有的是不同層次的東西。
注意這裏的所有Window都沒有s,指代的是通常意義上的“窗口”本身,而非微軟的那個操作系統(下文中僅有一次提及了windows)。
首先說X*這類東西:
xorg和X11可以被近似認爲等價。但詳細來說,X11是X Window System的最新標準(1984年到現在);xorg是X11的一個最廣爲使用的實現(同時也指代該實現背後的組織/基金會),“廣”到貌似沒有其他實現。下文將混用X、X11和X Window System。
x server是X標準/協議的一部分(很可能x session也是)。X11的規範中,圖形界面被設計爲Client-Server結構(經提醒,X的C/S結構和HTTP/WWW之類的C/S在表象上有區別【但接受了它的設定以後,其實是一回事】):其中x server負責輸出(給顯卡)、接收鍵盤/鼠標的原始輸入等;而每個工作在x上的應用程序是一個x client,x server在接收到輸入後會將輸入發送到對應的x client。(另請見評論第一條。)
x session的細節我沒仔細瞭解,但我理解中,每次啓動x server其實就創建了一個x session;且(如果我理解沒錯)每個x server(通過一些方法/軟件)可以執行多個x session。簡而言之,一個x session代表了你某次啓動的X上的(可見和不可見的)所有東西;所以(/另外)有時候也用x session來代表某一WM或DE(見下文)相關的初始化設置及其啓動之後的整個session(會話)。
xinit是X的一個工具/軟件。它的功能就是啓動一個x server及啓動一個x client(當然,該x client可以繼續啓動其他x client)。所以當你執行xinit之後的結果就是你(按照你給xinit的配置)啓動了圖形界面。
Display Manager(DM)用來管理用戶登錄等事宜(但我一直沒明白爲什麼要叫這個名稱)。可以粗略地類比爲windows之類的那個“登錄”界面。一般而言,在一個DM上,除了關於用戶名、密碼的部分外,還可以選擇/調整你所要載入的session(比如選擇你要載入哪個WM或DE之類)。
Window Manager(WM)是X開啓之後管理/控制(及提供用戶對控制的交互)各個窗口的東西/軟件。它主要做兩件事:
- 擺放各個窗口(比如某個窗口在哪,哪個窗口在哪個窗口前面)及設置窗口屬性(比如窗口的尺寸是多大,窗口的透明度有多少)
- 提供給用戶一套方法來允許用戶控制上一條所說的行爲(比如通過最廣爲使用的“標題欄”)
當然,實際上絕大多數時候我們使用的WM都不僅僅是做這兩件事,它們還提供(有限的,但一般來說很靈活的)一些方式來允許部分控制行爲自動化;一般都還會提供一個面板(panel)來提供一些常見/常規功能(最常見的就是:時鐘、“托盤”、窗口列表、虛擬桌面切換器)。當然一般而言WM提供的功能也就只有這麼多,大家都很剋制,不然就不能(沒必要)稱爲WM而應該稱爲DE了。
Desktop Environment(DE)是WM+一系列配套軟件和集合體。一般而言,一個DE都是以打造一套生態爲目標/出發點的,所以每個DE爲了達成該目的就會配套一系列軟件。通常而言,WM都是幾M或一二十M,但DE(即使只算核心配套軟件)隨隨便便就超過百M。和體積相應的,DE一般也都比較好看(指“協調”),而且對初級用戶更友好(比如調整多數部分都有圖形界面控制,而WM一般都只能通過手動修改配置文件)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了