我正在尝试为自己的服务器开发linux内核模块。
我有一个带Linux内核3.4的Ubuntu,但是我找不到任何用于开发3.x版本模块的书籍或教程,所有教程和书籍都是针对2.x版本的。
并且大部分代码都没有在3.4版本上编译,特别是内核线程部分。
你知道什么对理解3.x模块开发有用吗?
感谢。
答案 0 :(得分:4)
2.6.32+和3.x在内核工作原理的基础上没有太大区别。但是,函数名称和API会不时发生变化。这就是为什么书一旦发布就已经老了。这就是为什么我可以推荐http://kernelnewbies.org/。
已经回答了类似的问题:
Documentation about device driver programming on kernel 3.x
Linux Device Drivers 3rd Ed and 3.2 kernel
最好的文档是Linux内核源本身,因为它变化如此之快。代码中有很多注释,你应该查看"文档" 。目录
将示例移植到更新的版本不是一个好的练习吗?
非常重要的是跟上主线发展的变化列表:http://kernelnewbies.org/LinuxVersions
如果他们更改了API,他们也会记录过渡。看看那些与你想要达到的目标相似的车手。他们是如何工作的?他们是如何对API变化做出反应的? ...
订阅相关的Linux内核邮件列表,并向活跃的内核开发人员寻求更大问题的帮助。
答案 1 :(得分:3)
您可以使用LDD(Linux设备驱动程序)作为参考,但它适用于2.x内核。您可以加入Eudyptula Challenge挑战内核开发学习和培训。还要记住一个非常好的参考,总是linux kernel source code