linux - 术语 "user space"和 "kernel space"是指物理内存吗?

标签 linux linux-kernel x86 operating-system

当我们使用术语“用户空间”时,是指物理内存中包含用户进程的代码和数据的区域,还是指每个进程拥有的 3 GB 虚拟内存?

当我们使用术语“内核空间”时,我们是指物理内存中包含内核代码和数据的区域,还是指每个进程拥有的 1 GB 虚拟内存?

最佳答案

术语“内核空间”和“用户空间”并不具体指代虚拟内存或物理内存。从概念上讲,如果你说“内核空间”是指每个进程拥有的 1GB 虚拟内存,它仍然与指代驻留在物理内存中的内核代码和数据相同,因为 1GB 虚拟内存映射到容纳内核的物理内存代码和数据。

我们使用术语“内核空间”和“用户空间”来指代谁有权访问内存的哪一部分。 “内核空间”是指只有内核可以访问的内存,而“用户空间”是指相应的用户进程和内核都可以访问的内存。

关于linux - 术语 "user space"和 "kernel space"是指物理内存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44548813/

相关文章:

c - 设置堆页的 PG_Referenced 位的内核函数

linux-kernel - qemu 和 gdb 的问题

assembly - 跳转到指令中间 - 在 IA-32 中

gcc - 为什么这个带有 gcc (clang) 内联汇编的简单 c 程序表现出未定义的行为?

c++ - 汇编代码中的数字非常大,但在 C++ 中无效

linux - Hadoop错误日志jvm sqoop

linux - Perl 脚本,如何从 .bash_profile 获取环境变量

linux - 生产者消费者实现

c - 如何从源代码编译我自己的glibc C标准库并使用它?

linux-kernel - 可以延迟加载导出的符号吗?