.bss
Sign in to saveIn computer programming, the block starting symbol (abbreviated to .bss or bss) is the portion of an object file, executable, or assembly language code that contains statically allocated variables that are declared but have not been assigned a value yet. It is often referred to as the "bss section" or "bss segment".
Article · 日本語
.bssまたはbssとは、静的にアロケートされた変数のうちプログラムの開始時に0で初期化されているものを含むデータセグメント内の1つのメモリ領域に付けられた名前である。Unix系や Windows を含め、多くのコンパイラやリンカがこの名前を使う。bssセクションあるいはbssセグメントと呼ばれることも多い。 C言語では、初期化式なしで静的にアロケートされた変数は0(数値型の場合)かNULLポインタ(ポインタ型の場合)に初期化される。数値の0とNULLポインタは一般的なコンパイラではすべてのビットが0のビットパターンで表現される。bssセクションは初期化式を持たないグローバル変数とstaticキーワードのついた初期化されていないローカル変数を含む。0からなるビットパターンで初期化される変数をbssセクションに割り当ててもよい。 通常、bssセクションに割り当てられたメモリはプログラムローダーがプログラムをロードするときに初期化する。main が実行されるより前にCランタイムシステムがbssセクションにマップされたメモリ領域をゼロで初期化する。ただし、必要時まで0で初期化するのを遅延するというテクニックを使ってOSがbssセクションを効率的に実装してもよい。 一部のABIはsbssセグメント(small bssの意)をサポートしている。このセグメントは、特定のアドレスしかアクセスできない命令を使ったコンパクトなコードからもアクセスできるデータ要素を含む。 BSSはBlock Started by Symbolというアセンブラの疑似命令に由来する。このアセンブラUA-SAPは1950年代にRoy Nutt、Walter Ramshawとその他のUnited Aircraft Corporationの人々によって開発された。BSSというキーワードは、IBMの709および7090/94コンピュータのアセンブラFAT(FORTRAN Assembly Program)に導入された。
Abstract from DBpedia / Wikipedia · CC BY-SA