LInux与BSD进行内核开发

时间:2011-04-02 14:33:21

标签: c linux linux-kernel

我最近更新了我生锈的C技能,并且我一直在尝试找到一个项目来尝试它们,所以我选择了内核开发(毕竟,C是一种系统语言)。所以,我想知道哪个更容易开始,Linux或其中一个BSD? Linux拥有更大的用户群(所以我可能会有更多的支持),但它也有一个庞大的代码库(上次我检查了900万行),BSD会更容易开始,因为它们将用户库和内核合并为一个大代码库?另外,最好是开始阅读内核源代码吗?并且,除了SMP和新驱动程序之外,他们是否正在尝试实现新功能?

2 个答案:

答案 0 :(得分:4)

不幸的是,我只能说自己的Linux内核黑客攻击。目前我正在实习,我正在研究内核,我之前从未这样做过。但是由于几个原因,我能够在很短的时间内学到很多东西(同样,我想指出我不知道BSD社区有多少内容):

  • 教程。 Linux社区非常庞大,因此您会发现许多关于内核黑客攻击的初学者信息。我觉得开始的标准是this guide。如果您阅读它,您会看到,甚至内核黑客都是以hello world开始的;)
  • Linux Cross Reference。一个很棒的工具。它涵盖了完整的Vanilla源代码,并向您展示了每个函数/结构/定义/任何定义和实现的内容,因此不需要长时间搜索某些内容
  • linux的模块化构建(我假设BSD也是如此)显然,你将无法查看9 mio代码行。但是你可以通过一个可加载的内核模块轻松开始,然后再深入了解。也许先看看其他模块,破解它们,最后深入研究直接编译的东西
  • 纯粹的社区规模。不仅是内核邮件列表,还有大量的论坛或Q& A网站,如果您不知道该怎么做,可以确保获得帮助;)

只需2美分;)

答案 1 :(得分:3)

我在Linux上使用和开发多年,但缺乏任何BSD推荐方法的实际经验。

你听起来缺乏内核黑客的经验。只是阅读内核源代码可能很有见地,但不会真正教你多少。除了驱动程序之外,Linux内核还有很多功能。例如,最新的2.6.38专注于桌面响应。 DRM堆栈不断变化,可以使用更多的人力 我建议为beta驱动程序启动简单的小修补程序等。