我想学习linux内核编程,所以我从www.kernel.org下载了linux内核3.7.6源代码。然而,在编辑任何内容之前,我尝试使用在线教程进行编译。
make
需要很多时间来编译,我还没有完全完成。有没有什么快速的方法可以更改源代码并对其进行测试?因为我读过内核编译大约需要一个小时。
此外,如果可以在USB驱动器上复制和测试修改后的内核?是否可以在USB驱动器上安装GRUB,在USB上复制内核,在USB中配置GRUB,然后运行它?如果是,请给我任何有同样步骤的资源。我的笔记本电脑上也安装了GRUB。如何在不干扰笔记本电脑配置的情况下在USB上设置新的GRUB?
谢谢..:)
你提到你想学习Linux内核编程,所以我想我有一个更好的建议给你,因为你对这一切都是新手
为什么你不先尝试做一些内核编程,比如引入非常简单的驱动程序或与netfilter有关的东西(你几乎可以使用它控制整个TCP/IP),而不必编译内核?
内核模块是您的朋友:)
它们是一段简单的代码,您可以单独编译,然后要求运行的内核(使用insmod
Linux命令)将这些代码附加到运行的内核,就可以了!您有自己的代码在内核空间中运行
我确实意识到这并不能完全回答你的问题,但我真的认为这样开始对你来说更容易,可能更有用;一旦您更熟悉了在这里可以找到的许多东西,请尝试实际修改现有的内核代码。
让您知道如何使用内核模块:
-驱动程序
-向内核添加新功能
-我个人将其与netfilter(内核中的一组函数和挂钩)一起使用,以修改处理网络流量
-你也可以修补你的内核(修改源代码,编译,运行整个过程),然后使用内核模块来编辑一些通常需要重新编译的东西,比如编辑系统调用;尽管不建议使用这种方法,但它可以增加您的测试时间,每次您想进行测试时都不必编译和重新启动
-更多。。
如果我在某个时候感到困惑,请告诉我。
如果你想引导它,你需要构建内核,直到最后。然而,在代码中只做了一个小的更改后,第二次应该会更快,只需要重建内核的必需部分。
通过向grub.cfg(对于grub2)添加新条目,可以很容易地拥有多个启动选项(使用不同的内核)。然而,我不能在这里重复多页的文档。