BSS的全稱

2020-08-13 10:14:44
  • BSS是是Unix鏈接器產生的未初始化數據段。

  • BSS是「Block Started by Symbol」的縮寫,意爲「以符號開始的塊」。

  • BSS是Unix鏈接器產生的未初始化數據段。其他的段分別是包含程式程式碼的「text」段和包含已初始化數據的「data」段。BSS段的變數只有名稱和大小卻沒有值。此名後來被許多檔案格式使用,包括PE。「以符號開始的塊」指的是編譯器處理未初始化數據的地方。BSS節不包含任何數據,只是簡單的維護開始和結束的地址,以便記憶體區能在執行時被有效地清零。BSS節在應用程式的二進制映象檔案中並不存在。

  • 在採用段式記憶體管理的架構中(比如intel的80x86系統),bss段(Block Started by Symbol segment)通常是指用來存放程式中未初始化的全域性變數的一塊記憶體區域,一般在初始化時bss 段部分將會清零。bss段屬於靜態記憶體分配,即程式一開始就將其清零了。
  • 比如,在C語言之類的程式編譯完成之後,已初始化的全域性變數儲存在.data 段中,未初始化的或初始化爲0全域性變數儲存在.bss 段中。
  • text和data段都在可執行檔案中(在嵌入式系統裡一般是固化在映象檔案中),由系統從可執行檔案中載入;而bss段不在可執行檔案中,由系統初始化