#include
#include
module_license("gpl");
module_author("why");
module_description("hello world module");
static int __init hello_init(void)
printk(kern_err "hello world!\n");
return 0;
static void __exit hello_exit(void)
printk(kern_emerg "hello exit!\n");
module_init(hello_init);
module_exit(hello_exit);
下面是makefil的編寫
ifneq ($(kernelrelease),)
obj-m :=hello.o
else
kdir:= /home/whyzl/linux-2.6.37.4 //注意是自己用的編譯核心的路徑
all:
make -c $(kdir) m=$(pwd) modules arch=arm cross_compile=arm-linux-
clean:
rm -f *.ko *.o *.mod.o *.mod.c .symvers
endif
上述命令首先改變目錄到-c選項指定的位置(即核心源**目錄),其中儲存有核心頂層的makefile檔案。m=選項讓該makefile在構造modules目標之前返回到模組源**目錄。然後,modules目標指向obj-m變數中設定的模組。
單核心與微核心
單核心 monolithic 是傳統的核心,unix和linux都採用這樣的結構。微核心是源自學術界的創新。他們的區別有很多方面,我想從程序的角度來說一下。當然現在的linux有 不對應任何使用者態程序的 核心任務,這是為了優化,並不是理論上必須的 有一些任務跟使用者態程式併發執行會更有效率,或者有...
Linux環境下最簡單核心模組的實踐
1.最簡單驅動原始檔 include include module license dual bsd gpl static int hello init void static void hello exit void module init hello init module exit hello...
關於單核心與多核心
1 單核心 執行效率 單核心也叫集中式作業系統。整個系統是乙個大模組,可以被分為若干邏輯模組,即處理器管理 儲存器管理 裝置管理和檔案管理,其模組間的互動是通過直接呼叫其他模組中的函式實現的。單核心模型以提高系統執行效率為設計理念,因為整個系統是乙個統一的核心,所以其內部呼叫效率很高。單核心的缺點也...