专栏首页数据饕餮Linux内核深入研究之进程的线性地址空间-传统版

Linux内核深入研究之进程的线性地址空间-传统版

引言:

  了解Linux环境下,进程的地址空间划分,对于我们理解Linux应用程序有很大的帮助,否则会被New与Malloc之类的指针操作弄的晕头转向,本文基于Linux内核讲述了Linux/Unix线性地址空间的划分,为你答疑解惑。从逻辑上来看,Unix程序的线性地址空间传统上被分为几个叫做段(segment)的区间。

一、正文段

  包含程序的可执行代码。

二、已初始化数据段

  包含已初始化的数据,包括所有静态成员变量和全局变量。现在能理解啥const类型的变量,不允许你更改了吧。

三、未初始化数据段(bss段)

  包含未初始化的数据,也就是初值没有放在可执行文件中的所有全局变量(应用程序引用他之前才赋值),沿用历史叫法位bss段。

四、堆栈段

包含程序的堆栈,堆栈中有返回的地址,参数和被执行函数的局部变量。

五、总结

 看到以上的内容,明白你的进程地址空间的结构了吧,全局变量在哪里?静态变量在哪里?局部变量在哪里?是否有所了解呢。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Hadoop2.2.0 eclipse插件编译及Ecliipse配置说明(图文版)

      最近在做一个城商行项目的POC测试it版本,涉及到编译Linux64bti的源码和开发插件使用,作为笔记分享给大家。

    数据饕餮
  • 内存数据库专题之数据库性能瓶颈分析之IO

      常言道:有数据,有真相。数据库的性能瓶颈分析也是需要拿出具体的数据来的,否则单纯的说谁比谁性能强弱,都是没有说服力和根据的。关于内存数据库和磁盘数据库的性能...

    数据饕餮
  • 知识点查缺补漏贴02:Linux环境fork()函数详解

    是不是感觉比较奇怪,按照if结构的规则,应该只执行一个才对,也正因为此,fork()函数曾经迷惑了不少Linux/Unix平台的开发者。那么为什么呢?

    数据饕餮
  • javascript入门笔记7-计时器

    计时器 语法: setInterval(代码,交互时间) 参数说明: 代码:要调用的函数或要执行的代码串。 交互时间:周期性执行或调用表达式之间的时间间隔,以...

    方志朋
  • Java8——行为参数化传递代码

    AlbertZhang
  • logback自定义appender、policy实现日志打印的逻辑处理

    目前所在的一个组为api接口平台,需要对注册上的接口进行相应的性能监控。因为是中途接手的项目,对于接口性能的监控比较好奇,就花了点时间了解下,又学了一手,写了个...

    RedSheep
  • Java8实战——通过行为参数化传递代码 顶

    须臾之余
  • Solr在分布式环境中的应用

    1、单机版运行正常 2、搭建zookeeper集群(最好也安装到solr集群目录下) 3、复制能够运行solr单机版的tomcat到solr集群目录下 4...

    时间静止不是简史
  • 腾讯云主机安全(云镜)安装使用教程 免费提供安全防护服务

    腾讯云主机安全(云镜)是一款安全产品,通过腾讯的大数据总结为用户提供黑客入侵检测和漏洞风险预警等安全防护服务及多层次全方位的系统防护技术,主要包括密码破解拦截、...

    魏艾斯博客www.vpsss.net
  • Angular 异常处理

    对于 Angular 应用程序,默认的异常处理是在控制台中输出异常,这对于本地开发和测试阶段,是很方便。但这对于线上环境来说,输出到控制台没有多大的意义。一般情...

    阿宝哥

扫码关注云+社区

领取腾讯云代金券