日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux内核模块实验,linux内核模块实验(2学时).doc

發布時間:2025/3/11 linux 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux内核模块实验,linux内核模块实验(2学时).doc 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第一個內核模塊實驗

一: 預習要求:

( 1 ) 做本實驗之前,請復習相關內核模塊知識。

( 2 ) 請了解內核模塊的編寫、編譯及安裝與卸載方法。

( 3 ) 請學習內核打印函數 printk() 的用法。

( 4 ) 請復習 Makefile 文件的編寫。

二:實驗目的:

( 1 ) 掌握內核模塊的組成部分。

( 2 ) 掌握內核模塊的編譯、安裝與卸載方法。

( 3 ) 學會查看內核模塊的信息。

三:實驗任務:

編寫一個內核模塊module,向外導出兩個函數,分別是“求累積和”和“求階乘”功能。編寫另兩個內核模塊module1、module2,分別使用上面module模塊中的函數,實現計算。注意路徑清晰,分別在三個目錄下編寫。

四:實驗原理及方法:

Linux 內核模塊( LKM )是一些在啟動的操作系統內核需要時可以載入內核執行的代碼塊,不需要時由操作系統卸載。它們擴展了操作系統內核功能卻不需要重新編譯內核、啟動系統。如果沒有內核模塊,就不得不反復編譯生成操作系統的內核鏡像來加入新功能,當附加的功能很多時,還會使內核變得臃腫。

一個 Linux 內核模塊主要由以下幾個部分組成:

(1) 模塊加載函數 ( 必須 ) :當通過 insmod 或 modprobe 命令加載內核模塊時,模塊的 加(1) 模塊加載函數 ( 必須 ) :當通過 insmod 或 modprobe 命令加載內核模塊時,模塊的加載函數會自動被內核執行,完成本模塊相關初始化工作。

(2) 模塊卸載函數(必須):當通過 rmmod 命令卸載模塊時,模塊的卸載函數會自動被內核執行,完成與模塊加載函數相反的功能。

(3) 模塊許可證聲明(必須):模塊許可證( LICENCE )聲明描述內核模塊的許可權限,如果不聲明 LICENCE, 模塊被加載時將收到內核被污染的警告。大多數情況下內核模塊應遵循 GPL 兼容許可權。 L inux2.6內核模塊最常見的是以MODULE_LICENSE( “ Dual BSD/GPL ” ) 語句聲明模塊采用 BSD/GPL 雙 LICENSE 。

(4) 模塊參數(可選):模塊參數是模塊被加載的時候可以被傳遞給他的值,它本身對應模塊內部的全局變量。

(5) 模塊導出符號(可選):內核模塊可以導出符號 (symbol, 對應于函數或變量 ) ,這樣其他模塊可以使用本模塊中的變量或函數。

(6) 模塊作者等信息聲明(可選)。

一個內核模塊至少包含兩個函數,模塊被加載時執行的初始化函數 init_module() 和模塊被卸載時執行的結束函數 cleanup_module() 。在最新內核穩定版本 2.6 中,兩個函數可以起任意的名字,通過宏module_init() 和 module_exit() 注冊調用。

五:實驗步驟:

1. 創建目錄modparm,在modparm下創建module1和module2目錄(同學也可以創建不同的目錄,因為每個模塊都有自己的Makefile文件,所以每個Makefile必須在不同的目錄下)。在modparm存放modtest模塊,在module1下存放module1模塊,在module2下存放module2模塊。

我的電腦上如下:

2,編寫模塊的源程序和其Makefile文件

(1)modtest.c的清單如下:

modtest.的Makefile如下:

(2)module1.c清單如下:

module1的Makefile如下:

(3) module2.c清單如下:

Module2的Makefile如下:

3 編譯模塊

(1)把生成modtest.ko模塊時生成的Module.symvers放到module1文件夾中。這樣編譯module1時,符號信息就會自動鏈接進去了。

(2)分別執行make命令,編譯modtest.c、module1.c、module2.c

c

4 安裝模塊

5查看模塊lsmod

查看安裝是否成功,下圖中可看到module1和module2的使用者數量為0,而modtest被module1和module2使用,因此其使用者數量為2。

6 看模塊輸出信息

7 卸載模塊rmmod.因為modtest被module1和module2使用,所以必須先卸載module1和module2,最后卸載modtest。

展開閱讀全文

總結

以上是生活随笔為你收集整理的linux内核模块实验,linux内核模块实验(2学时).doc的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。