2011-02-23 123 views
66

我有两本书为此目的:Linux Kernel Development作者:Robert Love和O'Reilly的了解Linux内核。我已经开始阅读这些书籍,并且已经下载了Linux的最新源代码。如何开始学习linux内核编程,编码或阅读?

现在,从这里开始,我应该继续阅读这些书籍,直到最后,还是应该开始查看代码......如果我应该开始编码,那么从哪里开始?有很多目录和文件让我感到困惑,因为哪个是开始理解代码的最佳位置。我可能还会补充说我的操作系统已经有了课程,我对这些概念很满意......请给出任何建议,这些建议将有助于我进一步开展工作。还请告诉我你是如何学会开始编程内核的? 谢谢你提前...

+4

“有这么多的目录和文件,我很困惑,这是开始理解代码的最佳场所”。采取提示。多读书。 – 2011-02-23 21:12:56

+0

罗伯特·洛夫的书绝对是最好的。易于理解,易于理解,既注重理论又注重实施,并具有非常好的阅读风格。 – ldx 2011-02-24 09:23:48

+1

http://stackoverflow.com/a/27782191/220386 – 2015-01-07 13:44:59

回答

28

你已经挑选了两本非常棒的书开始学习。主要的是,我会建议完成这些书,并尽可能地尝试遵循这些例子。我个人在从大学写出为嵌入式设备(大量模拟和数字采集卡)编写Linux设备驱动程序的工作后,深深地关注了内核代码。我没有以前的经验,你提到的两本书帮助我开始朝着正确的方向发展。

我给你的问题是,你为什么要学习Linux内核编程?这可能有助于我们建议您可能参与的一个开源项目。

而且,在这里你可以找到需要开发核项目的良好来源:http://kernelnewbies.org/KernelProjects

+5

我想学习内核编程,因为我喜欢操作系统的理论,我想学习代码如何实现它。这纯粹是出于兴趣。上学期我学习了一些设备驱动程序编程,我发现它很有趣。另外,我喜欢用C语言和汇编编程。 – pflz 2011-02-23 21:32:12

+1

这很好,你有一个普遍的兴趣,但很难建议一个好的起点在编码方面。查看我提供的链接,选择一个较低难度的项目,或者从这里开始一些'KernelJanitor'工作http://kernelnewbies.org/KernelJanitors – 2011-02-23 21:35:21

0

我会建议你去你偏爱的(在线)书店和搜索有关Linux内核开发的书。为了开始,有一本描述最新技术的书并不重要。相反,这本书应该符合你的编程技巧。

作为第二期寻找Linux(在线)杂志的技术文章描述新技术。

2

这是一个很难回答的问题。

什么是你想要编码(在未来)。 也许我们可以从那里去。

我的开始和唯一的经验是写一个简单的usb驱动程序,带有一些LED和按钮,我在前段时间得到了一个公平的小工具。

我读了一篇关于在Linux Magazine或类似软件中编写这些设备驱动程序的好文章。

http://www.kernel.org/doc/htmldocs/gadget.html有一些不错的(过时?)信息!

不幸的是,我很久以来就失去了代码(笔记本电脑)和闪烁的灯光小工具。