bss段
2018-03-10 09:39
127 查看
转载自:http://blog.csdn.net/bobocheng1231/article/details/2115289
一个程序本质上都是由 bss段、data段、text段三个组成的。这样的概念,不知道最初来源于哪里的规定,但在当前的计算机程序设计中是很重要的一个基本概念。而且在嵌入式系统的设计中也非常重要,牵涉到嵌入式系统运行时的内存大小分配,存储单元占用空间大小的问题。
在采用段式内存管理的架构中(比如intel的80x86系统),bss段(Block Started by Symbol segment)通常是 指用来存放程序中未初始化的全局变量的一块内存区域,一般在初始化时bss 段部分将会清零。bss段属于静态内存分配,即程序一开始就将其清零了。 比如,在C语言之类的程序编译完成之后,已初始化的全局变量保存在.data 段中,未初始化的全局变量保存在.bss 段中。
在《Programming ground up》里对.bss的解释为:There is another section called the .bss. This section is like the data section, except that it doesn’t take up space in the executable.
text和data段都在可执行文件中(在嵌入式系统里一般是固化在镜像文件中),由系统从可执行文件中加载;而bss段不在可执行文件中,由系统初始化。
一个程序本质上都是由 bss段、data段、text段三个组成的。这样的概念,不知道最初来源于哪里的规定,但在当前的计算机程序设计中是很重要的一个基本概念。而且在嵌入式系统的设计中也非常重要,牵涉到嵌入式系统运行时的内存大小分配,存储单元占用空间大小的问题。
在采用段式内存管理的架构中(比如intel的80x86系统),bss段(Block Started by Symbol segment)通常是 指用来存放程序中未初始化的全局变量的一块内存区域,一般在初始化时bss 段部分将会清零。bss段属于静态内存分配,即程序一开始就将其清零了。 比如,在C语言之类的程序编译完成之后,已初始化的全局变量保存在.data 段中,未初始化的全局变量保存在.bss 段中。
在《Programming ground up》里对.bss的解释为:There is another section called the .bss. This section is like the data section, except that it doesn’t take up space in the executable.
text和data段都在可执行文件中(在嵌入式系统里一般是固化在镜像文件中),由系统从可执行文件中加载;而bss段不在可执行文件中,由系统初始化。
相关文章推荐
- data段与bss段
- bss段和.data段的区别
- BSS段、数据段、代码段、堆栈、指针/引
- text段,data段,bss段,堆和栈
- BSS段
- BSS段,数据段,代码段,堆和栈
- 数据段、代码段、堆栈段、BSS段的区别
- bss段,代码段及数据段的区别
- 全局/静态变量初始化为0放在bss段还是data段
- 数据段、代码段、堆栈段、BSS段的区别
- 关于BSS段和Data段
- linux代码段,数据段,BSS段, 堆,栈
- BSS段,数据段,代码段,堆内存和栈
- bss段和common段的区别
- BSS段 数据段 代码段 堆 栈
- 关于BSS段的大小
- 可执行程序中的BSS段
- 数据段、代码段、堆栈段、BSS段的区别
- Text段、Data段和BSS段
- C++语言中内存分布及程序运行中(BSS段、数据段、代码段、堆栈)