Linux模块的一点事情

batoom 2011-02-12

1.Linux有个内核符号表,内核符号表包含所有全局的函数和变量,加载模块的时候用来解析“未定义”的符号,加载完成后模块导出的函数和变量则添加到内核符号表中供别人使用,这样是不是意味着,在模块中使用别的模块的函数只要声明就可以了,如果内核符号表中没有就依次路径搜索别的模块中是否有,并加载。

2.应用程序应该不可以这样做,因为首先它们不在同一个空间里,应用空间怎么可以直接访问系统空间呢?这还得了!!这个可是系统调用干的事情,应该设计成系统调用才可以吧!

3.insmod和modprobe都是插入模块用的,它们和ld的功能类似,这也就解释了为什么模块里用的别人的函数声明就可以了,因为链接在这里呢!

4.如果确实想调用怎么办?a.通过系统调用,如果能调用到的话   b.写个虚拟驱动,利用它的ioctl来实现。

相关推荐