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

2019-12-14 13:31发布

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

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

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
31条回答
wye11083
1楼-- · 2019-12-14 17:30
没有mmu的linux叫uclinux。
zhonghua_li
2楼-- · 2019-12-14 18:40
这个不是关键问题吧。 可以做内存池
wx85105157
3楼-- · 2019-12-14 23:31
 精彩回答 2  元偷偷看……
leafstamen
4楼-- · 2019-12-15 04:22
我记得之前看过一个新闻linux将要支持不带mmu的处理器了,不过印象不深刻,想不起来在那里看到的了。
ffbiao
5楼-- · 2019-12-15 06:30
这个现象提出来好,写一个程序分配内存测试下,看看效果如何。
n_cell
6楼-- · 2019-12-15 06:54
没有足够的连续内存空间的时候,会自动执行内存碎片整理算法的,这个不需要担心

一周热门 更多>