나는 최근에 리눅스 커널 버전을 만들었습니다. 4.13.9, 구성 옵션 CONFIG_DEVKMEM
및 CONFIG_DEVMEM
. 숙제로 인해 커널 메모리에 액세스해야 하며 메모리에 있는 일부 프로세스의 파일 설명자 테이블을 확인해야 합니다. (예, /proc
파일 시스템에 대해 알고 있지만 커널 메모리의 파일 설명자 테이블을 보고 싶습니다. 정확한 구조).
그래서 저는 이러한 옵션을 사용하여 커널을 구축했습니다. /dev/mem
잘 작동하지만, 읽으려고 하면 /dev/kmem
다음 오류가 발생합니다.
user@debian-macbook:~$ sudo dd if=/dev/kmem bs=1k count=1 of=~/kmem
dd: error reading '/dev/kmem': No such device or address
0+0 records in
0+0 records out
0 bytes copied, 6.9563e-05 s, 0.0 kB/s
/dev/kmem이 존재합니다:
user@debian-macbook:~$ file /dev/kmem
/dev/kmem: character special (1/2)
저는 데비안 9를 실행하고 있습니다:
user@debian-macbook:~$ uname -a
Linux debian-macbook 4.13.9 #1 SMP Mon Oct 23 01:17:31 MSK 2017 x86_64 GNU/Linux
user@debian-macbook:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 9.2 (stretch)
Release: 9.2
Codename: stretch
/dev/kmem에 어떤 문제가 있는지 알려주시거나 다른 접근 방식을 제안해 주세요.
감사해요.
추신. 다음 옵션을 활성화해야 합니다.
user@debian-macbook:~$ cat /boot/config-4.13.9 | grep -Ee 'DEV(|K)MEM'
CONFIG_DEVMEM=y
CONFIG_DEVKMEM=y
CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
# CONFIG_STRICT_DEVMEM is not set