- .bss
:"bss" redirects here. For other uses, see
BSS ."In
computer programming , .bss or bss (Block Started by Symbol) is used by manycompiler s andlinker s as the name of thedata segment containing staticvariable s that are filled solely with zero-valued data initially (i. e., when execution begins). It is often referred to as the "bss section" or "bss segment". Theprogram loader initializes the memory allocated for the bss section when it loads the program.In an object module compiled from C, the bss section contains the local variables (but not functions) that were declared with the
static
keyword, except for those with non-zero initial values. (In C, static variables are initialized to zero by default.) It also contains the non-local (bothextern
andstatic
) variables that are also initialized to zero (either explicitly or by default).Historically, BSS (from Block Started by Symbol) was a pseudo-operation in
UA-SAP (United Aircraft Symbolic Assembly Program), the assembler developed in the mid-1950s for theIBM 704 by Roy Nutt, Walter Ramshaw, and others at United Aircraft Corporation.The BSS keyword was later incorporated into FAP (FORTRAN Assembly Program),
IBM 's standard assembler for its 709 and 7090/94 computers. It defined a label and reserved uninitialized space for a given number of words.In embedded software, the BSS segment is mapped into "Uninitialized RAM" that in fact is initialized to zero by the C runtime before
main ()
is entered. Additionally, some compilers/architectures support the SBSS segment for "small data". Typically these data items can be accessed by leaner code using instructions that can only access a certain range of addresses.See also
*
Linker
*Data segment
*Code segment
*Uninitialized variable External links
* " [http://www.faqs.org/faqs/unix-faq/faq/part1/section-3.html Unix FAQ section 1.3] ", where
Dennis Ritchie explains the origins of the term "bss"
Wikimedia Foundation. 2010.