Warum ist das BSS-Segment standardmäßig "16"?

Soweit mir bekannt ist, lautet die Segmentierung für das c-Programm:

        High address
|---------------------------|
|env/cmd line args vars     |
|---------------------------|
|      stack segment        |--> uninitialized auto vars
|---------------------------|
|---------------------------|
|---------------------------|
|      heap segment         |--> dynamic allocated memory
|---------------------------|
|      BSS segment          |--> uninitialized static/global vars
|---------------------------|
|      data segment         |--> initialized static/global vars
|---------------------------|
|      text segment         |--> initialized auto vars/exec instructions
|---------------------------|
        Low address

Auf meinem RHEL 5.4 64-Bit-Computer für das unter c angegebene Programm

#include <stdio.h>
int main()
{
}

wann mache ich:

# size a.out
   text    data     bss     dec     hex filename
   1259     540      16    1815     717 a.out

Ich kann nicht verstehen, warum ist

bss = 16

Wie deklariere / initialisiere ich keine globalen / statischen Variablen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage