0 核心模組

2021-09-22 04:29:27 字數 1587 閱讀 2166

實驗所用硬體開發板為exynos4412,核心版本為linux-3.14

1.核心模組介紹

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

1.1 使用核心模組優點

1、減小核心體積,因為模組本身不被編譯到核心映象裡面。

2、可以在核心中新增或刪除功能而不用重新編譯核心

1.2 核心模組和應用程式的不同

應用程式

核心模組

從頭到尾單任務

預先註冊進核心,被動的被呼叫的

執行空間在應用空間

執行空間在核心空間,許可權大

段錯誤對系統危害小

段錯誤常會導致系統崩潰

1.3 核心模組三要素

實現乙個最簡單的核心模組需要三個元素,分別是

— 模組載入入口宣告

— 模組解除安裝入口宣告

— 免費開源 許可宣告

#include

#include

intmoudle_init

(void

)void

moudle_exit

(void

)module_init

(moudle_init)

;//模組載入入口宣告

module_exit

(moudle_exit)

;//模組解除安裝入口宣告

module_license

("dual bsd/gpl");

//免費開源 許可宣告

#makefile

ifeq ($(kernelrelease),)

kerneldir ?

=/home/kernel/linux-

3.14 #核心所在**路徑

pwd :

= $(shell pwd)

all:

$(make)

-c $(kerneldir) m=$(pwd) modules

clean:

rm -rf *

.o *

~ core .depend .

*.cmd *

.ko *

.mod.c .tmp_versions module* modules* a.out

else

obj-m :

= moudle.o

endif

1.4 模組的相關命令

—insmod 插入模組

—lsmod 檢視已經插入的模組

—rmmod 刪除模組

將核心模組進行編譯得到moudle.ko檔案,將其拷貝到板子檔案系統中。

#insmod moudle.ko //插入裝置節點後,可觀察到命令列列印出了moudle init go

#rmmod moudle //刪除裝置節點後,可觀察到命令列列印出了moudle exit go

如果想要檢視已註冊的裝置可通過cat命令檢視 /proc/devices檔案

#cat /proc/devices
所有已註冊的裝置和其裝置號資訊全部儲存在這個檔案中。

Linux 驅動開發 核心模組設計筆記 0

1.模組化程式設計原因 linux 核心龐大,需要大量元件,一起整合會導致映象檔案過大 核心模組操作命令 載入 insmod ko解除安裝 rmmod ko檢視 lsmod grep ko核心模組程式設計標頭檔案必備 include include核心模組函式出入口 module init func...

Python核心模組 urllib模組

現在python基本入門了,現在開始要進軍如何寫爬蟲了!先把最基本的urllib模組弄懂吧。開啟乙個url的方法,返回乙個檔案物件,然後可以進行類似檔案物件的操作。本例試著開啟google import urllib f urllib.urlopen firstline f.readline 讀取h...

核心模組Makefile

前些天寫乙個驅動模組。竟然寫核心模組makefile時出了問題,於是將其總結下來,下次再用時拿過來改下就行了。general purpose makefile for linux kernel module by guoqingbo kern dir home gqb development lin...