※ 引述《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