裝置記憶體緩衝區和 /proc/iomem
https://osu.redhat.com/content/courses-zh-cn/rha130-4/section_0002/tag_lessons/section_0002/section_0001/tag_resource/section_0003?set_language=zh-cn
許多比較先進的裝置都有自己的記憶體,這些記憶體一旦映射到系統的記憶體位址空間中,可以利用它們輕鬆地傳遞資料。顯卡是典型的自己提供記憶體緩衝區的裝置。
proc 檔案系統檔案 /proc/iomem 顯示所有記憶體緩衝區映射到實體記憶體的裝置,和分配給每個緩衝區的實體記憶體地址(以十六進位數字列出)。
[root@station root]# cat /proc/iomem00000000-0009fbff :System RAM 0009fc00-0009ffff : reserved000a0000-000bffff :Video RAM area000c0000-000c7fff : Video ROM000f0000-000fffff : System ROM00100000-2dfeffff : System RAM 00100000-002766f6 : Kernel code 002766f7-00384807 : Kernel data...e3000000-e3003fff :Creative Labs SB Audigy FireWire Porte3004000-e30043ff : Linksys Network Everywhere Fast Ethernet 10/100 model NC100 e3004000-e30043ff : tulipe3005000-e30057ff : Creative Labs SB Audigy FireWire Porte3006000-e30060ff : VIA Technologies, Inc. USB 2.0 e3006000-e30060ff : ehci-hcde3007000-e30070ff : VIA Technologies, Inc. VT6102 [Rhine-II] e3007000-e30070ff : via-rhine...
| |
在看到這個檔案以前,機器的主記憶體 (RAM 或“隨機存取記憶體(Random Access Memory”)被視為“一個其它裝置”,並與低層物理地址空間映射。 |
| |
物理地址空間不需要連續(沒有間隔地)使用。在這裡系統 RAM 的映射被打斷以便映射 VGA 顯卡。這個裝置的地址之前曾在物理地址空間出現,但由於某些原因不能被刪除。 |
| |
多數有緩衝的先進裝置會被映射到物理地址空間的上層地址。 |