X窗口系統(tǒng):X Window System.這是MIT 1984年提出的以位圖圖像顯示圖形化界面的一套軟件規(guī)范及協(xié)議.
X Window System使用最廣的軟件實現(xiàn)是Xorg.
X Window System使用C/S架構(gòu),服務(wù)端和客戶端可以基于網(wǎng)絡(luò)通信
客戶端(也就是各種軟件)將繪圖請求發(fā)給服務(wù)端,服務(wù)端操縱顯卡或視頻終端把位圖圖像繪制出來,并處理鍵盤鼠標(biāo)的事件,發(fā)送給客戶端.注意,和人交互的是服務(wù)端.
而為了方便編寫GUI程序,程序員開發(fā)出GTK,QT這種圖形庫,這些圖形庫作為X window的客戶端工作.
WSL是Windows的一個子系統(tǒng),科學(xué)的(非官方)名稱為GNU/NT:lxcore.微軟沒有從Linux抄一行代碼,實現(xiàn)了Linux大部分二進(jìn)制接口,但是目前沒有實現(xiàn)Linux的顯卡驅(qū)動功能,因此即使WSL中安裝了Xorg,也會不能啟動.
要想使用WSL顯示GUI,必須要利用X window可以使用網(wǎng)絡(luò)遠(yuǎn)程顯示的特性,在Windows可以使用GUI的子系統(tǒng)win32中安裝X server.
那么Xfce是干什么的呢?
為了管理眾多的窗口怎么在屏幕上顯示,需要窗口管理器(Window manager).窗口管理器可以實現(xiàn)一個屏幕上顯示多個X程序,實現(xiàn)調(diào)整程序大小,標(biāo)題欄,最大化,最小化,關(guān)閉按鈕,虛擬桌面這些功能.
沒有WM,一次只能運行一個GUI程序,而且分辨率鎖死,顯然很不符合使用習(xí)慣.
為了實現(xiàn)窗口之間的特效,還需要窗口合成器.窗口合成器可以制造半透明之類的特效.
Xfce使用的窗口管理器為Xfwm,此外還有Gnome的mutter,KDE的Kwin等
<figcaption>xfwm設(shè)置與幫助信息</figcaption>
Windows也有類似的概念,其窗口管理器為Desktop Window Manager(DWM.exe),win7酷炫的Aero就算dwm實現(xiàn)的,win8之后雖然砍掉了毛玻璃,但是dwm成為關(guān)鍵進(jìn)程,不能像win7一樣關(guān)掉.
為了使用方便,一般還需要Windows里任務(wù)欄,開始按鈕,通知區(qū)域這種功能,Linux里一般稱之為面板.
Linux還有一個組件叫顯示管理器(display manager),用于開機(jī)后顯示登陸界面,并啟動窗口管理器等X組件.沒有顯示管理器,Linux開機(jī)會顯示命令行登陸界面,需要使用命令行登陸后手動啟動Xserver和窗口管理器才能顯示GUI,顯示管理器自動的完成這些工作.常見的有GDM,KDM,LightDM,LXDM
此外為了顯示桌面圖標(biāo),還需要一個文件管理器.
把窗口管理器,顯示管理器,合成器,文件管理器及其他應(yīng)用,主題,GTK+/QT等圖形庫,連同通用的組件,比如Xorg,進(jìn)程間通信用的Dbus等等庫或程序,打包起來,就形成當(dāng)今Linux下的桌面環(huán)境(Desktop environment),Gnome,KDE,Xfce,Ubuntu放棄的Unity,國產(chǎn)Deepin的DDE,都是桌面環(huán)境.也可以使用各種組件拼接出自己的桌面環(huán)境.
作者:韓樸宇
鏈接:https://www.zhihu.com/question/321725817/answer/669568568
來源:知乎
著作權(quán)歸作者所有咒精。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)纯命,非商業(yè)轉(zhuǎn)載請注明出處迫肖。