Linux
linux如何把SMBIOS資訊放到/dev/mem?
我檢查了 dmidecode 原始碼。
我看到了這個:
int fd=open("/dev/mem", O_RDONLY); long fp=0xE0000L;
看起來 Linux 已經將 SMBIOS 資訊複製到記憶體了?
/dev/mem
提供對所有物理地址空間的訪問。BIOS 韌體是該地址空間的一部分(您的電腦必須有一些程式碼才能在開機期間執行)。所以Linux“沒有將SMBIOS資訊複製到記憶體”,
0xe0000
自古以來就是BIOS的基地址,讀取這個via/dev/mem
會直接從ROM中讀取(除非BIOS在啟動過程中用shadow RAM替換了自己,但同樣與Linux無關)。