Linux内核模块让我头很晕啊!

WO浣熊OW 2013-12-09 03:52:11
刚看了一段关于内核模块加载机制的文章,表示坚持不下去了,脑袋很晕,压根没有理清头绪。
大篇的文字说明,有图解吗?
这样学下去,我不的减寿好几年?
求简短的学习资料!
...全文
166 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
WO浣熊OW 2013-12-10
  • 打赏
  • 举报
回复
引用 11 楼 ForestDB 的回复:
你知道内核模块中的宏有多少个吗? 不知道,但是有源代码,可以查。 有API之类的帮助文档吗? 有,不过也许会比较晦涩,不过有源代码,可以对照着看。 内核模块只能用C来编写吗? 大多数是C,少量汇编和脚本。
非常感谢~
ForestDB 2013-12-10
  • 打赏
  • 举报
回复
你知道内核模块中的宏有多少个吗? 不知道,但是有源代码,可以查。 有API之类的帮助文档吗? 有,不过也许会比较晦涩,不过有源代码,可以对照着看。 内核模块只能用C来编写吗? 大多数是C,少量汇编和脚本。
WO浣熊OW 2013-12-10
  • 打赏
  • 举报
回复
引用 9 楼 ForestDB 的回复:
__exit:???? 仅这句问题就暴露了LZ所谓的“C语言不难”,其实对LZ来说是个伪命题。 C语言确实不难,这里返回类型,函数名都有了,所以__exit十有八九就是宏了,而且是展开后为空的宏,放在这里,只是起提示的作用,表示这是个退出函数。
你知道内核模块中的宏有多少个吗?有API之类的帮助文档吗?内核模块只能用C来编写吗?是啊,回去看了好多资料,发现我太高估自己了!
QQ594373024 2013-12-10
  • 打赏
  • 举报
回复
引用 3 楼 Iamhuanhuan 的回复:
谁能告诉我static void __exit exit_proc_fs(void) 这个是什么意思? static:静态 void:返回类型 __exit:???? exit_proc_fs:方法名 void:参数类型
我觉得遇到这种问题,应该一个关键字一个关键字地查找,然后你就会知道放在一起的作用
ForestDB 2013-12-10
  • 打赏
  • 举报
回复
__exit:???? 仅这句问题就暴露了LZ所谓的“C语言不难”,其实对LZ来说是个伪命题。 C语言确实不难,这里返回类型,函数名都有了,所以__exit十有八九就是宏了,而且是展开后为空的宏,放在这里,只是起提示的作用,表示这是个退出函数。
WO浣熊OW 2013-12-10
  • 打赏
  • 举报
回复
引用 7 楼 still_waters_rp 的回复:
[quote=引用 3 楼 Iamhuanhuan 的回复:] 谁能告诉我static void __exit exit_proc_fs(void) 这个是什么意思? static:静态 void:返回类型 __exit:???? exit_proc_fs:方法名 void:参数类型
static 表示此函数的链接性仅在此文件可用,__exit告诉通知编译器此函数仅在退出时会用到,编译器会将此函数放在某个内存,并且在此函数执行后便将该内存清掉,这个GUN C的一个拓展,不属于标准C,你把这个语句放在其他编译器编译都不会通过的,更具体的你要百度一下了。另外两个void你自己的理解就是对的。[/quote] 谢谢你了,昨天找了很多文档,稍微理出点头绪了,加上你的讲解,对我很有帮助!
韩半仙 2013-12-10
  • 打赏
  • 举报
回复
引用 3 楼 Iamhuanhuan 的回复:
谁能告诉我static void __exit exit_proc_fs(void) 这个是什么意思? static:静态 void:返回类型 __exit:???? exit_proc_fs:方法名 void:参数类型
这个是模块卸载的时候调用这个函数,__exit表示是卸载方法,不过新内核基本已经没这个了
凌风子 2013-12-09
  • 打赏
  • 举报
回复
引用 3 楼 Iamhuanhuan 的回复:
谁能告诉我static void __exit exit_proc_fs(void) 这个是什么意思? static:静态 void:返回类型 __exit:???? exit_proc_fs:方法名 void:参数类型
static 表示此函数的链接性仅在此文件可用,__exit告诉通知编译器此函数仅在退出时会用到,编译器会将此函数放在某个内存,并且在此函数执行后便将该内存清掉,这个GUN C的一个拓展,不属于标准C,你把这个语句放在其他编译器编译都不会通过的,更具体的你要百度一下了。另外两个void你自己的理解就是对的。
max_min_ 2013-12-09
  • 打赏
  • 举报
回复
c语言很难的!真的,楼主多看看基础书籍! 基础项目慢慢过渡区看内核吧!跨度大,就容易放弃了!
WO浣熊OW 2013-12-09
  • 打赏
  • 举报
回复
引用 4 楼 yjpcn 的回复:
[quote=引用 2 楼 Iamhuanhuan 的回复:] [quote=引用 1 楼 falloutmx 的回复:] 光看文章是不行的,要和代码结合起来看
太难了,代码是什么语言的?C?我记得C语言不难啊,可是看这个代码怎么都看不懂!俺头疼~~[/quote] C语言是不难,难的是人家写代码的思想,为什么那么写和设计。 偶也是试过很多次去看类似的代码,但最后都是半途而废啊,对于一般人来说要想理解透真是不容易啊。 [/quote] 贵在坚持!
yjpcn 2013-12-09
  • 打赏
  • 举报
回复
引用 2 楼 Iamhuanhuan 的回复:
[quote=引用 1 楼 falloutmx 的回复:] 光看文章是不行的,要和代码结合起来看
太难了,代码是什么语言的?C?我记得C语言不难啊,可是看这个代码怎么都看不懂!俺头疼~~[/quote] C语言是不难,难的是人家写代码的思想,为什么那么写和设计。 偶也是试过很多次去看类似的代码,但最后都是半途而废啊,对于一般人来说要想理解透真是不容易啊。
WO浣熊OW 2013-12-09
  • 打赏
  • 举报
回复
谁能告诉我static void __exit exit_proc_fs(void) 这个是什么意思? static:静态 void:返回类型 __exit:???? exit_proc_fs:方法名 void:参数类型
WO浣熊OW 2013-12-09
  • 打赏
  • 举报
回复
引用 1 楼 falloutmx 的回复:
光看文章是不行的,要和代码结合起来看
太难了,代码是什么语言的?C?我记得C语言不难啊,可是看这个代码怎么都看不懂!俺头疼~~
falloutmx 2013-12-09
  • 打赏
  • 举报
回复
光看文章是不行的,要和代码结合起来看

4,437

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧