哪个适合初学者内核开发的轻量级Linux发行版最好?

9
在我的操作系统课上,我们打算用C语言修改Linux内核,加入一些简单的系统调用。
哪个发行版适合这个目的呢?我们不需要任何花哨的东西,没有图形界面,只要一个原始的内核等等。基本的越简单越好。

@Torsten Marek,一种使用原始未修改内核的发行版,可能是比2.6版本更简单的旧版本内核。 - mmcdole
11个回答

9

我可以使用极简版的 Gentoo 安装程序轻松地修改内核。只需按照安装说明进行 Gentoo 安装,然后执行以下步骤:

$ emerge gentoo-sources
$ emerge emacs
$ cd /usr/src/linux

+1 用于获取“仅编辑/编译内核所需的命令”的指令,太棒了。 - dlamotte
1
+1 我相信Genkernel是最好的工具链,比任何基于DEB / RPM的发行版都要容易得多。 - daisy

6
上学期我们在操作系统课程中使用了User Mode Linux,最大的优点是当系统出现问题时,你可以简单地杀死进程而不会对主机环境造成风险。
无论使用哪个内核,添加/修改系统调用都是繁琐但微不足道的。然而,2.6内核更加庞大和复杂,因此如果你要对代码进行重大修改,旧版本的内核更易于使用,并且有更好的文档资料(例如:更容易找到书籍和参考资料)。
祝愉快的编程 :)

+1 对于 UML。如果只有 HURD 能做到这一点 - 它是一个更小、更不成熟的内核,有更多可以改进的地方。 - new123456

5

archlinux++

但实际上,gentoo、slack和arch都是更或多或少好的选择。


3

Arch Linux提供了一个非常实用的内核开发平台。如果你学会使用pacman,它将使测试内核修改变得非常容易,并以合理的方式提供源代码和工具。

我认为,如果你真的想学习Linux和内核编程,那么应该在你的清单上列出Linux From Scratch安装。它是一个很棒的发行版/书籍,可以让你自己构建开发平台。


2
在所有的发行版中,你可以安装vanilla kernel.org源代码而不是与发行版相关的内核包,当你想要进行内核开发时这可能是一个好主意。但是,如果你想使用任何最近的非2.6内核的发行版,你会遇到麻烦,因为它们通常以一种无法在2.4中运行libc6的方式构建。此外,许多硬件管理的关键部分(如udev)需要相当新的内核。 除此之外,使用Debian提供的是一个裸骨系统,而使用kernel-package轻松安装自己的内核。 (kernel-package)

1

我不会特别说任何一个发行版是专门针对内核开发的,但如果你想要一个传统的 Linux 发行版,并且不希望在你和内核之间添加太多自定义配置信息,Slackware 是一个不错的选择。


1

我的建议是获取最新的内核。它里面会有比旧内核更多的调试功能。此外,对于新手来说,旧内核看起来几乎和最新的一样复杂。

至于发行版本身,你真的不会错。如果你只想尝试一些自定义系统调用,那么获取任何一个主流发行版都可以给你一个良好的开发环境。然后编译并尝试自定义的glibc而不是安装在发行版上。


0

非 Linux 的替代选择是 Geek OS,但这主要面向教育层面,不是一个实用的内核。不过它非常简单。


0

嗯,我找到了一个叫做"minix"的系统,它并不是一个真正的Linux发行版,而是专门为教学而设计的。但是如果你只能使用一个Linux发行版,那也没关系,我相信所有的发行版都有相同的内核。


0
选择用于内核开发的发行版时,请记住你想要修改的是内核,而不是发行版本身。因此,你需要一个尽可能不干扰你工作的易用的发行版。Ubuntu是一个相当好的选择。
IANAKH

你是怎么得出那个结论的?Ubuntu内核很难自定义。 - Robert S. Barnes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接