Linux에서 SMBIOS 정보를 /dev/mem에 넣는 방법은 무엇입니까?

Linux에서 SMBIOS 정보를 /dev/mem에 넣는 방법은 무엇입니까?

dmidecode 소스 코드를 확인했습니다.

나는 이것을 보았다:

int fd=open("/dev/mem", O_RDONLY);
long fp=0xE0000L;

Linux가 SMBIOS 정보를 메모리에 복사한 것 같습니다.

답변1

/dev/mem모든 물리적 주소 공간에 대한 액세스를 제공합니다. BIOS 펌웨어는 이 주소 공간의 일부입니다(컴퓨터에 전원을 켜는 동안 실행할 일부 코드가 있어야 함).

0xe0000따라서 Linux는 고대부터 BIOS의 기본 주소였던 "SMBIOS 정보를 메모리에 복사하지 않습니다" . 이 경유를 통해 읽는 /dev/mem것은 ROM에서 직접 읽습니다(부팅 프로세스 중에 BIOS가 섀도우 RAM으로 교체하지 않는 한 여전히 동일함). 문장)은 Linux와 관련이 없습니다).

관련 정보