導(dǎo)讀 | Wayland 是?Linux?發(fā)行版的替代窗口系統(tǒng)。它取代了老化的 X11 標(biāo)準(zhǔn)。由于它需要修改應(yīng)用程序才能使用它,因此迄今為止采用速度很慢。在撰寫(xiě)本文時(shí),增強(qiáng)的安全性是相對(duì)于 X11 的主要優(yōu)勢(shì)。 |
X11 或 X Window 系統(tǒng)可讓您的圖形桌面環(huán)境顯示和控制窗口。 Wayland 是 X11 的替代品。它的設(shè)計(jì)速度更快、更安全。以下是您需要了解的有關(guān)它們的信息。
什么是Wayland?
Wayland 是 X11 的現(xiàn)代替代品,幾十年來(lái) X11 一直是 Linux 上的默認(rèn)窗口系統(tǒng)。 Wayland 是一種通信協(xié)議,定義 X Window 顯示服務(wù)器和客戶端應(yīng)用程序之間的消息傳遞。 Wayland 項(xiàng)目提供了客戶端和服務(wù)器庫(kù),使應(yīng)用程序能夠使用該協(xié)議。
Wayland 項(xiàng)目由紅帽開(kāi)發(fā)人員于 2008 年啟動(dòng)。
X的眾多名字
X Window System 是一個(gè)窗口系統(tǒng),由麻省理工學(xué)院于 1984 年首次針對(duì) Unix 操作系統(tǒng)發(fā)布。應(yīng)用程序可以基于窗口系統(tǒng)提供的功能來(lái)生成用戶界面。
到 1987 年,X Window 系統(tǒng)已達(dá)到版本 11,并被稱(chēng)為 X11。它現(xiàn)在由 X.Org 基金會(huì)管理。盡管自 1987 年以來(lái)已經(jīng)出現(xiàn)了許多較小的版本,但它仍處于版本 11。截至撰寫(xiě)本文時(shí),當(dāng)前的穩(wěn)定版本是 X11R7.7。
名稱(chēng)中的“X”并不表示羅馬數(shù)字中的“10”,也不表示“Xtra”、“Xtending”或類(lèi)似的意思。以前的窗口系統(tǒng)被稱(chēng)為“W”,代表“windows”,當(dāng)他們開(kāi)始新項(xiàng)目時(shí),他們只是簡(jiǎn)單地移動(dòng)到字母表中的下一個(gè)字母。
您會(huì)聽(tīng)到 X Window 系統(tǒng)被稱(chēng)為“X”、“X11”、“Xorg”、“X Windows”和“X Window System”。
X11 的工作原理
X Window 系統(tǒng)處理低級(jí)事件和原語(yǔ),例如與鼠標(biāo)交互以及繪制和移動(dòng)窗口。應(yīng)用程序處理視覺(jué)效果和界面設(shè)計(jì)。窗口的外觀、它們有哪些按鈕以及這些按鈕的位置是應(yīng)用程序程序員做出的選擇。 X Window 系統(tǒng)將最終的設(shè)計(jì)繪制到屏幕上。
X11 提供了在工作的 X Window 系統(tǒng)的各個(gè)組件之間必須傳遞的通信的定義。這種通信是必需的,因?yàn)閱⒂?X 的應(yīng)用程序用于繪制其窗口和界面元素的代碼不在應(yīng)用程序內(nèi)部。該工作由 X 服務(wù)器和窗口管理器共享。
應(yīng)用程序是 X 服務(wù)器的客戶端。窗口管理器是一種特殊類(lèi)型的客戶端。 X 服務(wù)器負(fù)責(zé)管理資源、執(zhí)行繪圖請(qǐng)求以及將按鍵和鼠標(biāo)單擊等事件編組到適當(dāng)?shù)膽?yīng)用程序。
它還充當(dāng)窗口管理器和應(yīng)用程序之間通信的中間人,在它們之間來(lái)回代理消息。窗口管理器維護(hù)應(yīng)用程序已打開(kāi)的窗口列表、它們?cè)谄聊簧系奈恢谩⑺鼈兊拇笮?、它們是否重疊等等。
合成窗口管理器為每個(gè)窗口維護(hù)一個(gè)離屏緩沖區(qū)。它將這些緩沖區(qū)合成為一個(gè)圖像,該圖像代表最頂層的窗口(代表整個(gè)桌面)并寫(xiě)入屏幕。
所有現(xiàn)代圖形桌面環(huán)境,包括 GNOME 和 KDE,都使用合成窗口管理器。
Wayland 的工作原理
Wayland 旨在解決 X11 的問(wèn)題。 X11 架構(gòu)需要大量消息傳遞。 X 服務(wù)器位于客戶端和窗口管理器之間。它還位于所有東西和(通過(guò)內(nèi)核)圖形硬件之間。消息量過(guò)大可能會(huì)導(dǎo)致延遲和滯后、跳躍的視覺(jué)體驗(yàn)。
還有一個(gè)龐大的代碼庫(kù)。有服務(wù)器應(yīng)用程序、窗口管理器應(yīng)用程序和客戶端使用的 X11 庫(kù)。您的代碼庫(kù)越大(且越舊),維護(hù)起來(lái)就越困難,并且您將更加難以處理遺留代碼。
通過(guò)改變架構(gòu),Wayland 實(shí)現(xiàn)了代碼庫(kù)的現(xiàn)代化和簡(jiǎn)化,帶來(lái)了性能優(yōu)勢(shì)并提高了安全性。
實(shí)際上,他們已將服務(wù)器和窗口管理器合并到一個(gè)應(yīng)用程序中。他們刪除了執(zhí)行現(xiàn)在由內(nèi)核執(zhí)行的功能的所有代碼。他們沒(méi)有重復(fù)工作,而是利用了內(nèi)核的功能。
使用 Wayland,合成器和客戶端應(yīng)用程序可以直接通信。合成器維護(hù)其內(nèi)部映射,其中包括哪些窗口在桌面上的位置、它們的大小和狀態(tài)。它代理鍵盤(pán)、鼠標(biāo)和窗口更改事件,并將它們發(fā)送到擁有這些窗口的應(yīng)用程序。
應(yīng)用程序相應(yīng)地更新用戶界面。主要區(qū)別在于渲染是在應(yīng)用程序本身內(nèi)部使用鏈接的 Wayland 庫(kù)執(zhí)行的。
應(yīng)用程序要么更新用于保存窗口的緩沖區(qū),要么創(chuàng)建一個(gè)新緩沖區(qū)并丟棄舊緩沖區(qū)。然后,客戶端應(yīng)用程序向合成器發(fā)送通知,告訴它更新其窗口映射并使用新的或更新的視頻緩沖區(qū)。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-811551.html
這種簡(jiǎn)化的架構(gòu)和現(xiàn)代代碼設(shè)計(jì)提供了性能改進(jìn),尤其是窗口大小調(diào)整和拖動(dòng),顯得平滑流暢。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-811551.html
到了這里,關(guān)于Linux 上的 Wayland 是什么?它與 X 有何不同?的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!