当前位置:  技术问答>linux和unix

关于Linux内存分配的一个问题

    来源: 互联网  发布时间:2016-10-07

    本文导语:  请教大家一个问题,程序运行时,什么样的代码会被分配到00502000-01542000(标记为heap)的内存空间? 另外,标记为heap,stack,/tmp/mytestApp以及没有任何标记的区域,都是属于什么空间的? 我只知道heap是堆,stack是栈...

请教大家一个问题,程序运行时,什么样的代码会被分配到00502000-01542000(标记为heap)的内存空间?
另外,标记为heap,stack,/tmp/mytestApp以及没有任何标记的区域,都是属于什么空间的?
我只知道heap是堆,stack是栈,其余的就不清楚了。

# cat /proc/23985/smaps
00400000-004f8000 r-xp 00000000 00:0c 1251       /tmp/mytestApp
Size:               992 kB
Rss:                688 kB
Shared_Clean:         0 kB
Shared_Dirty:         0 kB
Private_Clean:      688 kB
Private_Dirty:        0 kB
004f8000-00502000 rw-p 000f8000 00:0c 1251       /tmp/mytestApp
Size:                40 kB
Rss:                 36 kB
Shared_Clean:         0 kB
Shared_Dirty:         0 kB
Private_Clean:       24 kB
Private_Dirty:       12 kB
00502000-01542000 rwxp 00502000 00:00 0          [heap]
Size:             16640 kB
Rss:               5228 kB
Shared_Clean:      1468 kB
Shared_Dirty:         0 kB
Private_Clean:        0 kB
Private_Dirty:     3760 kB
……………………………………………………(此处省略若干文字)
2b249000-2b24a000 ---p 2b249000 00:00 0
Size:                 4 kB
Rss:                  0 kB
Shared_Clean:         0 kB
Shared_Dirty:         0 kB
Private_Clean:        0 kB
Private_Dirty:        0 kB
2b24a000-2b349000 rw-p 2b24a000 00:00 0
Size:              1020 kB
Rss:                  8 kB
Shared_Clean:         0 kB
Shared_Dirty:         0 kB
Private_Clean:        0 kB
Private_Dirty:        8 kB
7f962000-7f977000 rwxp 7f962000 00:00 0          [stack]
Size:                84 kB
Rss:                 40 kB
Shared_Clean:         0 kB
Shared_Dirty:         0 kB
Private_Clean:        0 kB
Private_Dirty:       40 kB

|
malloc 申请的内存放在堆

另外,通过属性(权限、主次设备号)来判断,
00400000-004f8000 r-xp 00000000 00:0c 1251       /tmp/mytestApp  
---只读可执行私有,是程序本身代码段

004f8000-00502000 rw-p 000f8000 00:0c 1251       /tmp/mytestApp
--可读写私有不可执行,是程序的数据段

2b24a000-2b349000 rw-p 2b24a000 00:00 0
我也不知

|
00400000-004f8000 r-xp 00000000 00:0c 1251       /tmp/mytestApp
这里大概是代码段,r-x 可读可执行,不可写
004f8000-00502000 rw-p 000f8000 00:0c 1251       /tmp/mytestApp
这里大概是数据段,保存全局变量,rw- 可读可写,不可执行

一般来说,一个程序的内存,从低到高分为:
text 代码段
rodata 常量区(Read Only),比如常量字符串
data  数据段,有初值的全局变量,比如 int a=10;
bss   数据段,无初值的全局变量,比如 int b; 这部分在可执行文件里没有,运行的时候由系统加载并初始化为0
heap  堆
stack 栈

|
嵌入式,貌似应用范围比较广
只做过行业应用软件,后台服务程序
没有接触过嵌入式..

    
 
 

您可能感兴趣的文章:

  • linux内核分配内存,及管理?
  • 问个LINUX内存分配的问题。
  • linux c 多线程问题任务分配问题
  • Linux 如何获得分配内存的起始地址
  • linux下具体分配组的访问目录
  • 请教Linux内存分配策略与Windows有何异同?
  • Linux下服务器端的线程分配
  • 偶托管了一管台linux主机,想分配一个用户出来自已用,请问该怎么做?
  • 我在linux下用GPRS拨号上网,拨号分配到的IP是10.98.*.*时为何访问不了公网呢?
  • 关于Linux内存分配函数的几点问题
  • 请问如何在linux下设置为动态地址分配
  • 如何重新分配linux分区
  • Linux Kernel module下如何动态分配内存
  • 请教一个Linux内存分配的问题
  • linux服务器被电信重新分配了IP,结果proftp不能启动了。
  • 嵌入式linux的应用程序分配内存地址问题
  • 关于Linux系统对进程号的分配问题
  • linux权限的分配问题
  • linux下c++对长度不定的字符串要进行预先动态分配内存需要怎么做?
  • linux的usb驱动在分配设备节点时是如何做的?
  • linux下free命令显示的内存使用情况分析
  • 哪位前辈给解释下linux下虚拟内存和物理内存的关系!
  • Linux内存文件系统(ramdisk)的三种实现方式
  • linux下内存泄露检测工具 mtrace 如果记录.so文件中的内存信息
  • linux内存文件系统ramfs实现原理
  • 有人熟悉DMA吗?我要实现内存中的内存的“搬动”。(LINUX)
  • linux下进程占用内存空间详解
  • 如何让linux没有到达内存瓶颈时回收内存页并占用最少资源
  • Linux 共享内存介绍及实现代码
  • 请教关于linux内存管理问题,如何给定义的变量指定固定内存段
  • Linux/Centos/Ubuntu清除系统缓存释放内存命令介绍
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux下时钟同步问题:Clock skew detected原因分析及解决方法
  • linux 繁体 汉字输入法 问题 linux 繁体 汉字输入法 问题
  • Linux 下c++开发error while loading shared libraries问题解决
  • 先安装linux,后安装winxp,能否解决正常启动linux的问题不?(初学者问题,很容易回答)
  • 弱弱的一问,linux下的中文问题及网络问题,分不是问题
  • Linux新手问,Linux安装问题。
  • linux下游戏问题。(菜鸟问题)
  • 初学Linux,发现Linux下的版本问题很头痛。【系列问题】
  • 高深问题:有了linux内核源代码如何做成一个linux操作系统
  • 一个很菜的问题,关ARM与linux内核裁剪的问题!
  • vmware装的linux,通过win2000访问linux的web服务器有问题
  • 初次接触linux,关于linux 用户权限问题请教!
  • Linux下是否存在磁盘碎片问题和内存碎片问题?
  • linux开发的应用程序部署到其他linux的问题
  • vmware上装LINUX的问题,WIN7可以拼的通linux的IP,linux拼不通win7的IP
  • Linux互ping在局域网内大量丢包,但是linux和windows互ping就没问题。
  • 最菜的问题—关于linux“动态库”的问题
  • linux下挂载linux分区的问题
  • 一个小问题。Linux下编程语言的问题。
  • linux问题 secureCRT连接的问题 在线等急!~~
  • Linux下环境变量问题以及FLEX安装问题
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3