IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 进程虚拟地址空间区域划分 -> 正文阅读

[系统运维]进程虚拟地址空间区域划分

进程虚拟地址空间区域划分

在我们用一门语言写一个程序,会产生两种东西:指令和数据。在我们进行编译链接后,生成一个可执行文件存放在我们的磁盘上,运行这个程序时,会把这个程序加载到内存中。
而在加载的过程中,把可执行文件的哪些内容加载到了内存?加载到内存当中是如何存放的?分为哪些区域?具体如何划分?

在此之前我们需要知道,程序不可能直接加载到物理内存!
下面以X86 32位Linux环境下为例进行分析。

在程序执行时,Linux系统会给当前进程分配一个2^32(4G)大小的一块空间,这块空间就是进程的虚拟地址空间,其中拥有进程要用的所有资源,所有资源构成了状态的划分。

这块空间默认被划分成两个部分:用户空间和内核空间,用户空间默认占3G大小的空间,内核空间默认大小为1G。
在这里插入图片描述
系统中所有进程都有一个地址空间。

在用户空间中,系统并不是从0地址(0x00000000)开始存放资源,在0x00000000 到 0x08048000 这段内存是不能被访问的,所以在对空指针解引用时程序会崩溃。

接下来的内存段存放的是 .text 段和 .rodata 段。.text 段存放的是指令,.rodata 段存放的是只读数据,例如程序中定义的字符串常量 char* str = "hello world";,这两段的资源都是只读资源,在我们试图修改这两段的数据时,程序会直接崩掉。

接下来存放的是 .data 段和 .bss 段,.data 段存放的是已初始化且值不为0的全局变量和静态变量,而 .bss 段存放的是未初始化或初始化为0的全局变量和静态变量。

紧跟着的是 .heap堆内存段,程序动态申请的空间都在这段内存。

如果程序链接了动态库,在堆内存后的这段内存用于加载共享库。

再往下就是函数运行、或开辟线程时的 stack 栈空间,和其他内存段不一样,栈空间的增长方向和其他段是相反的,从高地址向低地址增长。

最后的内存段存放的是命令行参数和环境变量。
在这里插入图片描述
在这里插入图片描述
截取自《深入了解计算机系统》。

每个进程的用户空间是私有的,但内核空间是共享的!

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-04-24 09:50:00  更:2022-04-24 09:52:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 19:55:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码