linux核心學習(20)裝置模型第二層之一

2021-05-26 00:33:35 字數 1175 閱讀 1845

裝置模型第二層也是非常重要的一層,為各種裝置打好了基礎,由於我之前在分析的過程中發現,如果每個細節都一起摳,可能很難將裝置模型的概貌理解清楚,因此,我將採用從整體到區域性的方法分析裝置模型第二層,還是因為裡面的東西太過於複雜。那麼我們將哪些給踢掉呢,當然為了將裝置模型的重點給捋出來,我可是費了不少功夫。

我們將裝置模型中關於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核心學習

交叉工具鏈 核心相關知識 linux系統的構成 使用者空間 核心空間 思考 為什麼劃分為兩個層次?目的其實是為保護作業系統,防止應用程式的異常導致作業系統崩潰。核心空間與使用者空間是程式執行的兩種不同狀態,通過系統呼叫和硬體中斷能夠完成從使用者空間到核心空間的轉移。那麼linux的核心由哪些構成呢?...

linux 核心學習

linux核心獲取 官網 linux作業系統的核心是模組化,可以使用lsmod命令檢視核心模組,下面展示已載入系統的模組 root 172.16.0.55 vendor composer test lsmod module size used by nfnetlink queue 8111 0 nf...

linux核心學習裝置模型第二層之一

裝置模型第二層也是非常重要的一層,為各種裝置打好了基礎,由於我之前在分析的過程中發現,如果每個細節都一起摳,可能很難將裝置模型的概貌理解清楚,因此,我將採用從整體到區域性的方法分析裝置模型第二層,還是因為裡面的東西太過於複雜。那麼我們將哪些給踢掉呢,當然為了將裝置模型的重點給捋出來,我可是費了不少功...