在我的操作系统课程中,我们希望使用我们自己的一些简单的 C 系统调用来修改 Linux 内核。
什么是适合此目的的好发行版?我们不需要任何装饰,没有 GUI,香草内核等。越基本越好。
使用最小的 Gentoo 安装,我可以很容易地修改内核。只需安装 gentoo,按照安装说明进行操作,然后:
$ emerge gentoo-sources $ emerge emacs $ cd /usr/src/linux
在我上学期的操作系统课程中,我们使用了用户模式 Linux,最大的优势是当您使用系统时,您可以简单地终止进程,而不会对主机环境造成风险。
无论您使用什么内核,添加/修改系统调用都是乏味但微不足道的。然而,2.6 内核明显更大更复杂,因此如果您要以显着的方式修改代码,旧内核更易于使用并且文档更好。(即:更容易找到书籍和参考资料)
快乐的黑客:)
Archlinux++
但真的.. gentoo、slack 和 arch 或多或少都是不错的选择
Arch Linux 为内核开发提供了一个很好的平台,它也非常实用。如果你学会使用 pacman,它实际上会让测试你的内核修改变得相当容易,并以一种理智的方式提供源代码和工具。
我确实认为,如果您认真学习 linux 和内核黑客,那么从头开始安装 Linux 应该在您的列表中。这是一本很棒的发行版/书籍,可以让您自己构建开发平台。
在所有发行版上,您都可以安装 vanilla kernel.org 源代码而不是与发行版相关的内核包,这在您想要进行内核开发时可能是个好主意。
但是,当您想使用任何具有非 2.6 内核的最新发行版时,您会遇到麻烦,因为它们通常以无法在 2.4 上运行的方式构建 libc6。此外,许多硬件管理(如 udev)都需要相当新的内核。
除此之外,使用 Debian 为您提供了一个准系统,并且使用kernel-package安装您自己的内核是一件轻而易举的事。
我不一定会说任何特定的发行版都面向内核开发,但是如果您想要一个不会在您和内核之间堆积太多自定义配置的传统 Linux 发行版,那么 Slackware 是一个不错的选择。
我的建议是获取最新的内核。它内部的调试功能将比旧内核中的更多。此外,较旧的内核看起来几乎与新手的最新内核一样复杂。
至于发行版本身,你不会真的出错。如果您只想尝试一些自定义系统调用,那么请使用任何主流发行版来为您提供良好的开发环境。然后编译并尝试您自定义的 glibc,而无需在发行版上安装它。
在为内核开发选择发行版时,请记住您要破解的是内核,而不是发行版本身。因此,您将需要一个尽可能不妨碍您的简单发行版。Ubuntu 说得很好。
伊纳赫
好吧,我发现了一个名为“minix”的版本,它并不是真正的 linux 发行版,但它是专门为教学而制作的,但是如果您只能使用 linux 发行版,那没关系,我很确定所有发行版都有同一个内核
非 linux 替代品是Geek OS,但这主要针对教育水平,并不是一个实用的内核。虽然它非常简单。
Gentoo 如果你不介意自动编译(大多数人认为 gentoo 是 Linux From Scratch => 你必须自己做所有事情)。
如果您的计算机(笔记本电脑)速度较慢,请使用 Arch。
这两个最大的优点是他们有非常非常好的文档,只有安装 Gentoo fe 才能让你了解有关 init 系统和必须运行哪些服务的基本知识。如果从指南中复制和粘贴命令,它就毫无价值(幸运的是手册让人们思考了一下,从而阻止孩子们安装 gentoo 并接管我们整洁的#irc):D