Linux下的4G虚拟地址空间

在windows下4G 地址空间中低2G,0x00000000-0x7FFFFFFF 是用户地址空间,4G地址空间中高2G,0x80000000-0xFFFFFFFF 是 系统地址空间。访问 系统地址空间需要程序有ring0的权限。而Linux对4G空间的划分不同与windows。linux将最高的1G 字节(从虚拟地址0xC0000000 到0xFFFFFFFF),供内核使用,称为“内核空间”。而将较低的3G 字节(从虚拟地址0x00000000 到0xBFFFFFFF),供各个进程使用,称为“用户空间”。

在Linux系统下,0xC00000000-0XFFFFFFFF为系统空间,为所有的系统进程所共享,0X00000000-0XC0000000为用户空间。

今天讲的是Linux下的虚拟地址空间。

 

1、保留区:是用户不可访问的128M地址空间。

例如:int* p = NULL; 后是不可以再对p进行使用,因为p的地址为 NULL ,不可访问

2、.text段:即代码段,存放的是一些指令

3、.data 和.bss都是数据段:其中.data存放的是已初始化且初始化不为零的数据;而.bss是未初始化或初始化为零的数据

用两个段来存放数据是为了节省空间

4、堆区:特点是由用户管理,先进后出,用malloc、ralloc、calloc动态分配内存使用堆,从低地址向高地址增长

5、共享库:加载共享库和使用mmap共享内存

6、栈区:特点是由系统管理,先进后出,里面放了局部变量、函数形参、自动变量,从高地址向低地址增长

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值