作者mecs (mecs)
看板LinuxDev
标题Re: [问题] 请问uclinux 是都不支援module吗?
时间Fri Nov 27 13:04:11 2009
※ 引述《ardenjay (惦惦)》之铭言:
: : 个人想法,没经过考证,大家讨论一下
: : uclinux不支援mmu, module的PA是动态配置的,谁知道你要insomd时physical mem
: : 剩哪些地方可以用?
: : 没mmu就不能做动态mapping(VA<->PA) ,那要怎麽动态配置记忆体给module呢?
: : 自然就没辄了
:
: 个人想法,没经过考证, too.
:
: 不支援mmu并不表示没办法做 "memory management" 吧?
: 我可以很简单的做个小型 boot loader,规划一块memory出来做heap
: 这块heap就可以用来动态配置计忆体…
:
: --
:
※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 118.169.226.157
: → ChampYen:这需求不是放置 data, 是放可执行的binary耶... 11/21 10:05
: 推 mecs:heap不是只能放data 11/21 11:19
: → ChampYen:当然不只能放data, 问题是pic or reloc 弄清楚再来推 11/21 11:28
: → elpam:boot loader? loader? 11/21 12:13
: 推 mayasky:但是binarary里面branch的addr是相对或绝对固定的欧 11/21 13:20
: → mayasky:但你的phy addr却不固定~势必要有个mapping阿 11/21 13:22
1. 「module的PA是动态配置的,谁知道你要insomd时physical mem
剩哪些地方可以用?」, 「...那要怎麽动态配置记忆体给module呢?」
「pic or reloc」, 「...phy addr却不固定...」。试想,有 MMU 的系统
如何解决这些问题?在有 MMU 的环境, module 的 virtual address 也是
动态配置的。
2. MMU-less 的系统当然可以做动态 memory management 。ardenjay 所说得
实际上也是许多简单的 embedded system (without MMU enabled)
所使用的方式,这种情况下,常常没有特别区分 bootloader 跟 embeded
system (software)。
3. Heap 是指动态 memory management 可以使用的,如果没有特别
的保护,这个区域可以读、写、以及执行。这跟 MMU-less 并没有关系。
kernel module 必须是 PIC,不论有无 MMU。
4. uclinux 已经支援 LKM
http://www.ucdot.org/article.pl?sid=03/01/24/0156235
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 174.48.126.243