大概它与记忆有关吧?
sudo cat /dev/urandom > /dev/mem
做什么?丢弃所有 RAM?丢弃所有非内核虚拟内存?以上都不做?
答案1
答案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 命令,而不是重定向。