我想知道是否可以更改内核,例如,将Fedora的Linux内核替换为FreeBSD的Linux内核。
现在,已经存在Debian GNU / kFreeBSD了。我可以定制包含BSD内核的Linux发行版吗?
我想知道是否可以更改内核,例如,将Fedora的Linux内核替换为FreeBSD的Linux内核。
现在,已经存在Debian GNU / kFreeBSD了。我可以定制包含BSD内核的Linux发行版吗?
Answers:
不,每个内核都以自己的方式实现自己的功能。POSIX具有很大的兼容性,但是一旦您发现了这些问题,就需要使用适当的内核机制来编译可执行文件。许多项目包含的源代码只有在您明确表示要针对FreeBSD或Linux进行编译时才进行编译。本质上就是kFreeBSD。这些工具支持FreeBSD内核,但必须对其进行编译。
例如,如果您尝试epoll_create
在FreeBSD 上使用,将无法按预期运行。
当然,您可以从LSD风格的BSD系统交叉编译这些工具,但这可能要花很长时间。不像编译新内核那样简单。
FreeBSD不使用Linux内核-顾名思义,它使用BSD内核。
可以将Linux内核替换为其他Linux内核(您自己构建的内核或从发行版中提取的内核)。请注意,您发行版中的用户空间程序可能取决于要编译的特定内核功能,并且如果您在没有这些功能的内核上运行它们,它们可能无法正常工作。例如,基于系统的发行版本将需要内核中的cgroup。
对于您提到的示例,是的,可以为Linux内核或BSD内核构建GNU发行版。在许多情况下,#ifdef
即使内核宣告相同的ABI,为两者编译的程序之间也存在编译时差异(例如)。至少,低级库(例如C运行时库)必须容纳不同的内核ABI。