我正在为我的系统使用ARM Cortex-R4。它有一个内存保护单元而不是内存管理单元。实际上,这意味着存在用于内存保护的专用硬件,但物理地址和虚拟地址之间存在一对一的映射。我对应该使用哪种Linux感到困惑 - 禁用MMU或uCLinux的标准Linux内核。
在ARM的评估板上,我运行了在禁用MMU的情况下编译的标准内核。我使用了官方ARM网站上提供的cramfs文件系统。在内核启动之后,我在shell中,但是我无法进行太多实验,因为我发现,大多数情况下,shell停止响应(特别是当我按“tab”进行自动完成时)。 / p>
因此,如果我使用正确的文件系统,我仍然不确定MMU-less内核是否应该运行顺畅。另外,我应该将哪个发行版(buildroot?)用于no-VM Linux?
欢迎任何想法或建议。
答案 0 :(得分:8)
我问这个问题已经两年多了。现在是我应该为自己写的东西的时候了。
ucLinux是一个早期从Linux内核派生的项目,旨在为MMU较少的系统开发内核。但是,经过一段时间后,它被合并到父Linux分支。所以,今天没有任何有效的ucLinux发行版。因此,如果从主线内核配置中禁用MMU,您将获得无MMU版本。实际上,现在内核中提供了配置选项,用户可以指定内存布局和访问权限。
干杯!
答案 1 :(得分:2)
如果你到了运行shell的地步,你已经设法在你的主板上启动Linux没有MMU,但遇到了一个错误。
答案 2 :(得分:1)
我相信ucLinux是为这样的东西而建造的[mmu less systems] http://www.uclinux.org/description/