/dev/mem 是什么?

/dev/mem 是什么?

大概它与记忆有关吧?

sudo cat /dev/urandom > /dev/mem

做什么?丢弃所有 RAM?丢弃所有非内核虚拟内存?以上都不做?

答案1

它提供对系统物理内存的访问。

mem(4)手册页进一步解释什么/dev/mem是。

是的——它可能会导致各种问题。重启应该可以解决问题,但坏事很容易发生。小心!:-)

答案2

/dev/mem 提供对系统身体的内存,而不是虚拟内存。可以使用 /dev/kmem 访问内核虚拟地址空间。

它主要用于访问与外围硬件(如视频适配器)相关的 IO 内存地址。

答案3

sudo cat /dev/urandom > /dev/mem不会执行任何操作,因为 sudo 会提升 cat 的权限,但不会提升重定向的权限。您可以执行此操作sudo su,然后在 root shell 中工作,也可以使用
sudo dd if=/dev/urandom of=/dev/mem

/dev/mem提供对物理内存的访问,即系统中的所有 RAM,但这并不意味着它授予您对 RAM 的完全读/写访问权限(请参阅 CONFIG_STRICT_DEVMEM 选项文档)。另请注意,物理内存的某些区域将有其他设备(如视频卡内存等)映射到它上面。

盲目写作/dev/mem会导致不确定的行为,这里YouTube 视频也做了同样的事情。

答案4

/dev/mem 传统上提供对整个物理地址空间的访问。这包括 RAM,但也包括任何内存映射的 IO 设备。

许多现代内核将配置“CONFIG_STRICT_DEVMEM”,将 /dev/mem 限制为仅内存映射的 IO 设备。

向其中写入随机垃圾不是一个好主意,但究竟会发生什么坏事很难预测。硬件可能会以不可预测的方式对随机垃圾做出反应,损坏的内核内存结构可能会导致不可预测的内核行为。我预计最好的情况是系统崩溃,最坏的情况是数据损坏甚至硬件损坏也不是不可能的。

PS 请注意,以普通用户身份运行时,您的命令不应执行任何操作,因为 sudo 仅提升 cat 命令,而不是重定向。

相关内容