我想尝试编译无 mmu 的内核。从我在配置中发现的情况来看,没有这样的选项。有可能做到吗?
答案1
您可以在大多数处理器架构(包括 x86)上编译不支持 MMU 的 Linux 内核。然而,由于这是一种罕见的配置,仅适用于知道自己在做什么的用户,因此该选项不包含在 等显示的菜单中make menuconfig
,make xconfig
除非在一些缺乏 MMU 的嵌入式设备架构上相对常见。您需要.config
显式编辑该文件才能更改CONFIG_MMU=y
为CONFIG_MMU=n
.或者,您可以通过编辑与您的体系结构相对应的文件并替换以以下arch/*/Kconfig
开头的节,使该选项显示在菜单中CONFIG MMU
config MMU
bool "MMU support"
default y
---help---
Say yes. If you say no, most programs won't run.
即使您使该选项出现在菜单中,您也可能需要调整生成的配置以使其内部一致。无 MMU 的 x86 系统非常不寻常。
试验无 MMU 系统的最简单方法是使用硬件供应商或模拟器提供的 Linux 内核配置在模拟器中运行真正的无 MMU 系统。
如果还不清楚的话,普通的 Linux 系统需要一个 MMU。 Linux 内核可以针对没有 MMU 的系统进行编译,但这会带来一些限制,导致许多程序无法运行。从阅读开始无 MMU 内存映射支持。我认为没有 MMU 就不能使用 glibc,µClibc通常被用来代替。文档来自µClinux项目可能也相关(μClinux 是无 MMU Linux 的原始项目,尽管现在对无 MMU 系统的支持已集成到主内核树中,因此您不需要使用 μClinux)。
答案2
看看 ELKS(嵌入式 Linux 内核子集)或 Minix 的版本 1