日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

4.x版本内核中platform_device的生成

發(fā)布時間:2025/3/21 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 4.x版本内核中platform_device的生成 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、Display Server

X Windows 和 X Server

The X Window System (X11, or shortened to simply X) is a windowing system for bitmap displays, common on UNIX-like computer operating systems.?
X provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting with a mouse and keyboard. X does not mandate the user interface – this is handled by individual programs. As such, the visual styling of X-based environments varies greatly; different programs may present radically different interfaces

X Windows 是用于位圖顯示的窗口系統(tǒng),常用于 UNIX 系的操作系統(tǒng)上。它為 GUI 環(huán)境提供了基本框架:在顯示設備上繪制和移動窗口,并與鼠標和鍵盤進行交互。?
它在設計之初,便秉承“提供機制,而非策略”的理念。(是的,和 Unix 設計哲學相同)所以它對用戶接口不作要求,比如它提供了生成窗口(window)的方法,卻對窗口呈現(xiàn)方式不作任何要求。?
另一個設計特點是它是基于 Client/Server 網(wǎng)絡模型。不論本地還是遠程應用程序,都統(tǒng)一通過 C/S 模型來運作。

我們看一下 X Windows 的架構圖(圖來自 imtx.me 作者 TualatriX):

拿一個簡單的應用場景舉例。點擊按鈕引發(fā)按鈕更新動作。?
1. 內(nèi)核捕獲鼠標點擊事件并發(fā)送給 X server。?
2. X Server 會計算該把這一事件發(fā)送給哪個窗口(事實上,窗口位置是由 Compositor 控制的,X Server 并不能夠正確的計算 Compositor 做過特效變化之后的按鈕的正確位置)。?
3. 應用程序對此事件進行處理(將引發(fā)按鈕更新動作)。但是,在此之前它得向X Server 發(fā)送繪制請求。?
4. X Server 接收到這條繪制請求,然后把它發(fā)給視頻驅動來渲染。X 還計算了更新區(qū)域,并且這條“垃圾信息”發(fā)送給了 Compositor。?
5. 這時,Compositor 知道它必須要重新合成屏幕上的一塊區(qū)域。當然,這還是要向X Server發(fā)送繪制請求的。?
6. 開始繪制。但是 X Server 還會去做一些不必要的本職工作(窗口重疊計算、窗口剪裁計算等)。

我們通過一個實例理解了上面的架構圖。?
它呈現(xiàn)出了一個缺點:?
X Client – X Server – Compositor?
三者的交互比較耗時,不是很高效。除了交互方面的問題,其實 X Server 還會做一些重復無意義的工作,這里不再贅述。?
有痛點就有解決方案,新一代的 Display Server 呼之欲出。?
接下來 Wayland 誕生了。

Wayland

Wayland is A Simple Display Server。?
它在誕生之初的使命是用于改善 X Server 的不足并取代它。?
但是現(xiàn)在看來它所作的不僅僅是替代 X Window 下的 X Server,也不僅僅是要取代 X Widnow。而是要顛覆 Linux 桌面上的 X Server/X Client 的概念。?
以?Compositor/Client 的結構取而代之。?
同時它復用了所有 Linux 內(nèi)核圖形和 I/O 技術:KMS、GEM、DRM、evdev。

其架構圖如下(圖來自 imtx.me 作者 TualatriX):

同樣是上面那個實例,其流程如下:?
1. 內(nèi)核捕獲鼠標點擊事件并發(fā)送給Wayland Compositor。?
2. 由于是直接發(fā)給Wayland Compositor的,所以Wayland Compositor會正確地計算出按鈕的位置。同時它會把這一事件發(fā)送給按鈕所在的應用程序來處理。?
3. 應用程序直接渲染,無需向Wayland Compositor請求。只需在繪制完成之后向Wayland Compositor發(fā)送一條信息表明這塊區(qū)域被更新了。?
4. Wayland Compositor收到這條信息后,立即重新合成整個桌面。

所以基于 Wayland 的整個任務流程非常簡單:?
1. 基于Wayland協(xié)議,處理evdev的信息;?
2. 通知Client(即應用程序)對相關事件做出反應(至于應用程序想怎么反應,Compositor不需要過問);?
3. 收到Client的狀態(tài)更新,重新合成圖形或管理新的圖形布局。

簡單的說,Waylannd 就是一個去除 X Window 中不必要的設計、充分利用現(xiàn)代 Linux 內(nèi)核圖形技術(DRM 子系統(tǒng)中的 KMS、GEM、DRM)的一個顯示機制,它的出現(xiàn)是自然而然的,它的使命不是為了消滅X Window,而是將Linux的圖形技術發(fā)揮至更高的一個境界。傳統(tǒng)的X Window(即經(jīng)典X應用、Gtk 1.x/2.x等舊應用),也會在相當長一段時間內(nèi)得到繼續(xù)支持,通過Wayland Client的形式跑在Wayland Compositor上,直到最終升級、取代或被淘汰。

有了以上背景,接下來我們便能更好的理解 DRM Subsystem 了。

二、DRM Subsystem

In computing, the Direct Rendering Manager (DRM), a subsystem of the Linux kernel, interfaces with the GPUs of modern video cards. DRM exposes an API that user-space programs can use to send commands and data to the GPU, and to perform operations such as configuring the mode setting of the display. DRM was first developed as the kernel space component of the X Server’s Direct Rendering Infrastructure,[1] but since then it has been used by other graphic stack alternatives such as Wayland.?
User-space programs can use the DRM API to command the GPU to do hardware-accelerated 3D rendering and video decoding as well as GPGPU computing.?
摘自 wipipedia

DRM,英文全稱 Direct Rendering Manager, 即 直接渲染管理器。?
它是為了解決多個程序對 Video Card 資源的協(xié)同使用問題而產(chǎn)生的。它向用戶空間提供了一組 API,用以訪問操縱 GPU。

fbdev

Linux 早在很久以前就已經(jīng)有一個名為?fbdev?的 API ,用于管理顯卡的 framebuffer,但是它不能用于處理 基于視頻卡的 GPU 的 3D 加速的需求。?
這些 Video Card 常常需要設置或者管理 卡內(nèi)存(Video RAM)中的一些命令隊列。將命令分配給 GPU,還需要管理 Video RAM 本身的 Buffer 和 Free Space。

在最初的用戶空間的程序(比如 X Server)可以直接管理這些資源,但這些程序通常表現(xiàn)的就仿佛他們是唯一去獲取這些資源的一樣。當有多個程序試圖去以自己的方式同時控制 Video Card 資源時,就會崩潰。

DRM

DRM 的誕生就是用來處理多個程序對 Video Card 資源的協(xié)同使用問題。?
DRM 獲得對 Video Card 的獨占訪問權限,它負責初始化和維護命令隊列、Video RAM 以及其他相關的硬件資源。

要使用 GPU 的程序將請求發(fā)送給 DRM,由 DRM 作為仲裁來避免沖突。?
DRM 到現(xiàn)在已經(jīng)涵蓋了以前由用戶空間程序處理的很多功能,比如 幀緩存區(qū)的管理和模式設置,內(nèi)存共享對象和內(nèi)存同步。其中一些拓展具有特定的名稱,比如圖形執(zhí)行管理器 GEM 或者內(nèi)核模式設置 KMS,這些都是屬于 DRM 子系統(tǒng)。?
DRM 同時也負責處理 GPUs 切換的問題。

在下一章,我們會開始介紹 Linux 源碼中 DRM 的軟件架構。





















總結

以上是生活随笔為你收集整理的4.x版本内核中platform_device的生成的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲欧美一二三 | 亚洲精华液一区二区 | 99在线观看免费 | 一区二区 中文字幕 | 黄色激情视频在线观看 | 超碰日韩在线 | 日韩欧美国产高清 | 又黄又爽的视频 | 女人高潮娇喘声mp3 乱色视频 | 久久久久久亚洲中文字幕无码 | 亚洲熟妇av日韩熟妇在线 | 黄色一级影片 | 羞羞网站在线观看 | 免费荫蒂添的好舒服视频 | 国产美女主播在线 | 国产小视频自拍 | av片在线观看免费 | 嫩草午夜少妇在线影视 | 国产色在线视频 | 99色影院 | 一级特黄aaa | 国产中文字字幕乱码无限 | 亲子乱子伦xxxx | 好男人www在线视频 我们的2018在线观看免费高清 | 国产91精品久久久久久久 | 伊人久久久久久久久久久久 | 特级西西人体4444xxxx | 干日本少妇 | 麻豆短视频在线观看 | 黄色片国产| 日本少妇毛茸茸 | 国产在线导航 | 操比视频网站 | 按摩害羞主妇中文字幕 | 秋霞无码一区二区 | 亚洲二区一区 | 毛片免费在线观看视频 | 精品一区二区久久久久久按摩 | 久久免费视频99 | 视频在线国产 | 国产九色 | 国产精品视频无码 | 2017日日夜夜 | 最好看的中文字幕国语电影mv | 蜜臀av性久久久久蜜臀aⅴ流畅 | 国产成人免费看一级大黄 | 欧美贵妇videos办公室 | 亚洲黄色在线免费观看 | 亚洲精品在线免费观看视频 | 图书馆的女友动漫在线观看 | 高清免费毛片 | 国产一页 | 亚洲影院一区 | 涩涩爱在线 | 特黄大片又粗又大又暴 | 99性趣网| 国产黄色小视频在线观看 | 妺妺窝人体色WWW精品 | 光棍影院手机版在线观看免费 | 国内精品免费 | 亚洲一级Av无码毛片久久精品 | 一区二区在线免费观看视频 | 蜜臀av中文字幕 | 亚洲色图国产视频 | 欧美日本韩国一区二区三区 | 成人99| 91瑟瑟| 午夜精品区 | 最新av网站在线观看 | 色播在线 | 影音先锋欧美资源 | 漂亮少妇高潮午夜精品 | 热热热av| 欧美极品videos精品 | 一道本一区二区 | 色婷综合 | 亚洲国产一区二区三区在线观看 | 久久这里只有精品23 | 国产一区亚洲二区 | 主播福利在线 | 日本免费在线视频 | 美女张开腿让男人操 | 国产av一区不卡 | 日韩欧美国产另类 | 日韩国产小视频 | 伦伦影院午夜理论片 | 亚欧精品在线观看 | 亚洲成色www久久网站 | 日韩av在线免费播放 | 欧美尹人 | 亚洲一区二区高清视频 | 激情婷婷在线 | 激情综合区 | 色婷婷视频在线 | 一级淫片免费 | 中文字幕黑人 | 亚洲精品视频国产 | 亚洲人视频在线观看 | 亚洲国产一区二区三区 |