Lessico IT › Programmazione › Segmento BSS

Segmento BSS

Programmazione Svenska → Aggiornato: 2026-11-03

La sezione di memoria per le variabili globali e statiche che partono da zero — occupa RAM ma nessuno spazio nel file del programma.

Un int buffer[4096]; globale privo di inizializzatore non richiede di essere memorizzato come 16 KB di zeri nell'eseguibile. Il compilatore lo colloca in .bss e il file si limita a registrare la dimensione della sezione. Le variabili con valori iniziali diversi da zero vanno in .data, il cui contenuto deve invece essere effettivamente distribuito.

Su un microcontrollore non c'è alcun sistema operativo a azzerare la memoria. Il codice di avvio percorre l'intervallo compreso tra i simboli definiti nel linker script e scrive zeri prima di chiamare main(). Dimenticarlo significa partire con la spazzatura che si trovava in RAM — un bug che ama manifestarsi solo dopo un soft reset. Il nome è un reperto degli anni Cinquanta: Block Started by Symbol, una pseudo-istruzione di un assembler per IBM 704.

← Torna al lessico