EDA365电子论坛网

标题: 自己来编写一个Linux内核模块 [打印本页]

作者: mytomorrow    时间: 2019-8-28 13:40
标题: 自己来编写一个Linux内核模块
内核编程常常看起来像是黑魔法,而在亚瑟 C 克拉克的眼中,它八成就是了。Linux内核和它的用户空间是大不相同的:抛开漫不经心,你必须小心翼翼,因为你编程中的一个bug就会影响到整个系统。浮点运算做起来可不容易,堆栈固定而狭小,而你写的代码总是异步的,因此你需要想想并发会导致什么。而除了所有这一切之外,Linux内核只是一个很大的、很复杂的C程序,它对每个人开放,任何人都去读它、学习它并改进它,而你也可以是其中之一。7 s6 v0 u9 ]% h- A# G$ d

8 v* E3 M5 Z5 y1 A学习内核编程的最简单的方式也许就是写个内核模块:一段可以动态加载进内核的代码。模块所能做的事是有限的——例如,他们不能在类似进程描述符这样的公共数据结构中增减字段(LCTT译注:可能会破坏整个内核及系统的功能)。但是,在其它方面,他们是成熟的内核级的代码,可以在需要时随时编译进内核(这样就可以摒弃所有的限制了)。完全可以在Linux源代码树以外来开发并编译一个模块(这并不奇怪,它称为树外开发),如果你只是想稍微玩玩,而并不想提交修改以包含到主线内核中去,这样的方式是很方便的。1 g4 P/ W6 q6 G2 O; ?3 n6 q
# P% @5 u% p5 E8 R# K

' t8 n9 C* s# U) f' \0 U" m) k  A: F4 T  g6 P! D, v. j( j$ j
* d& K0 [7 J  W2 V& X) J

$ U( x. l+ _' R- _
作者: artic    时间: 2019-8-28 18:08
楼主好牛。




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2