簡單認識驅動與模組

2021-09-09 09:01:25 字數 1012 閱讀 7250

驅動(計算機軟體術語)

驅動程式全稱裝置驅動程式,是新增到作業系統中的特殊程式,其中包含有關硬體裝置的資訊。此資訊能夠使計算機與相應的裝置進行通訊。驅動程式是硬體廠商根據作業系統編寫的配置檔案,可以說沒有驅動程式,計算機中的硬體就無法工作。

可以看到,驅動相對於一般的軟體而言最大的區別是,它是直接與硬體裝置進行通訊的。

linux中,將裝置分為三種基本的型別。

linux中還有乙個很重要的概念,模組。

可在執行時新增到核心中的**被稱為模組。

一般來說乙個裝置驅動總是被寫成乙個模組。

#include #include module_license("dual bsd/gpl")

static int hello_init(void)

static void hello_exit(void)

module_init(hello_init);

module_exit(hello_exit);

這裡看到兩個特殊的巨集module_init和module_exit,這兩個巨集指明了模組被裝載和解除安裝時所執行的函式。

printk函式定義在linux核心中,和c標準庫中的printf類似,最大的區別是它缺乏對於浮點的支援,因為核心**不能實現浮點數運算。

對於上面的**來說。在makefile檔案中新增下面一行就足夠了。

obj-m := hello.o

假設有兩個原始檔則可以寫成如下形式。

obj-m := module.o

module-objs := file1.o file2.o

最後使用make命令編譯即可

裝載:insmod、modprobe

這裡看到,裝載時有兩個方法可選,區別在於,modprobe會根據depmod所產生的相依關係,決定要載入哪些模組。若在載入過程中發生錯誤,在modprobe會解除安裝整組的模組。

modprobe是處理層疊模組的乙個實用工具。

解除安裝:rmmod

顯示已載入系統的模組:lsmod

簡單認識DataSet與DataTable

dataset 是放在記憶體中的,對dataset中資料的修改並不直接反應到資料庫,要通過 dataadapter 的 update 方法更新回資料庫 dataset相當你用的資料庫 datatable相當於你的表。乙個 dataset 可以包含多個 datatable dataset 由表 關係和...

this簡單認識

this 在函式中簡單的說,this的指向存在於函式呼叫的時候決定的,誰呼叫了這函式 函式中的this就指向誰 例如 1 普通的呼叫函式的時候 fn window2 物件呼叫 var obj obj.f fn obj.f this obj3 定時器呼叫 因為fn不是我們自己手寫 呼叫的 底層是win...

資料驅動的認識

沒做過資料驅動的框架,只是從yy層面上了解。一般說的資料驅動大都認為是把測試用例中的業務邏輯和測試資料分別抽象出來。但是邏輯和資料怎麼組織呢?主要分三種情況 1 資料池。這是使用程度最高的,也是最普及的一種做法。邏輯是定的,資料也是定的,只不過資料會有很多,迴圈執行。比如乙個登入介面的測試,會準備很...