1.模組內部呼叫或跳轉
對於現代的系統來講,模組內部的跳轉、函式呼叫都可以是相對位址呼叫,或者是基於暫存器的相對呼叫,所以對於這種指令是不需要重定位的。
即無論模組被裝載到哪個位置,指令都有效。
2.模組內部資料訪問
任何一條指令與它需要訪問的模組內部資料之間的相對位置是固定的,那麼只需要相對於當前指令加上固定的偏移量就可以訪問模組內部資料了。
資料的相對定址往往沒有相對於當前指令位址(pc)的定址方式,elf採用了乙個很巧妙的辦法來得到當前的pc值,然後再加上乙個偏移量就可以達到
訪問相應變數的目的了。
3.模組間資料訪問
在資料段裡面建立乙個指向這些變數的指標陣列,被稱為全域性偏移表(got)
4.模組間呼叫、跳轉
間接跳轉和呼叫(got)
Linux 記憶體與I O訪問
linux 記憶體分類 由於複雜的記憶體管理功能,記憶體的概念也相對複雜,有常規記憶體,高階記憶體,虛擬位址,邏輯位址,匯流排位址,實體地址,i o記憶體,裝置記憶體,預留記憶體等。高階處理器一般會提供mmu 記憶體管理單元 mmu具有虛擬位址和實體地址轉換,記憶體訪問許可權保護等功能,為了理解mm...
資料儲存與訪問 file
如果要開啟存放在 data data files目錄應用私有的檔案,可以使用activity提供openfileinput 方法。fileinputstream instream this.getcontext openfileinput itcast.txt log.i filetest read...
Linux 驅動分類 與訪問技術
驅動開發概述 1.驅動分類 1.1 常規分析法 1.1.1 字元裝置 字元裝置是一種按位元組來訪問的裝置,字元驅動則負責驅動字元裝置,這樣的驅動通常實現open,close,read和write 系統呼叫。例 串列埠,led,按鍵。1.1.2 塊裝置 在大部分的unix系統中,塊裝置定義為 以塊 通...