如何用C來access physical memory?

debian 開發版,這個版面主要是要討論 debian@taiwan or debian@chinese 相關開發議題,所謂開發如 debian 中文化問題、文件製作維護問題、程式開發問題...最終目的是能從這個版面的討論成立一個接一個的工作小組來幫助 debian@taiwan or debian@chinese 發展,讓 taiwan 或華人能更方便的使用 debian。

如何用C來access physical memory?

文章cyu021 » 週五 3月 25, 2005 12:55 pm

大家好,

我最近在研究linux kernel (2.6.7),其中我想自己從virtual memory address計算出實際的physical memory address。但是現在有一問題就是不知道如何透過C語言直接讀取physical address的content.

eg,
我把CR3的值讀出來加上virtual address的最前面10 bits就是Page Dirctory的physical address, 我必須將他的content讀出來才能繼續做content + virtual address[12..21]來取得Page Table的physical address, ...etc

謝謝
cyu021
懵懂的國中生
懵懂的國中生
 
文章: 137
註冊時間: 週二 9月 14, 2004 9:52 am

文章訪客 » 週五 3月 25, 2005 1:08 pm

man mem
man mmap
訪客
 

文章cyu021 » 週五 3月 25, 2005 1:17 pm

謝謝您的回覆。
只不過我是在debug kernel的時候就要讀physical memory (kenrel都還沒起來應該不能用mem吧),如果可以的話要如何在C code裡面來invoke這些command呢?
cyu021
懵懂的國中生
懵懂的國中生
 
文章: 137
註冊時間: 週二 9月 14, 2004 9:52 am

文章cyu021 » 週五 3月 25, 2005 1:18 pm

btw, 我是用gdb透過com port做debug的
我的kernel用kgdb的patch patch過
cyu021
懵懂的國中生
懵懂的國中生
 
文章: 137
註冊時間: 週二 9月 14, 2004 9:52 am

Re: 如何用C來access physical memory?

文章shogun1234 » 週五 3月 25, 2005 4:13 pm

cyu021 寫:大家好,

我最近在研究linux kernel (2.6.7),其中我想自己從virtual memory address計算出實際的physical memory address。但是現在有一問題就是不知道如何透過C語言直接讀取physical address的content.

eg,
我把CR3的值讀出來加上virtual address的最前面10 bits就是Page Dirctory的physical address, 我必須將他的content讀出來才能繼續做content + virtual address[12..21]來取得Page Table的physical address, ...etc

謝謝


have a try virt_to_phys() which provides the 'map virtual addresses to physical' function.
shogun1234
可愛的小學生
可愛的小學生
 
文章: 53
註冊時間: 週三 1月 08, 2003 3:04 pm


回到 debian develop

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客