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.組內的所有消費者協調一起,...