导航:首页 > 操作系统 > linux内核符号

linux内核符号

发布时间:2023-06-27 19:05:22

‘壹’ linux /$ 什么意思

$ 符号在Linux系统里面用于获取一个变量的值,例如:
#!/bin/bash --------指定编译shell环境为bash
STR="Hello World!"----设置STR的变量值为Hello World!
echo $STR ------ 用echo命令读取STR变量的数值。这里如果不加$, 输出结果是STR,加上$,输出结果就是Hello World!。可参考《Linux就该这么学》了解更多Linux知识。

‘贰’ 怎么查看linux的内核符号表

在内核中通过/proc/kallsyms获得符号的地址

Linux内核符号表/proc/kallsyms的形成过程
./scripts/kallsyms.c负责生成System.map
./kernel/kallsyms.c负责生成/proc/kallsyms
./scripts/kallsyms.c解析vmlinux(.tmp_vmlinux)生成kallsyms.S(.tmp_kallsyms.S),然后内核编译过程中将kallsyms.S(内核符号表)编入内核镜像uImage
内核启动后./kernel/kallsyms.c解析uImage形成/proc/kallsyms
/proc/kallsyms包含了内核中的函数符号(包括没有EXPORT_SYMBOL)、全局变量(用EXPORT_SYMBOL导出的全局变量)
如何将内核中的函数、全局变量、静态变量都导出到/proc/kallsyms

查看内核 使用 uname -a

‘叁’ linux怎么导出内核中的文件

linux内核之模块参数及导出符号
1. 模块参数
用 “mole_param (参数名,参数类型,参数读 / 写权限) ” 为模块定义一个参数,例如下列代码定义了 1 个整型参数和 1 个字符指针参数:
1 static char *book_name = "dissecting Linux Device Driver";
2 mole_param(book_name, charp, S_IRUGO);
3 static int book_num = 4000;
4 mole_param(book_num, int, S_IRUGO);
在装载内核模块时,用户可以向模块传递参数,形式为 “insmode 模块名 参数名 = 参数值,如果不传递,参数将使用模块内定义的缺省值。参数类型可以是 byte 、 short 、 ushort 、 int 、 uint 、 long 、 ulong 、 charp (字符指针)、 bool 或 invbool (布尔的反),在模块被编译时会将 mole_param 中声明的类型与变量定义的类型进行比较,判断是否一致。模块被加载后,在 /sys/mole/ 目录下将出现以此模块名命名的目录。在此模块的目录下还将出现 parameters 目录,其中包含一系列以参数名命名的文件节点,这些文件的权限值就是传入mole_param ()的 “参数读 / 写权限” ,而文件的内容为参数的值。
insmod命令加载模块后,通过查看 “/var/log/messages” 日志文件可以看到内核的输出:
# tail -n 2 /var/log/messages
tail -n 2表示输入文件的最后2行
2. 导出符号
Linux 的 “/proc/kallsyms” 文件对应着内核符号表,它记录了符号以及符号所在的内存地址。模块可以使用如下宏导出符号到内核符号表中:
EXPORT_SYMBOL( 符号名 );
EXPORT_SYMBOL_GPL( 符号名 );
导出的符号可以被其他模块使用,只需使用前声明一下即可。 EXPORT_SYMBOL_GPL ()只适用于包含 GPL许可权的模块。
如果符号名是“e_symbol”,从 “/proc/kallsyms” 文件中找出 e_symbol 的相关信息:
# grep e_symbol /proc/kallsyms
8000af1c t e_symbol [export_symb]

‘肆’ Linux中/boot目录

/boot  存放开机时所要用的文件,包括linux核心文件、开机菜单和开机所要的配置文件。

         当前Linux系统的kernel配置文件,可以使用下面指令查看。

            initrd全名initial ram disk,启动系统所需加载的虚拟磁盘。

            它是vmlinuz的映像文件。

            linux的正式内核。

            内核符号映射表,顾名思义就是将内核中的符号(也就是内核中的函数)和它的地址能 

            联系起来的一个列表。

            引导加载程序相关的文件。

阅读全文

与linux内核符号相关的资料

热点内容
c盘压缩文件可以删除吗 浏览:992
单片机键盘分类 浏览:389
手机app怎么老是进不去 浏览:954
安卓游戏玩模拟器用什么手柄 浏览:31
退出at模式命令 浏览:941
php供求平台源码 浏览:132
命令sm 浏览:43
福建集群服务器云主机 浏览:317
安卓手机怎么把2g切换为4g 浏览:457
在健康青岛App挂号怎么查询 浏览:269
普通人上网用的是什么服务器 浏览:453
python安装了找不着 浏览:181
常微分第三版答案pdf 浏览:264
安卓机qq怎么开悬浮窗 浏览:63
备孕三年了怎么缓解压力大 浏览:743
登录阿里云服务器黑屏 浏览:336
匿名元组Python 浏览:726
华为运动健康存储的文件夹 浏览:522
cad正多边形命令 浏览:461
压缩比150能加97油吗 浏览:399