Re: [問題] Linux 記憶體管理與MMU?
※ 引述《xb1015 (Marco)》之銘言:
: 小弟有一些問題想要請教各位大大
: 先前有看過作業系統 以及 ARM MMU介紹
: 對於MMU與Linux關係有點困惑
: 想要請教各為大大
: 一般在沒有MMU狀況底下(boot loader)
: Linux可以直接讀寫任意memory address 透過 ARM CPU
: 這樣可以很好理解Linux 可以掌控使用多少記憶體區間
: 在我看了MMU介紹,MMU是硬體元件
: 我想像流程如下
: 讀寫記憶體流程
: Linux --> ARM CPU --> logic address --> MMU --> physical address --> Memory bus --> Memory
: 疑問如下:
: 1.
: Linux 記憶體管理是管理physical memory使用量嗎 ?
都會管,都合格才會給address
2.
: 我理解Linux 應有一個 memory map table, 記錄 physical momory <--> logic memory,
: 是否正確呢 ? (MMU enable)
雙向都有
logical->phy的確有page table
但實做上沒phy->logical的表,好像是個trie
: 3.
: 承上,Linux如何獲得logic memory呢 ?是否Linux知道physical --> logic memory
: 演算法?
上面說了
我很久沒update...以前是radix tree之類
: 4.
: 我知道kernel有指令ioremap,但是想不通如何做到記憶體轉換?
: 到此, 我想有一些觀念是錯的 ?
ioremap有pa當參數
只要kernel有va來對應,然後把這對應填進page table,
接著va傳給callee,就可以用拉
: 請大大不令賜教
: THX~
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.171.11.192
※ 文章網址: https://www.ptt.cc/bbs/LinuxDev/M.1495875201.A.A35.html
※ 編輯: mayasky (1.171.11.192), 05/29/2017 03:17:11
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章