隨著技術的不斷進步,系統的拓撲結構也越來越複雜,對智慧型電源管理、熱插拔的支援要求也越來越高,2.4核心已經難以滿足這些需求。為適應這種形勢的需要,linux 2.6核心提供了全新的核心裝置模型。
裝置模型元素:匯流排
驅動裝置
匯流排
匯流排是處理器和裝置之間的通道,在裝置模型中
, 所有的裝置都通過匯流排相連
, 甚至是
內部的虛擬「platform」匯流排。在linux 裝置模型中, 匯流排由bus_type 結構表示, 定義在
匯流排描述
struct bus_type
int bus_create_file(struct bus_type *bus,struct bus_attribute *attr) 建立屬性
void bus_remove_file(struct bus_type*bus, struct bus_attribute *attr) 刪除屬性
例項:bus_basic.c
裝置描述
linux 系統中的每個裝置由乙個struct device 描述:
struct device
驅動註冊/登出
int driver_register(struct device_driver *drv) 註冊驅動
void driver_unregister(struct device_driver *drv) 登出驅動
驅動屬性
驅動的屬性使用struct driver_attribute 來描述:
struct driver_attribute
int driver_create_file(struct device_driver * drv,struct driver_attribute * attr) 建立屬性
void driver_remove_file(struct device_driver * drv,struct driver_attribute * attr) 刪除屬性
例項:driver.c
裝置驅動模型
linux裝置模型中三個很重要的概念就是匯流排 裝置和驅動,即bus,device和driver。它們分別對應的資料結構分別為struct bus type,struct device和struct device driver。struct device 操作函式 註冊 int device reg...
Linux裝置驅動模型
核心版本 2.6.29 裝置驅動模型框架是linux驅動程式設計的基礎。它通過kobject,kset,ktype等底層資料結構將bus type,device,device driver 等高層資料結構組織起來,形成乙個層次 分類清晰的驅動模型。優點如下 1.重用。將物件抽象為匯流排 驅動 裝置三...
匯流排 裝置 驅動模型
裝置元素 匯流排,驅動,裝置 匯流排 處理器和裝置之間的通道,在裝置模型中,所有的裝置都通過匯流排相連,甚至是內部的虛擬 platform 匯流排 定時器,看門狗並沒有直接相連 在linux裝置模型中,匯流排由bus type結構表示,定義在 匯流排的註冊使用 bus register struct...