裝置模型第二層也是非常重要的一層,為各種裝置打好了基礎,由於我之前在分析的過程中發現,如果每個細節都一起摳,可能很難將裝置模型的概貌理解清楚,因此,我將採用從整體到區域性的方法分析裝置模型第二層,還是因為裡面的東西太過於複雜。那麼我們將哪些給踢掉呢,當然為了將裝置模型的重點給捋出來,我可是費了不少功夫。
我們將裝置模型中關於sysfs、class 、attribute、電源管理等給踢掉,剩下的基本就簡單多了,等我們將重點分析完後,在回過頭來分析這每個部分,那將非常簡單了。好了立刻開始吧!
裝置模型第二層:
一、重要的資料結構:
1、device物件:
struct device ;
1-1、 device_private結構體:
struct device_private ;
2、 bus_type物件:
struct bus_type ;
2-1、 bus_type_private結構體:
struct bus_type_private ;
3、 device_driver物件:
struct device_driver ;
3-1、of_device_id結構體:
struct of_device_id ;
3-2、 driver_private結構體:
struct driver_private ;
二、重要的常量資料:
1、static struct kobj_typedevice_ktype= ;
2、static struct kobj_typebus_ktype= ;
3、static struct kobj_typedriver_ktype= ;
三、重要的函式:
int device_register(struct device *dev);
int bus_register(struct bus_type *bus);
int driver_register(struct device_driver *drv);
這些只是把第二層的重要的東西給羅列了出來,其實通過device、device_driver、bus_type結構體,我們可以將它們的關係弄的比較清楚,當然了,很多資料中已經將它們描述的無比細緻了。剩下的事情就是關於這個3個非常重要的函式了,都是註冊。我們將馬上會分析到。
linux核心學習(20)裝置模型第二層之一
裝置模型第二層也是非常重要的一層,為各種裝置打好了基礎,由於我之前在分析的過程中發現,如果每個細節都一起摳,可能很難將裝置模型的概貌理解清楚,因此,我將採用從整體到區域性的方法分析裝置模型第二層,還是因為裡面的東西太過於複雜。那麼我們將哪些給踢掉呢,當然為了將裝置模型的重點給捋出來,我可是費了不少功...
Linux核心學習
交叉工具鏈 核心相關知識 linux系統的構成 使用者空間 核心空間 思考 為什麼劃分為兩個層次?目的其實是為保護作業系統,防止應用程式的異常導致作業系統崩潰。核心空間與使用者空間是程式執行的兩種不同狀態,通過系統呼叫和硬體中斷能夠完成從使用者空間到核心空間的轉移。那麼linux的核心由哪些構成呢?...
linux 核心學習
linux核心獲取 官網 linux作業系統的核心是模組化,可以使用lsmod命令檢視核心模組,下面展示已載入系統的模組 root 172.16.0.55 vendor composer test lsmod module size used by nfnetlink queue 8111 0 nf...