1. 程式人生 > >核心模組的載入與解除安裝

核心模組的載入與解除安裝

Linux核心是個很龐大的東西,要全部瞭解清楚是很難的,所以我們所做的核心上的開發也是為驅動做一些基本的準備。

其中Linux的系統的構成、核心的構成還有核心的目錄結構在這裡就不去做過多的解釋,有興趣的可以自己查詢相關的資料。

一、核心模組的特點

    a)        不會被編譯進核心之中,這樣的話可以儘可能的控制Linux核心的大小。

    b)        在核心執行期間,可以動態的進行載入或解除安裝。

二、相關函式的介紹

    a)        module_init巨集表示在載入模組的時候,自動呼叫這個巨集所指示的函式。

    b)        module_exit巨集表示在解除安裝模組的時候,自動呼叫這個巨集所指示的函式。

例如:

         程式碼中:

                   module_init(funa);

                   module_exit(funb);

         當載入該模組時,自動呼叫funa函式,同理當解除安裝該模組時,自動呼叫funb函式。

三、模組的相關命令

    a)        載入模組:insmod   modprobe

    b)        解除安裝模組:rmmod

    c)        檢視模組:lsmod

insmod和modprobe的區別:

         當a模組與b模組有依賴關係時,假設安裝b模組需先安裝a模組。

         如果用insmod命令那麼需要先insmod  a.ko 然後再insmod  b.ko。

         如果用modprobe命令那麼直接可以modprobeb.ko。

         其中/lib/modules/“核心版本號”/modules.dep中記錄了模組之間的依賴關係。

         rmmod命令:只需要呼叫模組名即可,比如安裝的時候是inmod  a.ko 安裝完畢後該模組存在於核心中的名字為a,那麼解除安裝該模組只需要rmmod  a即可。