文件系統內核,linux 內核模塊 proc,Linux 內核模塊 proc文件系統.pdf

 2023-10-21 阅读 32 评论 0

摘要:Linux內核模塊proc文件系統文件系統內核?Linux內核模塊? 內核模塊是內核的擴展,它供了在內核運行過程中動態加載的特性.內核 獲取進程句柄、? 模塊被加載進系統后,就在內核態下運行了,成了內核的一部分,可以讀寫內核數據結構.? 內核模塊通常用來實現設備驅動程序.Linux的內核

Linux內核模塊

proc文件系統

文件系統內核?Linux內核模塊

§? 內核模塊是內核的擴展,它供了在內核運

行過程中動態加載的特性.

內核 獲取進程句柄、§? 模塊被加載進系統后,就在內核態下運行了,

成了內核的一部分,可以讀寫內核數據結構.

§? 內核模塊通常用來實現設備驅動程序.

Linux的內核。模塊的工作原理

§? 模塊運行Linux內核空間

§? 內核符號表保存了內核導出一些符號(APIs和全

centos7內核列表,局變量)

§? 內核動態的加載模塊,模塊導出的所有符號成為

內核符號表的一部分

linux系統內核版本?§? 模塊可以使用導出的符號

§? /proc/kallsyms 記錄了所有的符號

EXPORT_SYMBOL(name)

內核模塊編譯?EXPORT_SYMBOL_GPL(name)

Hello World例子(2.6 內核模塊)

#include

#include

MODULE_LICENSE("Dual BSD/GPL");

static int hello_init(void)

{

printk(KERN_ALERT "Hello, world\n");

return 0;

}

static void hello_exit(void)

{

printk(KERN_ALERT "Goodbye, cruel world\n");

}

module_init(hello_init);

module_exit(hello_exit);

模塊初始化和釋放

§? 模塊的初始化函數負責注冊模塊所供的

任何設施.

§? module_init在模塊的目標代碼中增加一個

特殊的段,用于說明內核初始化函數所在的

位置

static int __init initialization_func(void)

{

/*初始化代碼*/

}

module_init(initialization_func);

§? 清除函數,該函數在模塊被移除前注銷接口并向系

統返回所有資源

§? module_exit 幫助內核找到模塊的清除函數,如

果一個模塊未定義清除函數,內核就不允許卸載該

模塊

§? 宏 __init 和 __exit可以使函數在運行完成后自動

回收內存

static void __exit cleanup_func(void)

{

/*這里是清除代碼*/

}

module_exit(cleanup_func)

編譯模塊(2.6 內核)

§? 必須使用Makefile

§? Makefile文件

obj-m := hello.o

§? 編譯命令

make –C ~/kernel-2.6 M=`pwd` modules

§? obj-m := Module.o表示編譯后生成Module.ko模塊

§? -C 內核源碼路徑 M= 外部模塊 `pwd`該模塊文件

所在路徑

命令

§? insmod 加載模塊

§? rmmod 卸載模塊

§? lsmod 列出當前系統所有已加載模塊

§? modinfo 查看模塊信息

§? dmesg 查看內核系統日志

模塊相關宏

§? 模塊參數

module_param(變量名稱,類型,sysfs入口項訪

問許可掩碼)

§? 參數值在insmod裝載模塊時賦值

§? 模塊說明相關宏

?? MODULE_LICENSE() 說明代碼許可類型

?? MODULE_DESCRIPTION() 模塊述

?? MODULE_AUTHOR() 作者

?? MODULE_VERSION()模塊版本

內存操作

§? 內核空間與用戶空間

§? 內核空間與用戶空間的數據交換

get/put_user(x, ptr)

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/158540.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息