.bss

Això mostra la disposició típica de la memòria de programa d'un ordinador simple amb el text, diverses dades i les seccions de pila (stack) i pila (heap).

A la programació d'ordinadors, el símbol d'inici de bloc (abreujat a .bss o bss) és la part d'un fitxer objecte, executable o codi de llenguatge ensamblador que conté variables assignades estàticament que es declaren però encara no se'ls ha assignat un valor. Sovint es coneix com a "secció bss" o "segment bss".

Normalment només la longitud de la secció bss, però cap dada, s'emmagatzema al fitxer objecte. El carregador de programes assigna memòria per a la secció bss quan carrega el programa. Si col·loqueu variables sense valor a la secció .bss, en comptes de la secció .data o secció rodata que requereixen dades de valor inicial, es redueix la mida del fitxer objecte.

En algunes plataformes, part o tota la secció bss s'inicialitza a zeros. Els sistemes semblants a Unix i Windows inicialitzen la secció bss a zero, permetent que les variables C i C++ assignades estàticament inicialitzades a valors representats amb tots els bits zero es posin al segment bss. Els sistemes operatius poden utilitzar una tècnica anomenada zero-fill-on-demand per implementar de manera eficient el segment bss.[1] Al programari incrustat, el segment bss s'assigna a la memòria que el sistema de temps d'execució C inicialitza a zero abans que s'introdueixi main(). Alguns sistemes C en temps d'execució poden permetre que part del segment bss no s'inicialitzi; Les variables C s'han de col·locar explícitament en aquesta part del segment bss.[2]

En algunes arquitectures d'ordinadors, la interfície binària de l'aplicació també admet un segment sbss per a "dades petites". Normalment, es pot accedir a aquests elements de dades mitjançant instruccions més breus que només poden accedir a un determinat rang d'adreces. Les arquitectures que admeten l'emmagatzematge local del fil poden utilitzar una secció tbss per a dades estàtiques no inicialitzades marcades com a fil local.[3]

  1. McKusick, Marshall Kirk. «A New Virtual Memory Implementation for Berkeley UNIX» (en anglès). University of California, Berkeley.
  2. «Memory Sections» (en anglès). AVR Libc Home page.
  3. «ELF Special Sections» (en anglès). Linux Standard Base PDA Specification 3.0RC1.

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Nelliwinne