16 linux fedora kernel gnu linux-kernel
我想知道是否可以更改内核,例如,将 Fedora 的 Linux 内核替换为 FreeBSD 的内核。
现在,已经存在Debian GNU/kFreeBSD。我是否可以自定义 Linux 发行版以包含 BSD 内核?
Bra*_*ley 20
不,每个内核都以自己的方式实现自己的功能。有大量的 POSIX 兼容性,但是一旦您摆脱了这种兼容性,就需要使用已经到位的内核机制来编译可执行文件。许多项目包含的源代码只有在您明确说明您正在为 FreeBSD 或 Linux 编译时才会被编译。这就是 kFreeBSD 的本质。这些工具支持 FreeBSD 内核,但必须为其编译。
例如,如果您尝试epoll_create在 FreeBSD上使用,事情将不会按预期工作。
当然,您可以从 BSD 系统 LFS 样式交叉编译工具,但这可能需要永远。不像编译一个新内核那么简单。
Tob*_*ght 16
FreeBSD 不使用 Linux 内核——顾名思义,它使用 BSD 内核。
可以用不同的 Linux 内核(您自己构建的内核或从发行版中提取的内核)替换 Linux 内核。请注意,您的发行版中的用户空间程序可能取决于要编译的特定内核功能,如果您在没有这些功能的内核上运行它们,则可能无法正常工作。例如,基于 systemd 的发行版将需要内核中的 cgroup。
对于您提到的示例,是的,可以为 Linux 内核或 BSD 内核构建 GNU 发行版。在许多情况下,为两者编译的#ifdef程序之间存在编译时差异(例如),即使内核通告相同的 ABI。至少,C 运行时库等低级库必须适应不同的内核 ABI。
| 归档时间: |
|
| 查看次数: |
3286 次 |
| 最近记录: |