最适合进行内核模块编程的Linux发行版

8
我想进行内核模块编程。但是,所有的资料都说linux发行版会打补丁到原始内核上,因此模块代码可能无法在其上运行。如果这是真的,我该怎么办?我尝试使用ubuntu制作lfs,但几乎每个步骤都会出现错误。我看到有人写道arch、gentoo、Ubuntu Server(安装期间没有选择任何软件包)、slackware、susestudio等都是纯净的发行版。那我可以用它们来进行模块编程吗?
请考虑到我需要一个带GUI界面的发行版来提供建议。
可以参考这个网址吗?
PS:我有一台intel core i3处理器,并将在vmware工作站上运行发行版。

Arch Linux会打补丁,但你可以轻松地从AUR安装原版Linux内核。它不是初学者发行版(你需要安装X服务器、桌面环境等等),但它非常强大。 - Blender
2
模块化编程并不直接与Linux内核相关。它与编程语言有关:Ocaml和Go提供模块。如果您只关心内核中的模块,则您的标题是错误的(它不是模块化编程,而是模块化内核)。 - Basile Starynkevitch
是的,请解释一下您所说的“模块化编程”究竟是什么意思... - thkala
@BasileStarynkevitch@thkala...是的,我指的是模块化内核。 - AvinashK
1个回答

9
如果您想编写内核模块,那么选择哪个发行版并不重要。您需要能够从源代码重新编译内核并自己安装新内核。即使只是为了内核模块,您也需要能够编译最新内核并针对其进行开发,否则您将无法将模块提交到主线。
如果该模块不打算发布,则可以针对特定的内核版本进行开发。在这种情况下,应根据模块的目标选择发行版,而不是开发环境。
因此,请根据您的喜好选择发行版: 1)桌面环境 - (GNOME、KDE等) 2)易用性 - (Ubuntu、Fedora等与Arch、Gentoo相比) 3)尖端与稳定(Arch、Fedora相比Ubuntu、Debian、Red Hat、CentOS)
然后,前往kernelbewbies了解有关开始内核编程的一些信息(获取源代码,如何编译)。然后阅读Greg Kroah-Hartman的优秀书籍《Linux设备驱动程序》。接口将会发生变化(它是关于内核版本2.6编写的,而版本3.6目前正在开发中)。可以在网上找到它 here 您还需要学习如何使用git。更重要的是,学习如何使用git生成补丁并通过电子邮件发送而不出错!我没有这方面的网站,但通过谷歌搜索可以帮助您。

1
这并不完全正确,根据这里的说法: http://ubuntuhandbook.org/index.php/2018/01/install-linux-kernel-4-15-in-ubuntu-linux-mint/ Ubuntu不支持主线内核,这意味着你不能只是去Linus的github上分叉内核,编译并在Ubuntu上运行它,你需要一个特殊的发行版,所以我认为Ubuntu不适合内核开发,如果你想向主线贡献。 - tomer.z
同意上面的 tomer.z。大多数发行版都会添加自己的补丁以满足其最终用户的需求。以 Ubuntu 为例,可以访问 https://packages.ubuntu.com/search?keywords=linux-source 获取 Linux 内核源代码。确保下载您正在使用的版本。 - g5thomas

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