本文介紹圖形在 Linux 中的工作原理以及它由哪些元件組成。 它包含桌面環境各種實現的許多螢幕截圖。
如果您並不真正區分 KDE 和 GNOME,或者您確實區分了 KDE 和 GNOME,但想知道還有哪些其他選擇,那麼本文適合您。 這是一個概述,雖然它包含很多名稱和很少的術語,但該材料對於初學者和那些只關注 Linux 的人也很有用。
在設定遠端存取和實施瘦客戶端時,高級用戶也可能對該主題感興趣。 我經常遇到經驗豐富的 Linux 用戶,他們會說“伺服器上只有一個命令行,我不打算更詳細地研究圖形,因為這都是普通用戶所需要的。” 但即使是 Linux 專家也非常驚訝和高興地發現 ssh 命令的「-X」選項(為此了解 X 伺服器的操作和功能很有用)。
我在「」 教授 Linux 課程已經近 15 年了
隨著文章的進展,我為那些想要深入研究該主題的人提供每個組件的鏈接,例如維基百科文章(如果有英語和俄語文章,則指向更完整/有用的版本)。
對於基本範例和螢幕截圖,我使用了 openSUSE 發行版。 只要儲存庫中有大量套件,就可以使用任何其他社群開發的發行版。 在商業發行版上展示各種桌面設計很困難,但並非不可能,因為它們通常只使用一兩個最知名的桌面環境。 這樣,開發人員就可以縮小發布穩定、經過調試的作業系統的任務範圍。 在同一系統上,我安裝了在儲存庫中找到的所有 DM/DE/WM(下面這些術語的解釋)。
帶有“藍色框”的螢幕截圖是在 openSUSE 上拍攝的。
我在其他發行版上截取了帶有「白框」的螢幕截圖,它們在螢幕截圖中有所指示。
帶有“灰色框”的螢幕截圖取自互聯網,作為過去幾年桌面設計的範例。
那麼,讓我們開始吧。
組成圖形的主要組件
我將重點介紹三個主要組件,並按照它們在系統啟動時啟動的順序列出它們:
- DM(顯示管理器);
- 顯示伺服器;
- DE(桌面環境)。
此外,作為桌面環境的重要子條款:
- 應用程式管理器/啟動器/切換器(開始按鈕);
- WM(視窗管理器);
- 桌面環境自備的各種軟體。
每個點的更多細節。
DM(顯示管理器)
啟動「圖形」時啟動的第一個應用程式是DM(顯示管理器),一個顯示管理器。 其主要任務:
- 詢問允許哪些使用者進入系統,請求身份驗證資料(密碼、指紋);
- 選擇要執行的桌面環境。
目前廣泛應用於各種發行版:
現有 DM 清單保持最新狀態
值得注意的是,以下螢幕截圖使用相同的 LightDM 顯示管理器,但在不同的發行版中(括號中表示發行版名稱)。 看看由於來自不同發行版的設計師的工作,這個 DM 看起來有多麼不同。
這種多樣性的主要內容是明確有一個應用程式負責啟動圖形並允許用戶訪問這些圖形,並且該應用程式有不同的實現,它們在外觀和功能上略有不同(選擇設計環境、用戶選擇、針對不良用戶的版本、透過協定進行遠端存取的可用性
顯示伺服器
顯示伺服器是一種圖形基礎,其主要任務是與顯示卡、顯示器和各種輸入裝置(鍵盤、滑鼠、觸控板)配合工作。 也就是說,以「圖形」呈現的應用程式(例如瀏覽器或文字編輯器)不需要知道如何直接使用設備,也不需要知道驅動程式。 X Window 負責這一切。
當談到 Display Server 時,多年來在 Linux 中,甚至在 Unix 中,應用程式的意思是
現在許多發行版正在取代 X
您也可以閱讀:
X架構的一般描述 ,在 X 中運行 X ,Windows 作業系統下的 X (需要遠端啟動圖形應用程序,例如使用 PuTTY)。
首先,讓我們啟動 X 和其中的幾個圖形應用程式。
研討會“運行 X 及其中的應用程式”
我將從新建立的 webinaruser 使用者執行所有操作(以 root 身分執行所有操作會更容易,但並不安全)。
- 由於 X 需要存取設備,我授予存取權限: 設備清單是透過查看日誌中啟動 X 時的錯誤來確定的 (/home/webinaruser/.local/share/xorg/Xorg.77.log)
% sudo setfacl -m u:webinaruser:rw /dev/tty8 /dev/dri/card0 /dev/fb0 /dev/input/*
- 之後我啟動 X:
% X -retro :77 vt8 &
選項: * -retro - 以「灰色」經典背景啟動,而不是使用黑色作為預設背景; * :77 - 我設定(合理範圍內的任何一個都是可能的,只有:0 很可能已經被已經運行的圖形佔用)屏幕編號,實際上是某種唯一標識符,通過它可以區分幾個正在運行的X; * vt8 - 表示終端,此處為 /dev/tty8,將在其上顯示 X)。
- 啟動圖形應用程式:
為此,我們首先設定一個變量,應用程式將透過該變量了解我正在運行哪個 X 來發送需要繪製的內容:
% export DISPLAY=":77"
您可以像這樣查看正在運行的 X 清單:
ps -fwwC X
設定變數後,我們可以在 X 中啟動應用程式 - 例如,我啟動一個時鐘:
% xclock -update 1 &
% xcalc &
% xeyes -g 200x150-300+50 &
該片段的主要想法和結論:
- X需要存取設備:終端機、視訊卡、輸入設備、
- X 本身不顯示任何介面元素 - 它是灰色(如果使用“--retro”選項)或特定尺寸(例如,1920x1080 或 1024x768)的黑色畫布,以便在其中運行圖形應用程式。
- 「十字」的移動表示 X 追蹤滑鼠的位置並將此資訊傳輸到其中執行的應用程式。
- X 也會捕捉鍵盤上的按鍵並將該資訊傳輸到應用程式。
- DISPLAY 變數告訴圖形應用程式在哪個螢幕中(每個 X 在啟動時都以唯一的螢幕編號啟動),因此需要在我的電腦上運行的哪些螢幕中繪製 X。 (也可以在此變數中指定遠端計算機,並將輸出發送到網路上另一台電腦上執行的 Xs。)由於 Xs 是在沒有 -auth 選項的情況下啟動的,因此無需處理 XAUTHORITY 變數或 xhost命令。
- 圖形應用程式(或 X 客戶端這樣稱呼它們)在 X 中呈現 - 無法移動/關閉/更改它們“-g(寬度)x(高度)+(OffsetFromLeftEdge)+(OffsetFromTopEdge)”。 帶有減號,分別從右側和從底部邊緣開始。
- 有兩個術語值得一提:X-server(X 的名稱)和 X-clients(X 中執行的任何圖形應用程式的名稱)。 對這個術語的理解有些混亂;許多人的理解恰恰相反。 在這種情況下,當我從「客戶端電腦」(遠端存取術語)連接到「伺服器」(遠端存取術語)以便在顯示器上顯示伺服器的圖形應用程式時,X 伺服器將在監視器(即在「客戶端電腦」上,而不是在「伺服器」上)和X 用戶端在「伺服器」上啟動和運行的計算機,儘管它們顯示在「客戶端電腦」的監視器上。
DE 元件
接下來,讓我們來看看通常構成桌面的元件。
DE 元件:開始按鈕與工作列
讓我們從所謂的「開始」按鈕開始。 通常,這是“任務欄”中使用的單獨小程式。 通常還有一個小程式用於在運行的應用程式之間進行切換。
在研究了不同的桌面環境之後,我將此類應用程式總結為通用名稱“應用程式管理器(啟動器/切換器)”,即用於管理應用程式(啟動和在正在運行的應用程式之間切換)的工具,並且還指出實用程式是此類應用程式的範例。
- 它以經典(螢幕邊緣之一的整個長度)「工作列」上的「開始」按鈕的形式出現:
○ xfce4-面板,
○ 伴侶面板/侏儒面板,
○ 瓦拉麵板,
○ 色調2。 - 您也可以有一個單獨的「MacOS 形工作列」(不是螢幕邊緣的整個長度),儘管許多工作列可以以兩種樣式顯示。 相反,這裡的主要區別純粹是視覺上的——存在“懸停時的象形圖放大效果”。
○ 碼頭,
○ 拿鐵底座,
○ 開羅碼頭,
○ 木板。 - 和/或當您按下熱鍵時啟動應用程式的服務(在許多桌面環境中,需要類似的組件並允許您配置自己的熱鍵):
○ sxhkd。
- 還有各種類似選單的「啟動器」(來自英文Launch(啟動)):
○ d菜單運行,
○ 羅菲-秀德倫,
○ 阿爾伯特,
○ 咕嚕。
DE 元件:WM(視窗管理器)
WM(視窗管理器)- 負責管理視窗的應用程序,增加了以下功能:
- 在桌面上移動視窗(包括在視窗的任何部分按住 Alt 鍵的標準窗口,而不僅僅是標題列);
- 調整視窗大小,例如拖曳「窗框」;
- 在視窗介面中添加“標題”和用於最小化/最大化/關閉應用程式的按鈕;
- 哪個應用程式處於“焦點”的概念。
我將列出最著名的(在括號中我指出預設使用哪個 DE):
我還將列出“帶有 DE 元素的舊 WM”。 那些。 除了視窗管理器之外,它們還有「開始」按鈕和「工作列」等元素,這些都是成熟的 DE 的典型元素。 不過,如果 IceWM 和 WindowMaker 都已經在 2020 年發布了更新版本,那麼它們到底有多「老」呢? 事實證明,更正確的不是“老”,而是“老前輩”:
除了“經典”(“堆疊視窗管理器”)之外,值得特別一提的是
該項目還值得單獨一提
各種視窗管理器的詳細清單也可以在
DE 組件: 休息
還值得注意的是以下桌面元件(這裡我使用既定的英語術語來描述一種應用程式 - 這些不是應用程式本身的名稱):
- 小程式:
- 軟體(Widget 工具包)- 通常環境中會提供特定的「最小軟體集」:
DE(桌面環境)
由以上組件,就得到了所謂的「桌面設計環境」。 通常其所有組件都是使用相同的圖形庫和相同的設計原理開發的。 因此,至少可以保持應用程式外觀的整體風格。
在這裡我們可以重點介紹以下目前現有的桌面環境:
GNOME 和 KDE 被認為是最常見的,XFCE 緊隨其後。
各種參數的對比可以在對應的表格中找到
德品種
歷史上還有這樣有趣的例子:2003-2007年,Sun為Linux做了一個名為「Project Looking Glass」的「3D桌面設計」。 我自己使用過這個桌面,或者更確切地說「玩過」它,因為它很難使用。 這種「3D 設計」是用 Java 寫的,當時還沒有支援 3D 的顯示卡。 因此,所有的效果都由處理器重新計算,電腦必須非常強大,否則一切都會緩慢。 但結果很漂亮。 三維應用程式圖塊可以旋轉/擴展。 可以在桌面的圓柱體中旋轉360度全景壁紙。 有幾個漂亮的應用程式:例如以「換CD」的形式聽音樂等,你可以在YouTube上觀看
輕量級桌面。 該項目自 1996 年以來已經存在了相當長的時間。 近年來,與較重的 KDE 和 GNOME 相比,它在許多需要輕量級和「經典」桌面介面的發行版上非常流行。 它有很多設定和大量自己的程式:終端(xfce4-terminal)、檔案管理器(thunar)、圖片檢視器(ristretto)、文字編輯器(mousepad)。
用於 Elementary OS 發行版。 在這裡,我們可以說,有些「桌面」是在一個單獨的發行版中開發和使用的,而在其他發行版中使用不多(如果不是「根本不使用」)。 至少他們還沒有受到歡迎並讓大多數觀眾相信他們的方法的優點。 Pantheon 旨在建立一個類似於 macOS 的介面。
帶有塢站面板的選項:
高度關注圖形效果和小部件(從其他桌面環境沒有日曆/時鐘等桌面小部件的時代開始)。 使用自己的庫。 有一大套自己的「漂亮」應用程式:終端機(Terminology)、影片播放器(Rage)、圖片檢視器(Ephoto)。
這是 Enlightenment17 的一個分支,用於 BodhiLinux 發行版。
最初,創建了一個與 KDE 相對的「經典」桌面介面,它是在 QT 庫中編寫的,當時在許可證下分發,這對於商業發行來說不太方便。
從第三個版本開始,GNOME 開始附帶了 GNOME Shell,它具有“非經典的外觀”,並不是所有用戶都喜歡(任何突然的介面變化都很難讓用戶接受)。 因此,出現了以“經典”風格繼續開發此桌面的分支項目:MATE 和 Cinnamon。 在許多商業發行版中預設使用。 它有大量的設定和自己的應用程式。
它源自於 GNOME2,並繼續開發這個設計環境。 它有大量在 GNOME2 中使用的設定和應用程式分支(使用新名稱),以免這些分支與 GNOME3 的新版本混淆。
GNOME Shell 的一個分支,為使用者提供「經典」風格的介面(如 GNOME2 中的情況)。
它有大量的設定和與 GNOME Shell 相同的應用程式。
GNOME 的「經典」風格分支,作為 Solus 發行版的一部分開發,但現在也作為各種其他發行版的獨立桌面。
由 KDE 專案開發的桌面環境。
它具有大量可供簡單用戶透過圖形介面使用的設定以及在此桌面框架內開發的許多圖形應用程式。
2008 年,KDE 發布了 KDE Plasma 的新實作(桌面引擎被大量重寫)。 此外,與 GNOME/MATE 一樣,並非所有 KDE 粉絲都喜歡它。 結果,出現了該專案的一個分支,繼續先前版本的開發,稱為 TDE(Trinity Desktop Environment)。
使用 Qt 編寫的新桌面環境之一(KDE 是在其上編寫的)。 它有很多設定並且相當漂亮(儘管這是一個主觀概念)和開發良好的介面。 作為 Deepin Linux 發行版的一部分開發。 還有其他發行版的軟體包
飛
使用 Qt 編寫的桌面環境範例。 作為 Astra Linux 發行版的一部分開發。
輕量級桌面環境。 就像前面的幾個例子一樣,使用 Qt 編寫。 事實上,它是 LXDE 專案的延續,也是與 Razor-qt 專案合併的結果。
正如你所看到的,Linux 中的桌面看起來可能非常不同,並且有一個適合每個人口味的介面:從非常漂亮的3D 效果到簡約,從「經典」到不尋常,從積極使用系統資源到輕量級,從大型螢幕到平板電腦/智慧型手機。
好吧,我希望我能夠了解 Linux 作業系統中圖形和桌面的主要元件是什麼。
本文的資料於 2020 年 XNUMX 月在網路研討會上進行了測試。 你可以觀看
就這樣。 我希望這可以幫助你。 如果您有任何問題或意見,請寫信。 我很樂意回答。 那麼,來學習吧
來源: www.habr.com