linux 在stm32等没有mmu机器上的运行原理

2019-12-14 13:31发布

最近论坛有个linux移植stm32 的帖子 ,然后谷歌了一下看到
http://nommu.org/
总结一下:
1.没有mmu的机器将会使用直接使用物理地址,所有程序将使用统一的地址空间
2.所有的应用程序必须编译成完全可重定向,就是动态链接库的编译原理,这样程序就可以被加载到任何地址运行
3.编译阶段必须固定栈区大小还必须要小,不然分配内存会有很大问题
4.内存频繁使用后将产生大量的内存碎片

简单的说多跑两次程序可能就没有足够多的连续空间可以用的了,看来没有mmu跑linux最大的问题还是内存碎片,现在也没什么好的解决方案

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
31条回答
浮华一生
1楼-- · 2019-12-15 11:32
wye11083 发表于 2018-8-6 14:41
没有mmu的linux叫uclinux。

那是N年前的了。 linux 自己开始支持没有MMU的处理器了
myxiaonia
2楼-- · 2019-12-15 16:23
 精彩回答 2  元偷偷看……
zhonghua_li
3楼-- · 2019-12-15 17:26
我觉得,没有MMU的关键,会导致,你每做一个应用,需要考虑他在那里运行。j
wye11083
4楼-- · 2019-12-15 18:46
zhonghua_li 发表于 2018-8-6 15:38
我觉得,没有MMU的关键,会导致,你每做一个应用,需要考虑他在那里运行。j ...

采用相对路径运行即可。
john78
5楼-- · 2019-12-15 23:47
没有MMU,是否不能支持文件系统?只能讲应用编译到“系统”中
日日♂夜夜
6楼-- · 2019-12-16 03:58
zhonghua_li 发表于 2018-8-6 15:38
我觉得,没有MMU的关键,会导致,你每做一个应用,需要考虑他在那里运行。j ...

所有程序都是编译的相对路径,所以无需考虑这个问题
但问题时必须有足够长的连续内存装的下你的应用

一周热门 更多>