[問題] Linux 實體記憶體

看板LinuxDev作者 (unbutu)時間12年前 (2013/04/15 17:30), 編輯推噓0(0010)
留言10則, 2人參與, 最新討論串1/1
小弟有個問題想請教 假設Linux的user層有一支程式Task A想透過共享記憶體溝通 首先申請一塊free memory,接著就會將此free memory透過系統提供之mmap映射 到Task A的虛擬空間。 另外如果想利用驅動程式存取memory map io Register,通常會透過ioremap將Register的 實體空間映射到kernel的虛擬空間。 我想請教的問題是有沒有函式可以讓一般的記憶體(類似剛才提到的free memory)映射到 kernel層的虛擬空間。 謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.227.244.206

04/16 12:44, , 1F
我覺得你可能要重看mmap是用來幹嘛得....
04/16 12:44, 1F

04/16 12:45, , 2F
mmap應該就是用來達成你要的功能才對
04/16 12:45, 2F

04/16 13:25, , 3F
不好意思我好像看反了.你好像是要反過來做?
04/16 13:25, 3F

04/16 13:26, , 4F
http://tinyurl.com/d2ob3h9 不知道算不算你要的
04/16 13:26, 4F

04/16 13:28, , 5F
我查到的文獻說明虛擬空間切成兩半分 一部分是行程
04/16 13:28, 5F

04/16 13:30, , 6F
另一部分是Kernel 我想把一般的記憶體映射到kernel那部分
04/16 13:30, 6F

04/16 13:31, , 7F
還是說映射沒有分映射到哪 可是這樣又為何有mmap 和ioremap
04/16 13:31, 7F

04/16 13:33, , 8F
先去閱讀您提供的資料 謝謝
04/16 13:33, 8F

04/16 23:54, , 9F
ioremap是把phyical轉成virtual address.
04/16 23:54, 9F

04/16 23:55, , 10F
可是你用alloca()的方式一定是取得virtual; 沒啥衝突
04/16 23:55, 10F
文章代碼(AID): #1HR3aVDy (LinuxDev)
文章代碼(AID): #1HR3aVDy (LinuxDev)