IT-lexikon › Programmering › BSS-segment

BSS-segment

Programmering In English → Uppdaterad: 2026-11-03

Minnessektionen för globala och statiska variabler som börjar som noll — den tar plats i RAM men inte i programfilen.

En global int buffer[4096]; utan startvärde behöver inte lagras som 16 KB nollor i den körbara filen. Kompilatorn lägger den i .bss, och filen anger bara hur stor sektionen är. Variabler med andra startvärden hamnar i .data, vars innehåll faktiskt måste följa med.

På en mikrokontroller finns inget operativsystem som nollar minnet åt en. Startkoden går igenom intervallet mellan symbolerna som länkskriptet definierat och skriver nollor innan main() anropas. Glöms det bort startar programmet med det skräp som råkade ligga i RAM — ett fel som gärna bara syns efter en mjuk återställning. Namnet är ett arv från 1950-talet: Block Started by Symbol, en pseudoinstruktion i en assembler för IBM 704.

← Tillbaka till lexikonet