【c++】虚拟地址空间的布局

it2022-05-05  131

每一个程序运行都会有一个虚拟地址空间

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位不需要)

用户空间独立的,内核空间共享的


最新回复(0)