2

[问题来自 askubuntu.com]

我想进入 Ubuntu 系统编程;具体来说 - 开发和调试设备驱动程序。但是,我不确定如何开始,尽管我之前有为其他开源项目做出贡献的经验。

我有相当多的 Python 编程技能/经验(但我猜这在这里没用),中等的 C 编程技能,良好的调试技能(虽然只有用户模式程序),不错的静态反转技能(更多的是一种爱好)和在这里完成了一个简短(但非常有趣)的内核模块编程教程

我有几个问题想问。

  1. 你想给我的任何特别的建议(你必须努力学习的东西)。一个抽象的问题,是的。
  2. 我已经是 Ubuntu 用户很长时间了,但我不确定我可以从哪里开始提供帮助。鉴于我对设备驱动程序的特殊兴趣,有什么建议吗?推荐阅读材料?我目前正在阅读“Linux 系统编程 - 与内核和 C 库对话”。
  3. 与设备驱动程序调试相关的推荐阅读材料?

谢谢。

4

2 回答 2

4

一些提示:

  • C 是 Linux 内核开发的核心。其他事情可能会帮助您自动化或测试,但您将使用 C。
  • 任何 Linux 操作系统都适合内核开发。有些可能会使构建和部署内核更容易,从内存中 Ubuntu 使用 Debian 的内核打包基础架构,这使得添加您自己的模块并为新内核版本自动构建它们变得容易。
  • 从编写简单的模块开始。
  • 从玩内核构建过程开始,然后进行配置和朋友。重新启动并运行您自己编译的内核,这会给您信心。尝试从内核中调整废话会很有趣,您将了解所有已到位的子系统。
  • 几年前我读过这本书:http: //www.amazon.com/Linux-Kernel-Primer-Top-Down-Architectures/dp/0131181637,没关系,但那时我也不擅长 C。
  • 您问题中的教程链接已损坏。
于 2012-01-27T15:24:56.030 回答
2

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

于 2012-11-26T11:59:18.080 回答