gpt4 book ai didi

android - linux 中/dev/kmem char 设备的真正用途是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:51:44 25 4
gpt4 key购买 nike

从最近几天开始,我试图了解 /dev/mem/dev/kmem 设备之间的确切区别。从不同的来源,我唯一知道的是,当我们尝试从这些设备读取时,分别调用了 read_mem()read_kmem() API。

read_mem(): reads the *physical* memory 
read_mem(): reads the *virtual* memory as seen by the kernel.

我很想知道 /dev/kmem 的唯一目的是什么,我们可以在哪些用例中使用它。 regdump 是一个示例,其中 /dev/mem 很有用。但是找不到/dev/kmem的用处。

有人可以列出或分享一些关于 dev/kmem 字符设备的有用信息吗?

最佳答案

can someone list or share some useful information regarding the dev/kmem char device?

/dev/kmem/dev/mem 设备包含关于您的 RAM 的相同信息。但是正如您在 man kmem 中所读到的那样:

The file kmem is the same as mem, except that the kernel virtual memory
rather than physical memory is accessed.

这意味着 /dev/kmem 提供与 /dev/mem 相同的信息,但它是由 Linux 内核看到的。例如,如果你要执行执行这样的事情:

open("/dev/mem");
seek(0);
read(100);

您将从 RAM 地址 0 读取前 100 个字节。换句话说,如果你要执行:

open("/dev/kmem");
seek(0);
read(100);

您将从虚拟地址 - 0 读取100 字节,它由系统的内存管理单元映射到某个物理RAM 地址(例如 0x01000000 用于 x86_64,您可以通过以下方式找到它:

cat/proc/iomem | grep "内核代码"

在您的设备上。

我认为/dev/kmem 设备对security 很有用。研究从内核的角度来看进程,我认为目前没有 /dev/kmem 就无法解决其他重要问题。

关于android - linux 中/dev/kmem char 设备的真正用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30680152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com