platform核心機制

2021-05-24 12:15:52 字數 861 閱讀 5679

platform

核心機制

guolele

2011.1.21

platform

是2.6

核心新引進的虛擬匯流排,而且現在有很多裝置驅動都是掛載在虛擬匯流排上,特別是幀緩衝裝置都是建立在平台匯流排基礎上,這也使得

lcd等圖形驅動也不可避免的使用平台匯流排,下面簡單分析一下平台匯流排的機制。

首先先了解平台匯流排工作的結構。

這跟核心的裝置驅動模型也是一樣的,只是它包裝了一下,

platform

匯流排是核心已經註冊了的,我們不需要理它,它的匹配邏輯是名字相同,所以寫驅動跟裝置程式

時,要注意名字匹配。

驅動要做的事就是註冊個平台驅動

handler

,有驅動了,也是需要裝置的。

都完成了,應用程式怎麼使用這些裝置呢?這是我們也要弄清楚的。

應用層要呼叫裝置,都是要操作裝置檔案或者叫裝置節點,但是分析整個

platform

都是沒有裝置節點的建立,難道是自己手動建立?這麼沒效率的工作,核心當然不會這樣做,使用平台匯流排的裝置如果應用層並不能直接呼叫它,而是建立在其它型別裝置中,用得比較多的是字元裝置,例如幀緩衝的驅動程式裡,裝置檔案

/dev/fb0

就是由幀緩衝註冊函式負責建立的,應用層要呼叫

lcd裝置,就是直接檔案操作

/dev/fb0

。下面上個**析一下大概機制邏輯結構。

具體分析可看一下原始碼,這裡我就不分析了,而

lcd的主要工作就是基於核心有的

s3c2410fb.c

的驅動程式建立

lcd的平台裝置驅動。

奇怪了~~怎麼在電腦裡是透明的,在這就變黑了?我還畫那麼辛苦

ETCD核心機制解析

etcd整體機制 etcd 是乙個分布式的 可靠的 key value 儲存系統,它適用於儲存分布式系統中的關鍵資料。etcd 集群中多個節點之間通過raft演算法完成分布式一致性協同,演算法會選舉出乙個主節點作為 leader,由 leader 負責資料的同步與分發。當 leader 出現故障後系...

Flask核心機制 current app

flask的request物件是乙個全域性物件,跟django的request不太一樣,django的request物件是每次請求乙個,但是flask全域性就乙個request物件,但是每次請求它能區分開是哪個請求,這個做的挺牛逼的,我去看了一下它的原始碼,原來是寫了乙個local類,來處理不同執行...

Kafka核心概念及核心機制

broker 程序 producer 生產者 flume consumer 消費者 ss spark streaming,topic 主題 分割槽 副本數 資料夾 partition 分割槽乙個分割槽可以有多個副本 重點解析 1.乙個組內,共享乙個公共的groupid 2.組內的所有消費者協調一起,...