32位x86体系linux虚拟地址空间
来源:互联网 发布:c 网络通信 编辑:程序博客网 时间:2024/06/11 11:44
0X00000000开始的128MB空间是禁止访问的,C语言中指针指向NULL时,当对这个指向操作时都是非法的,指向的就是这一块区域。
.text这一块空间就是代码段,这一块除过要保存程序中的源码信息,还包括只读数据段的内容。
.data这就是数据段,保存的是程序中用到的变量(这一块指的是已初始化过的全局静态变量&全局变量、局部静态变量)。
.bss段存放的是未初始化的全局变量和局部静态变量或者是初始化值为0的变量,而且这些段未初始化的变量的初始值或者默认值都是0。
heap段是一块巨大的内存空间,常常占据整个虚拟地址空间的绝大部分,在这片空间里,程序可以请求一块连续内存,例如C语言中的malloc函数申请内存空间就是来自于堆空间,这块内存在程序主动释放之前都会一直保持有效。且空间大小是可变的。
stack,即栈,是一个特殊的容器,用户可以通过压栈(push)和弹栈(pop)按照先进后出的规则对栈进行操作,且压栈位置和弹栈位置都只能是栈顶(top/esp)位置,压栈使得栈增大,弹栈使栈减小。栈底到栈顶总是由高地址指向低地址。函数运行时由系统在栈上开辟空间,栈保存了一个函数调用所需要的“现场”信息,被定义为“栈帧”,其中一般包括函数的返回地址和参数、局部变量定、函数调用前后的“现场”信息。定义的变量未初始化时,默认值都是0xcc这样的奇怪的数,通过对一个变量值的访问就可以确定它是否初始化。
程序启动后,最先加载到内存中的不是代码段内容或者数据信息,而是环境变量和命令行参数(int main(int argc,char*argv[],char*envp[]));所以这一信息在内存中也是必须要存放的。
内核空间是操作系统加载的位置,在计算机启动的时操作系统就加载到这一区域了。
- 32位x86体系linux虚拟地址空间
- IA32体系32位Linux系统虚拟地址映射上
- IA32体系32位Linux系统虚拟地址映射中
- IA32体系32位Linux系统虚拟地址映射下
- IA32体系32位Linux系统虚拟地址映射
- linux虚拟地址空间
- 32位Linux系统虚拟地址映射
- Linux进程虚拟地址空间
- Linux虚拟地址空间概述
- Linux虚拟地址空间分布
- Linux虚拟地址空间分布
- X86体系虚拟化缺陷
- 64位x86体系Linux内核进程切换
- 32位Linux系统的虚拟地址映射 <一>
- 32位Linux系统的虚拟地址映射 <二>
- Linux系统--进程地址空间之虚拟地址空间
- [Linux] 进程的虚拟地址空间
- Linux进程的虚拟地址空间
- 2.2.9静态方法同步与实例方法同步
- CodeForces
- android UI-屏幕显示
- 逆序的三位数
- win7配置vue环境
- 32位x86体系linux虚拟地址空间
- html 窗口管理
- Window平台VPN搭建
- java中枚举的用法
- net start mysql; (修)服务名无效, 请键入 NET HELPMSG 2185,mysql服务启动不了,Install/Remove of the Service Denied!
- 精品旅游项目
- 20171012学习笔记Selenium 2 第四章WebDriver API 4.2控制浏览器 4.3简单元素操作4.4鼠标事件4.5键盘事件
- 上下拉电阻
- HDU