1、虚拟地址连续
2、虚拟地址比物理地址空间大
3、虚拟地址实现进程间隔离
一般进程在用户模式下运行
核心操作系统组件和驱动程序在更有特权的内核模式下运行
Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。两者不能用指针传递数据
内核空间的虚拟地址为物理地址加上0xC00000000,相当与虚拟地址顶端内核空间映射到物理内存的最开始部分
32位:
用户模式进程 虚拟空间大小 默认2G,可以修改为3G 低2G 独立
内核模式 虚拟大小2G 共享 高2G
64位:
用户模式进程 8T
内核模式 高248T 中间保留
C进程内存分布
由低到高
text
数据段
bss段 赋值zero
heap
stack
命令行参数和环境变量