找回密码
 注册
关于网站域名变更的通知
查看: 227|回复: 1
打印 上一主题 下一主题

自己来编写一个Linux内核模块

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-8-28 13:40 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
内核编程常常看起来像是黑魔法,而在亚瑟 C 克拉克的眼中,它八成就是了。Linux内核和它的用户空间是大不相同的:抛开漫不经心,你必须小心翼翼,因为你编程中的一个bug就会影响到整个系统。浮点运算做起来可不容易,堆栈固定而狭小,而你写的代码总是异步的,因此你需要想想并发会导致什么。而除了所有这一切之外,Linux内核只是一个很大的、很复杂的C程序,它对每个人开放,任何人都去读它、学习它并改进它,而你也可以是其中之一。
6 e* _( E9 T" k0 F! j
$ T4 {+ K9 Q5 X; S/ |, t2 D' o' V; H: M学习内核编程的最简单的方式也许就是写个内核模块:一段可以动态加载进内核的代码。模块所能做的事是有限的——例如,他们不能在类似进程描述符这样的公共数据结构中增减字段(LCTT译注:可能会破坏整个内核及系统的功能)。但是,在其它方面,他们是成熟的内核级的代码,可以在需要时随时编译进内核(这样就可以摒弃所有的限制了)。完全可以在Linux源代码树以外来开发并编译一个模块(这并不奇怪,它称为树外开发),如果你只是想稍微玩玩,而并不想提交修改以包含到主线内核中去,这样的方式是很方便的。9 T/ u2 l! E. J" K3 ~* \
' O0 c) @! h( l9 _8 ?$ h/ \6 M
游客,如果您要查看本帖隐藏内容请回复

3 G3 u# F2 o! B& Z  f! {+ N5 J9 P  b; N, A' K: I0 ]* S

2 h3 _" D* G  c% u1 @: M. D9 a% X: V8 q: G; I8 y4 E& a+ L, o
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-25 02:03 , Processed in 0.171875 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表