哪个是学习linux内核开发最好的轻量级发行版。 它应该有很多的debugging和分析工具,随着它:)
LFS 。 然后安装可以找到的每个调试器和分析器。
我听说Linus自己使用Fedora 。 我推荐Gentoo ,让你(打算)手工定制你的内核,这是它的完美设置(为了它的乐趣,我花了很多时间来压缩每一点性能)。
自然, Ubuntu是我的首选发行版,但是如果您开始劫持并删除预期的内核功能,则可能会遇到麻烦。 Gentoo不会抱怨,也不会期望他们开始。
我喜欢用Gentoo来处理内核。
发行并不重要。 这是你想要做的与内核和开发/测试其功能。
这里有几件事要做。
一个。 打开内核调试和日志选项。 这些肯定会帮助你进行调试。 看到有用的Linux内核调试选项打开
湾 像Valgrind这样的Getdebuggers工具来检查内存泄漏。 看到像https://www.kernel.org/doc/Documentation/kmemleak.txt文档
C。 找到一个好的编辑器进行编辑。 我不想开始vim vs emacs之战。 这确实是个人偏好,只要确保遵循linux内核编码风格指南。 https://www.kernel.org/doc/Documentation/CodingStyle
d。 熟悉日志系统和proc系统,因为它们提供有价值的信息。
即 阅读目录/ usr / src / linux / Documentation中的文档很好的理解内核的出发点
发行版可能没有太大的区别,因为你将在自己的内核上工作,而不是发行版在大多数情况下通常会提供一些补丁。
如果你正在做内核开发工作,那么我想你想要一个快速启动的发行版,像puppy这样的东西可能是理想的,并从Ubuntu的东西做你的实际编码。
Buildroot里面
Buildroot是一组脚本,可以生成小于10MiB的rootfs映像的小型发行版。
它从源代码下载一切并编译它,所以打包补丁是微不足道的。
生成的图像非常小,以至于可以理解整个用户空间设置,这将使得更容易关注内核。
优于LFS:一切都完全自动化。 正因为如此,Buildroot在大型组织中被专业使用。
我已经创建了这个设置来尽可能地自动化: https : //github.com/cirosantilli/linux-kernel-module-cheat