《陳霖翔-openkylin wayland合成器wlcom分析.pdf》由會員分享,可在線閱讀,更多相關《陳霖翔-openkylin wayland合成器wlcom分析.pdf(15頁珍藏版)》請在三個皮匠報告上搜索。
1、Openkylin Wayland合成器wlcom介紹2024.3打造中 國 操 作 系 統 核 心 力 量打造中 國 操 作 系 統 核 心 力 量陳霖翔麒麟軟件有限公司CONTENTSCONTENTS目錄錄1.wayland協議與X協議差異2.wayland合成器發展現狀3.wlcom合成器介紹4.wlcom合成器未來規劃X11顯示協議存在渲染效率欠缺、安全性不強、社區維護活躍度低等不足,正逐步被wayland顯示協議替代X11顯示協議 始于1984,其設計已略顯陳舊,自身架構缺陷凸顯,社區活躍度低X11顯示協議中合成器是一個X顯示服務外的獨立組件,通信開銷大,且存在窗口內容與合成器不同步
2、的問題,容易造成圖像撕裂X11顯示框架安全性不強,X客戶端可篡改其他X客戶端窗口屬性及顯示內容X11合成管理器必須主動向X顯示服務獲取所有客戶端圖像數據進行圖像合成。該過程將耗費一定時間,導致圖像顯示延遲wayland顯示協議 架構簡潔,性能及靈活性出色,是下一代主流顯示協議wayland合成器與Wayland顯示服務合為一個整體組件,通信開銷低,窗口內容與合成器同步,保證每一幀沒有撕裂wayland 顯示框架隔離了各客戶端間的輸入和輸出,提高客戶端的安全性wayland合成器被動接收客戶端圖像數據,實時進行圖像合成X Client_lX Client_nX serverCompositore
3、vdevKMSwayland CompositorevdevKMSwayland client_l wayland client_nX11顯示框架wayland顯示框架kernelkernel2316231445 wayland協議與X協議差異1wayland合成器是wayland顯示框架中的核心組件,提供接收輸入事件、管理窗口顯示、輸出屏幕圖像等基本功能。目前社區已研發出多個合成器,wlcom合成器取眾家之長,追求兼容性好、性能強、易維護westonweston是wayland合成器的參考實現,實現Wayland的標準協議和基本功能為汽車、嵌入式、機械、工業、機頂盒和電視等非桌面用途提供了一
4、個基礎的功能桌面環境未考慮窗口分層顯示、工作區、應用特效等桌面用戶使用需求以功能實現為主要目的,并未考慮性能優化僅具備X應用的基礎顯示能力kwinKDE社區開發,基于Qt和kwayland實現支持虛擬工作區、窗口層級設置,窗口顯示位置設置等功能具備圖像模糊、最大/小化動畫等多種特效代碼架構復雜,維護難度大相關代碼依賴龐大,Qt、kwayland、KF5 等組件相互依賴,升級困難提供基本完善的X兼容能力,支持X核心協議,但未考慮部分特殊用戶場景sway設計簡單高效,基于wlroots實現采用平鋪式窗口顯示模式,更好利用屏幕空間美觀度不足,不支持各種動畫特效平鋪式窗口顯示模式入門難度高,且不符合普
5、通用戶的使用習慣僅具備X應用的基礎顯示能力開源開源waylandwayland合成器發展現狀合成器發展現狀2框架自主設計:簡化系統依賴、靈活功能拓展、增強X兼容性現有開源wayland合成器基于某些成熟開發框架,依賴龐雜,整體升級不便,wlcom僅依賴基礎庫wlcom通過整體設計架構改造,實現插件式框架結構,全插件管理,方便功能靈活擴展新增X兼容增強模塊,解決X應用的生態兼容問題應用層系統庫依賴框架QT開發框架鍵鼠輸入分辨率設置窗口堆疊顯示工作區管理圓角陰影主題設置主副屏切換空閑鎖屏應用Dbus接口Pixman渲染窗口特效窗口管理Opengl渲染Vulkan渲染KwaylandKDE Fram
6、eworklibdrmlibinputlibcairolibxkbcommon插件式框架接口擴展插件功能擴展插件渲染擴展插件協議擴展插件抽象化X兼容增強插件安全協議插件分辨率設置窗口堆疊顯示工作區管理wlcom合成器介紹3系統依賴簡化、X兼容性增強、功能定制靈活wlcom合成器介紹3應用接口層功能框架層基礎支撐層協議封裝層硬件支持層系統依賴庫特效框架采用單獨特效庫加載模式并支持特效自定義渲染方式,如自定義著色器X兼容框架提供獲取屏幕圖像數據能力、遠程控制軟件輸入轉換等能力輸入管理框架實現多席位輸入設備管理,解決多用戶無法同時輸入問題拋棄了kwin框架依賴,僅依賴系統的pixman、libdrm
7、等基礎庫提供對底層GPU、輸入設備驅動交互支持支持景嘉微、摩爾線程等國產顯卡及華為SOC集成芯片結合ukui組件功能需求,整合原有kde擴展協議,去繁從簡,實現ukui-shell協議針對金融、政府領域需求,增加相關安全協議利用協議封裝接口實現合成器所需提供的窗口管理、輸入事件處理等基礎功能支持Pixman、Opengl、Vulkan等渲染后端,局部刷新優化結合ukui應用開發框架需求,提供應用功能接口,便于靈活的系統功能開發提供外部插件功能接口,滿足第三方應用定制化功能需求,靈活擴展應用層輸入設備支持商用GPU支持外部插件接口庫插件窗口管理插件圖像渲染合成插件安全插件輸出管理插件窗口裝飾插件
8、特效插件功能框架接口庫插件X兼容插件wlroots自研協議庫插件信創GPU支持輸入管理插件libdrmlibcairolibinputlibxkbcommon系統依賴庫新增原始依賴重構安全協議目前合成器運行所需硬件驅動能力wlcom合成器介紹3函數參數能力drmGetCapDRM_CAP_PRIMEDRM_PRIME_CAP_IMPORT、DRM_PRIME_CAP_EXPORTDRM_CAP_CRTC_IN_VBLANK_EVENTVBLANK事件底層必須支持drmSetClientCapDRM_CLIENT_CAP_UNIVERSAL_PLANES必須支持獲取多個plane層函數特性egl
9、QueryString(EGL_NO_DISPLAY,EGL_EXTENSIONS)EGL_EXT_platform_base、EGL_KHR_platform_gbmeglQueryString(GBM_PLATFORM,EGL_EXTENSIONS)EGL_KHR_image_base、EGL_EXT_image_dma_buf_import、EGL_KHR_no_config_context、EGL_KHR_surfaceless_context DRM支持 EGL支持GL_EXT_texture_format_BGRA8888、GL_EXT_unpack_subimage、GL_OES
10、_EGL_image、GL_OES_EGL_image_external OPENGLES支持wlcom合成器介紹31.wayland標準協議合成器目前支持的Wayland協議4.kde的協議 org_kde_kwin_server_decoration_manager、org_kde_plasma_shell、org_kde_plasma_window_management2.wayland官方擴展協議 zwp_linux_dmabuf_v1、zwp_primary_selection_device_manager_v13.wlroots協議5.自研協議 ukui-shell、screens
11、hot_control、kywc_xwayland_bridgezwlr_output_manager_v1、zwlr_output_power_manager_v1、zwlr_foreign_toplevel_manager_v1、zwlr-screencopy-unstable-v1、zwlr_layer_shell_v1支持所有的wayland核心協議,例如wl_compositor、wl_subcompositor、wl_shm、wl_drm、wl_seat、wl_data_device_manager、wl_output,其他標準協議xdg_wm_base、zxdg_decorati
12、on_manager_v1、zxdg_output_manager_v1自研X兼容增強插件,通過橋接轉換協議打通特殊X接口到合成器通路,實現X應用廣泛兼容xwayland通用開源合成器X 接口橋接轉換協議xwaylandX兼容增強插件wlcom合成器X 接口目前國內主流應用還處于向wayland切換的過渡階段目前已實現騰訊會議、向日葵、QQ、微信等主流第三方X應用的兼容適配特殊X接口轉換的缺失,導致X應用部分功能異常X兼容增強插件wlcom合成器介紹3XgetImageCopyArea.X 接口XgetImageCopyArea.wlcom合成器介紹3 UKUI組件作為WAYLAND客戶端應用
13、程序需要與合成器進行通訊,在開發過程中需要明確雙方的對接形式。社區目前所采用的是客戶端發送請求,服務端發送事件的形式,并用WAYLAND協議作為雙方交互的準則。UKUI組件在開發過程中為了更好達到美觀易用的效果,需要擴展交互接口,增強與服務端之間的交互能力。自研UKUI-SHELL協議,滿足UKUI組件功能開發需求,并方便實現后續定制化業務需求。新增多種應用層級,滿足桌面環境中復雜的層次排列關系新增多種窗口類型,滿足不同桌面應用程序的使用場景豐富組件之間交互接口,提升組件間的協作能力自研UKUI-SHELL協議需求場景技術成果wlcom合成器介紹3 在銀行、政府等單位某些特定場景中,因為信息安
14、全的需求,需要對截圖內容或區域進行一定限制。例如屏幕中某一程序存在用戶信息時,截圖則必須進行屏蔽,防止信息泄露。因此,如何合理保護用戶敏感數據,提高系統上信息安全要求,是當前面臨的一個重要難題。新增wayland下防截屏協議,支持用戶指定窗口防截屏及全屏防截屏提供Qt下防截屏設置接口,方便第三方軟件使用 目前已有奇安信瀏覽器、海泰瀏覽器通過調用接口實現防截屏功能開發,并在銀行、政府等領域得以運用,為廣大麒麟操作系統的用戶提供更好的安全體驗。自研安全防截屏插件需求場景技術成果wlcom合成器在兼容性、易用性、安全性、性能方面顯著增強特色功能構建X協議轉換框架,提升X11兼容能力,滿足第三方X應用
15、的廣泛兼容需求功能組件采用插件模式,支持靈活裁剪、按需定制實現防截圖協議,對截圖內容、區域進行管控,保護敏感數據,提高系統安全同硬件不同顯示場景的并發渲染,提升業務場景渲染能力wlcom兼容性易用性安全性高性能wlcom合成器介紹3當前進展基本完成wlcom合成器與UKUI核心組件融合,支持ukui-session的運行,目前正抓緊與UKUI所有組件的功能適配,解決適配中出現的問題開發統一SDK,方便自研應用及UKUI組件的調用申請專利15項,已授權10項關聯社區貢獻:在wlroots、mesa等國際社區提交多個補丁X11兼容方案目前已適配主流媒體類、社交類、辦公類等應用當前進展及未來規劃4未來規劃目前已在openkylin上成立wayland sig組,2024年在gitee上代碼開源完善插件機制、特效框架、安全框架,擴展輸入設備的支持,并持續適配openKylin,在openkylin 2.0發布時集成進入版本實現性能分析測量框架,持續提升合成器性能開發對外接口,形成對外調用文檔,方便第三方應用開發適配工作合成器的安全增強組件開發實現國產廠商顯卡適配當前進展及未來規劃4感謝大家共同期待openkylin 2.0發布當前進展及未來規劃4