U-Boot之text、data、bss、heap、stack基本认识

一般的代码分为text、data、bss、heap以及stack这五个段。本位来介绍一下这四个段的区别

text段是代码段,一段程序被编译成可执行程序的时候会产生全局数据和操作这些全局数据的指令,text段就是用来存放这些指令的

data段是已经初始化的数据段,这些段里面是实实在在的数据

bss段包含的是一些占位符,这些占位符包含了没有初始化的全局变量的大小信息,当程序被加载执行的时候,这些占位符会被展开成真实存在的数据区域,也就是说,在程序以文件的形式在存储介质上存放的时候,data段占空间,bass不占空间(只会占一些存储变量大小信息的空间),当程序运行的时候,二者是没有区别的。

heap段,在数据结构中也有叫做堆的东西,二者完全不是一个东西,要区分开来,这里的堆指的是一些不连续的存储空间(一般由链表管理),由程序员管理和释放。

stack段,一般由编译器分配大小,主要用于函数跳转以及任务调度时的上下文保存。


版权声明:本文为YinShiJiaW原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。