每一个程序运行都会有一个虚拟地址空间
1.虚拟地址空间有多大?
CPU的位数有关(ALU的宽度,数据总线的条数) x86 32bit Linux内核(4G)
2.为什么是数据总线的条数?
16CPU 数据总线:16 地址总线:20
8CPU 数据总线:8 地址总线:16
.bss 未初始化和初始化为0的全局变量和静态变量
.data已初始化且初始化不为0的全局变量和静态变量
stack 局部变量
.
.text .data .bss 大小不变
内核空间:
ZONE_DMA:直接内存访问,加快磁盘和内存之间交换数据
ZONE_NORMAL:内存由内核直接映射到线性地址空间的较高部分
ZONE_HIGHMEM:高于1G,高端内存(64位不需要)
用户空间独立的,内核空间共享的