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.[1]

Alcune architetture presentano il segmento tbss che ha scopi analoghi per la programmazione a thread.[2]

Origini

modifica
Questa figura mostra il layout tipico della memoria di un semplice programma con il testo, i vari dati e le sezioni stack e heap.

Storicamente, BSS (da Block Started by Symbol) è una pseudo-operazione dell'assemblerUA-SAP (United Aircraft Symbolic Assembly Program), sviluppato a metà degli anni '50 per l'IBM 704 da Roy Nutt, Walter Ramshaw ed altri collaboratori presso la United Aircraft Corporation.

La parola chiave BSS è stata successivamente incorporata nel FORTRAN Assembly Program[3] (FAP) e nel Macro Assembly Program[4] (MAP), gli assembler standard di IBM per i suoi computer 709 e 7090/94 . BSS definiva un'etichetta e riservava un blocco di spazio non inizializzato per un dato numero di parole.[5] In questo caso .BSS fungeva da scorciatoia dal riservare un numero di allocazioni più piccole 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. [6]

Note

modifica
  1. ^ (EN) Unix - Frequently Asked Questions (1/7), su faqs.org.
    «Actually the acronym (in the sense we took it up; it may have other credible etymologies) is "Block Started by Symbol." It was a pseudo-op in FAP (Fortran Assembly [-er?] Program), an assembler for the IBM 704-709-7090-7094 machines.»
  2. ^ (EN) Special Sections, su Linux Standard Base PDA Specification, refspecs.linuxbase.org.
  3. ^ FORTRAN ASSEMBLY PROGRAM (FAP) for the IBM 709/7090 (PDF), IBM, 1961, p. 30.
  4. ^ IBM 7090/7094 IBSYS Operating System Version 13 Macro Assembly Program (MAP) Language (PDF), IBM, 1963.
  5. ^ Timar, Unix - Frequently Asked Questions (1/7), su faqs.org, 1996.
  6. ^ Free Software Foundation, Inc., 38.9. Directives, su linux.web.cern.ch. URL consultato il 6 febbraio 2026 (archiviato dall'url originale il 19 marzo 2014).

Bibliografia

modifica

Voci correlate

modifica
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica

📚 Artikel Terkait di Wikipedia

Apple II

linguaggio macchina, perché all'epoca non era ancora disponibile un assembler per il computer: le poche note distribuite da Apple erano riportate sul manuale

Operatori in C e C++

Jun. 2024, https://www.britannica.com/technology/C-computer-language; Microsoft C++, C, and Assembler documentation. Portale Informatica: accedi alle voci

Zilog Z80

maggior parte dal CP/M e dal miscuglio dei primi computer 8080 e Z80.» ^ Commodore 128 assembly programming - Z80 CPU, su commodore64.se. URL consultato l'11

Cronologia dei linguaggi di programmazione

28 2008 (archiviato dall'url originale il 1º maggio 2007). ^ (EN) Red Programming Language, su red-lang.org. URL consultato il 17 dicembre 2016. ^ (EN)

Sistema embedded

altri software, i progettisti di sistemi embedded utilizzano compilatori, assembler e debugger per sviluppare i software relativi al sistema. Tuttavia possono

Enterprise (computer)

Utilities (Boxsoft Programs) Screenplay 1, 2, 3 (Boxsoft Programs) Simon Assembler/Monitor SOEV - Stereo Sound Envelope Generator (Boxsoft Programs) Copy

Lista di sistemi operativi

Google [1] NNIX - un sistema operativo che esegue programmi in linguaggio assembler MMIX, viene utilizzato per spiegare gli algoritmi in L'arte della programmazione

Compact Computer 40

ISSN 3034-8676 (WC · ACNP). (EN) David Thomas, Learn BASIC: A Guide to Programming the TI Compact Computer 40, McGraw-Hill, 1983, ISBN 0-07-064257-5. Altri progetti