用任何语言写代码,无非产生两种东西,,,指令+数据
CPU的位数,指的是:一次性,能加以运算的最长的正数的宽度。
ALU 算数逻辑单元的宽度
虚拟内存的大小与CPU的位数有关系 SIZE== 2^32 == 4G
0x0000 0000 ------ 0x FFFF FFFF
0x00000000 -> 0x C000 0000 用户空间(低3G)
0x C0000 0000 -> 0x FFFF FFFF 内核空间(高1G)
0x0000 0000 -> 0x 0804 8000 128M的禁止访问区域
.text 代码段 存放指令
.data 数据段 存放数据 (已经初始化的数据)
.bss 数据段 存放数据 (未初始化或初始化为0的变量)占用虚拟地址空间
heap 堆
共享库 如果当前程序用到库中的函数
.stack 栈
命令行参数
环境变量
(以上是用户空间)
-----------(分界线)
(以下是内核空间)
ZONE_DMA 低16M 直接内存访问(加速内存和磁盘之间访问数据用的)
ZONE_NORMAL 中间892M 内核常用
ZONE_HIGHMEN 高128M 高端内存(主要在内核映射高于1G的物理内存)
内存布局以及相互之间的关系
<