如果有人能解释为什么这两个文件不存在,我将不胜感激? 如果没有这两个文件,Android 内核的虚拟内存空间和物理空间会怎样?
编辑: 我有 Android 2.3.7 (Cyanogen mod),这两个文件不存在:
编辑2: 我检查了运行 ICS 的 Samsung Galaxy S3,这 2 个文件存在
最佳答案
/dev/mem
(c:1:1) 和 /dev/kmem
(c:1:2) 设备节点仅仅是一个 API drivers/char/mem.c
在 Linux 内核中暴露给用户空间。内核本身直接管理内存而不使用这些设备节点,一般用户空间也不需要它们。
/dev
只是一个目录(按照传统)包含设备节点,它们是特殊的"file"; /dev
中可用的内容之间没有严格的关系以及内核提供了什么。 (有像 udev
或 mdev
这样的工具可以在 /dev
中创建和销毁设备节点以响应内核事件,但这些工具并不总是用于硬件相对固定和已知的嵌入式世界。)如果你愿意,您可以尝试创建这些节点以使用 mknod
进行交互(这可以存在于任何地方,不一定在 /dev
中)。但是,有可能内核已经配置了CONFIG_DEVKMEM=n
,在这种情况下,这些设备将无法正常工作。
关于android -/dev/mem 和/dev/kmem 不存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12208350/