linux内核一步一步来

时间:2011-04-11 15:03:46

标签: c linux assembly kernel

我知道c语言。我的目标是阅读linux内核。在开始阅读内核之前我应该​​学习哪些语言(也可以写书),是否有任何书籍可以帮助阅读linux内核

4 个答案:

答案 0 :(得分:10)

这本书有点过时了,但是Understanding The Linux Kernel是一个很棒的参考书。它还将为您提供i386功能的速成课程,这些功能可以使许多内核工具成为可能(例如MMU以及中断如何工作。对于操作系统,有时很难理解硬件结束和操作系统开始的位置),以及直接参考了很多关键来源。

另外,请查看LWN Kernel article index以获取更多最新参考资料。

一个好的开始方法是提出一个非常简单的功能,你想添加到内核并开始破解它。 (我在大学时所做的事情是计算每个进程抢占多少次并通过/ proc文件系统导出该值。请教我很多关于调度,/ proc,进程结构和许多其他工具)。另外一个建议是,在VM中执行此操作,除非您计划每15分钟重新启动一次。

对于临时问题,搜索Google可以使用或在IRC上提问。 (当然,恭敬地。)

答案 1 :(得分:1)

Linux内核超过1150万行!成为一名优秀的程序员需要数年时间,如果你想破解Linux内核,你必须成为一名程序员。考虑到您的年龄和经验,如果您将其作为第一个C项目,您很可能会失败。我建议使用C来掌握一些其他很酷的东西。例如,将GreyHat Python书中的代码(调试器,挂钩,模糊和e.t.c)移植到C并为它们添加有趣的功能。如果您真的参与操作系统开发,我建议您阅读有关汇编的好书并编写您自己的小实时操作系统。我看过一个13岁孩子写的实时操作系统,所以这是可能的。祝你好运!

答案 2 :(得分:0)

不久前,在布鲁塞尔黑客空间举办了Linux内核研讨会。您可以查看活动页面https://hackerspace.be/LinuxKernelWorkshop

上的链接

答案 3 :(得分:0)

几年前我自己提出了这个问题。然后,我开始深入研究Linux内核源代码,以弄清楚它是如何工作的。到目前为止,我对Linux内核的理解仍然是一个混合体。我认为理解程序的最佳方法是自己编写。要构建操作系统,我认为这是最低限度的:

  • 计算机硬件&体系结构
  • 汇编程序&编译器
  • 组件
  • C语言

有很多书可以帮助你逐个阅读Linux内核。你还有很多时间自己重写它。