首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ubuntu系统编程

Ubuntu系统编程
EN

Ask Ubuntu用户
提问于 2012-01-27 13:31:38
回答 1查看 1.6K关注 0票数 5

我想进入Ubuntu系统编程;具体地说-开发和调试设备驱动程序。然而,我不知道如何开始,即使我以前有为其他开源项目做贡献的经验。

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

我想问几个问题。

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

谢谢。

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2012-01-27 14:40:13

  1. 嗯,作为一个内核工程师,我发现总的来说,我学到的最好的经验是那些艰难的经验。在那里,我被要求深入挖掘,寻找新的和创造性的方法来调试一个问题或解决一个特定的症结。坚持下去的动机真的来自于我对某个子系统的投资兴趣。如果你没有决心把事情看完,现在就停下来,一切都很艰难,战争故事的激烈程度会有所不同:)。
  2. 你可以最好地帮助在一个领域,你有动力,以保持努力。问问自己,你想离HW有多近,然后继续往前走。例如,与内存管理、IO写回、进程调度等更大的资源管理问题相比,一般设备驱动程序开发中应用的OS概念要少得多。毕竟,设备驱动程序是关于敲击固件以获得您想要的东西,然后再连接到该子系统的接口上,有如此多的类似工作,这使得在那里起步相对容易。缺点是,您正在使用HW,这总是对开发造成净拖累。
  3. 那是一本用户空间的书,你不再需要它了:-p。内核是一个服务驱动的框架,首先了解整个用户/内核界面并不是很有用--例如,直接深入驱动程序开发,因为您将与用户空间隔离开来。Linux设备驱动程序第三版是免费可得,是一个很好的参考。
  4. 见下面的链接。不过,最重要的是,先找个地方坚持住。这应该是很难的,考验你的耐心和承诺。由于你不知道你真正感兴趣的是什么,从这些小冲突中吸取的教训将决定你未来的工作。如果您甚至不能这样做,那么内核黑客就不适合您了。

我建议你找一位导师来挑战你,在你跟上进度的时候支持你。我自己还没有试过这个项目,但是这个项目对您来说可能是一个很好的开端:http://kernelnewbies.org/KernelMentors

我还建议您熟悉内核跟踪框架,如ftrace、perf和systemtap抽头。

祝好运!

票数 5
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/98995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档