虚拟地址内存划分比例为3:1,用户空间占3G,内核空间占1G。此图的地址从上到下依次增大。最上面128M为保留区,不可访问。接下来是.text段存放的是指令,.data段存放的是初始化但不为0的全局变量和静态全局变量,.bss段存放的是未初始化的或者初始化为0的全局变量和静态全局变量。heap(堆)从低地址向高地址增长,用户手动开辟的内存就是在堆区,释放也需要用户手动释放。stack(栈)从低地址向高地址增长,主要存储局部变量等这块内存是系统开辟和释放的。堆和栈中间是共享库,命令行参数存储程序名和参数。环境变量是指系统运行一个程序,但没有告诉它程序所在的路径时,系统除了 在当前目录下面寻找此程序外,还会到path中指定的路径去找,我们可以通过设置环境变量,来更好的运行进程。ZONE_DMA :(直接内存访问)可以加快磁盘和内存之间的数据交换,不需要经过CPU的寄存器,提高了CPU的工作效率。ZONE_NORMAL是内核中最重要最常用的部分,用于直接映射,PCB(进程控制块)就在这里。ZONE_HIGHMEM是高端内存,用于在内核中映射高于1GB的物理内存时使用,64位操作系统没有该段。