【发布时间】:2019-08-21 22:44:06
【问题描述】:
我正在使用 64 位 x86 Linux 计算机。
在这种架构上,每个进程都有自己的 64 位地址内存空间。
内存块由 MMU 组件映射到物理内存(或交换)。
现在,我想知道内核内存是如何工作的。 如果我用这段代码写一个 linux 内核模块:
char * address;
address = 0x.....;
*address = 0x42;
这个 0x42 会写在哪里? 直接在物理内存中?
或者 linux 内核是否像任何用户和进程一样作为 64 位内存空间?
谢谢
【问题讨论】:
-
Linux内核模块的代码被某个进程执行。进程根据其地址空间访问内存。这适用于用户空间和内核空间的访问。区分用户空间和内核空间访问的是地址空间。在此处查看更多信息:stackoverflow.com/questions/13013491/…
标签: linux-kernel