Linux主機原來有8G記憶體條,新增加一個8G記憶體條后,物理地址如何擴展,能否通過物理地址來區分當前使用的是哪一個記憶體條。比如我可能會對兩根記憶體條做一些差異化處理,Linux內核能否區分出這兩個記憶體條?
uj5u.com熱心網友回復:
Linux內核是可以區分出這兩個記憶體條的,可以通過用戶態的命令查看$ sudo lshw -short -C memory 或者 dmidecode --type 17
X86 的記憶體條是通過 PCI總線進行鏈接的,在 PCI 總線進行列舉的時候
就可以知道每個記憶體條的地址和大小了,一般不用認為的做特殊的處理,
都是由BIOS 初始化好了之后,PCI讀寫相應的配置資訊后,由內核的記憶體
管理系統統一進行管理的,也可以在內核啟動的時候給內核傳入引數預留
記憶體使用,詳細的資訊可以到內核的引數檔案中進行查看
uj5u.com熱心網友回復:
通過地址是不能知道記憶體條的,或者即使開發出這個功能,也是特定芯片組相關的。例如: 兩條記憶體條,BIOS Setup中可以打開或關閉記憶體條的 “通道交錯”模式。
uj5u.com熱心網友回復:
能否通過其他方式獲知呢?或者如果關閉了通道交錯,可不可以實作通過地址知道是哪根記憶體條?
uj5u.com熱心網友回復:
內核啟動后,已經是BIOS封裝好了的物理地址,雖然可以看到有兩個記憶體條,但是如何從記憶體編程的角度來區分現在所使用的page或者物理地址屬于哪個記憶體條呢?
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/133721.html
標籤:內核源代碼研究區
下一篇:交換芯片 linux驅動問題
