Ubuntu中的系统编程



[问题从askubuntu.com移入]

我想进入Ubuntu系统编程;具体来说——开发和调试设备驱动程序。然而,我不确定如何开始,尽管我之前有参与其他开源项目的经验。

我有相当多的Python编程技能/经验(但我想这在这里会毫无用处),中等的C编程技能,良好的调试技能(不过只有用户模式的程序),不错的静态反转技能(更多的是一种爱好),并在这里完成了一个简短的(但非常愉快的)内核模块编程教程。

我想问几个问题。

  1. 你想给我的任何特别的建议(你必须通过艰苦的方式学习)。一个抽象的问题,是的
  2. 我已经是Ubuntu的用户很长一段时间了,但我不确定从哪里开始帮忙。鉴于我对设备驱动程序的特殊兴趣,有什么建议吗?建议阅读材料?我目前正在阅读"Linux系统编程——与内核和C库对话"
  3. 与设备驱动程序调试相关的建议阅读材料

谢谢。

一些提示:

  • C是Linux内核开发的核心。其他事情可能会帮助你自动化或测试,但你会做C
  • 任何Linux操作系统都适合内核开发。有些可能会让构建和部署内核变得更容易,从内存中Ubuntu使用Debian的内核打包基础设施,这使得添加自己的模块并为新的内核版本自动构建模块变得更容易
  • 从编写简单的模块开始
  • 从玩内核构建过程开始,并进行配置和交友。重新启动并运行您自己编译的内核,这将给您信心。试着调整内核中的垃圾——这很有趣,你会了解到所有的子系统
  • 我几年前读过这本书:http://www.amazon.com/Linux-Kernel-Primer-Top-Down-Architectures/dp/0131181637,还可以,但我当时在C也不太好
  • 您问题中的教程链接已断开

你真的应该去http://kernelnewbies.org/。这是编写设备驱动程序等内核黑客攻击的好起点。kernelnewbies.org上有很多资源链接。我知道至少有一本关于设备驱动程序编程的免费电子书。

相关内容

  • 没有找到相关文章

最新更新