Il segmento bss (indicato come .bss o bss) è una porzione di un programma che contiene variabili statiche che sono dichiarate ma non esplicitamente inizializzate. In alcuni sistemi operativi tale sezione viene inizializzata a zero quando il programma viene caricato in memoria.
Il nome della sezione è un acronimo di "block started by symbol" e deriva da un opcode presente nell'assembler per IBM 704.
Alcune architetture presentano il segmento tbss che ha scopi analoghi per la programmazione a thread.
Origini
Storicamente, BSS (da Block Started by Symbol) è una pseudo-operazione in UA-SAP (United Aircraft Symbolic Assembly Program), l'assembler sviluppato a metà degli anni 1950 per l'IBM 704 da Roy Nutt, Walter Ramshaw e altri presso la United Aircraft Corporation.
La parola chiave BSS è stata successivamente incorporata nel FORTRAN Assembly Program (FAP) e nel Macro Assembly Program (MAP), gli assembler standard di IBM per i suoi computer 709 e 7090/94.
Essa definiva un'etichetta (ovvero un simbolo) e riservava un blocco di spazio non inizializzato per un dato numero di parole. In questa situazione, BSS fungeva da scorciatoia al posto di riservare individualmente un numero di posizioni dati più piccole e separate. Alcuni assembler supportano una direttiva complementare o alternativa, BES (da Block Ended by Symbol), in cui il simbolo specificato corrisponde alla fine del blocco riservato.
Note
Bibliografia
Voci correlate Linking Variabile non inizializzata Compilazione Loader
Categoria:Compilatori