为什么 Linux 对 /dev/mem 使用字符设备接口?

dir*_*obs 2 linux memory devices block-device

随机存取存储器(RAM)是一种块设备,为什么Linux使用字符设备文件而不是块设备文件来供用户进程与之交互/dev/mem

$ ls -l /dev/mem
crw-r----- 1 root kmem 1, 1 Jul 24 19:05 /dev/mem
Run Code Online (Sandbox Code Playgroud)

Ste*_*itt 5

答案就在问题中:RAM 不是块设备,它可以在没有限制(物理上)的情况下访问和修改,并且不需要任何缓冲。

\n

/dev/memLinux 上的处理由drivers/char/mem.c它实现了许多字符设备:/dev/mem, /dev/kmem( 5.13 之前), /dev/null, /dev/port, /dev/zero, /dev/full, /dev/random,/dev/urandom/dev/kmsg

\n