[net.unix-wizards] where does bss come from?

eric@burdvax.UUCP (Eric Marshall) (08/29/86)

	Could someone please tell me where the name BSS comes from.
The comments in /usr/include/a.out.h says that it is uninitialized
data. What's the connection?


Thanks in advance.

Eric Marshall
System Development Corporation, a Burroughs Company
P.O. Box 517
Paoli, PA. 19301
(215) 648-7223

USENET: sdcrdcf!burdvax!eric
        {sjuvax,ihnp4,akgua,cadre}psuvax1!burdvax!eric
ARPANET: PAYTON@BBNG

dchen@oliveb.UUCP (Dennis Chen) (08/31/86)

In article <2627@burdvax.UUCP> eric@burdvax.UUCP (Eric Marshall) writes:
>
>	Could someone please tell me where the name BSS comes from.
>The comments in /usr/include/a.out.h says that it is uninitialized
>data. What's the connection?
>

The name BSS comes from an assembly pseudo-operator on the IBM 7090
machine, which stands for "Block Started by Symbol".


Dennis Chen @ Olivetti ATC
{allegra, fortune, glacier, hplabs, idi, ihnp4, sun}!oliveb!dchen

roy@phri.UUCP (Roy Smith) (08/31/86)

In article <2627@burdvax.UUCP> eric@burdvax.UUCP (Eric Marshall) writes:
> 	Could someone please tell me where the name BSS comes from.
> The comments in /usr/include/a.out.h says that it is uninitialized
> data. What's the connection?

	I believe BSS stands for Block Started by Symbol.  An external
declaration such as "int iarray [100];" will typically get compiled into
something like the following meta-assembler code:

	.bss			; start assembling into bss segment
iarray:	.word 100		; allocate 100 words of space
-- 
Roy Smith, {allegra,philabs}!phri!roy
System Administrator, Public Health Research Institute
455 First Avenue, New York, NY 10016

bobr@zeus.UUCP (Robert Reed) (09/01/86)

To my recollection, BSS is an old mnemonic from early IBM days, standing for
Block Started by Symbol, and related to BES, Block Ended by Symbol.

levy@ttrdc.UUCP (Daniel R. Levy) (09/02/86)

basic static storage
-- 
 -------------------------------    Disclaimer:  The views contained herein are
|       dan levy | yvel nad      |  my own and are not at all those of my em-
|         an engihacker @        |  ployer or the administrator of any computer
| at&t computer systems division |  upon which I may hack.
|        skokie, illinois        |
 --------------------------------   Path: ..!{akgua,homxb,ihnp4,ltuxa,mvuxa,
	   go for it!  			allegra,ulysses,vax135}!ttrdc!levy

rep@genrad.UUCP (Pete Peterson) (09/02/86)

In article <2627@burdvax.UUCP> eric@burdvax.UUCP (Eric Marshall) writes:
>
>	Could someone please tell me where the name BSS comes from.
>The comments in /usr/include/a.out.h says that it is uninitialized
>data. What's the connection?
>
This first place I saw "BSS" was in the FAP assembler for IBM 704,709,
etc.  (Vacuum tube computers at the end of the 1950's).  It was a
pseudo-instruction meaning "block starting with symbol" which assigned
a label to the value of the current-location-counter then incremented
the current-location-counter by the supplied argument, e.g.  FUBAR  BSS
500 left an uninitialized block 500 words long whose and assigned FUBAR
to the first location of the block.  There was also a BES in case you
wanted your label at the end of the block instead of the beginning.

	pete peterson

bob@Iago.Caltech.EDU (Robert S. Logan) (09/02/86)

The first time I saw bss was in the IBM 7090/7094 macro assembler:
BSS (block started by symbol) reserved a block of consecutive words
and (optionaly) defined a symbol pointing to the first word. There
was also a BES (block ended by symbol) op. I don't have a manual,
but I suspect there was a BSS in the SHARE assembler for the 709,
one of the first real assemblers.
--
Robert S. Logan
Campus Computing Organization, 158-79 Caltech, Pasadena, CA, 91125
818-356-4631
rslogan@caltech.bitnet
bob%juliet@cit-hamlet.caltech.edu
...!ucbvax!bob%juliet@cit-hamlet.caltech.edu

The above opinions are licensed (not sold)...

jrw@hropus.UUCP (Jim Webb) (09/03/86)

> 
> 	Could someone please tell me where the name BSS comes from.
> The comments in /usr/include/a.out.h says that it is uninitialized
> data. What's the connection?
> 

It was, until divestiture, a Bell System Secret :-)

Actually, though, it is the mnemonic from some arcane assembler that
dealt with data segments and/or symbols.
-- 
Jim Webb             "Out of phase--get help"         ihnp4!houxm!hropus!jrw

friesen@psivax.UUCP (Stanley Friesen) (09/03/86)

In article <513@zeus.UUCP> bobr@zeus.UUCP (Robert Reed) writes:
>To my recollection, BSS is an old mnemonic from early IBM days, standing for
>Block Started by Symbol, and related to BES, Block Ended by Symbol.

	Since this stuff is being posted, I will add my two cents
worth. These assembly pseudo-ops were/are not restricted to old IBM
systems, Honeywell/GE mainframes also use them. At least they used to,
and since they are still maintaining upward compatiblity I cannot
imagine them changing the assembler a great deal.
---

				Sarima (Stanley Friesen)

UUCP: {ttidca|ihnp4|sdcrdcf|quad1|nrcvax|bellcore|logico}!psivax!friesen
ARPA: ??

abs@nbc1.UUCP (09/03/86)

> In article <2627@burdvax.UUCP> eric@burdvax.UUCP (Eric Marshall) writes:
> >
> >	Could someone please tell me where the name BSS comes from.
> >The comments in /usr/include/a.out.h says that it is uninitialized
> >data. What's the connection?
> >
> 
> The name BSS comes from an assembly pseudo-operator on the IBM 7090
> machine, which stands for "Block Started by Symbol".
> 
> 
> Dennis Chen @ Olivetti ATC
> {allegra, fortune, glacier, hplabs, idi, ihnp4, sun}!oliveb!dchen

I always thought it meant "blank storage space".
-- 
Andrew Siegel, N2CN		NBC Computer Imaging, New York, NY
philabs!nbc1!abs		(212)664-5776

joey@tessi.UUCP (Joe Pruett) (09/05/86)

Here's my two cents worth...

I remember BSS standing for "Block Save Storage".  When you have
an unitialized global variable, it is "added" to the BSS area.
This area is actually only a number in the a.out header which
is the amount of memory to be allocated and zeroed out when the
program starts.  No disk space is allocated in the executable file
for this area, since it is all zeroes, therefore the term
"Block Save Storage".

	-joey

parris@itcatl.UUCP (Parris Hughes) (09/26/86)

In article <161@nbc1.UUCP>, abs@nbc1.UUCP writes:
> > In article <2627@burdvax.UUCP> eric@burdvax.UUCP (Eric Marshall) writes:
> > >	Could someone please tell me where the name BSS comes from.
> > >The comments in /usr/include/a.out.h says that it is uninitialized
> > >data. What's the connection?
> > >
> > The name BSS comes from an assembly pseudo-operator on the IBM 7090
> > machine, which stands for "Block Started by Symbol".
> > Dennis Chen @ Olivetti ATC
> > {allegra, fortune, glacier, hplabs, idi, ihnp4, sun}!oliveb!dchen
> 
> I always thought it meant "blank storage space".
> Andrew Siegel, N2CN		NBC Computer Imaging, New York, NY
> philabs!nbc1!abs		(212)664-5776

DAP-16 Assembly on the OLD Honeywell 1648A used the same pseudo-op, and I
believe it was "block storage space"

parris			....gatech!itcatl!parris

jra@jc3b21.UUCP (Jay R. Ashworth) (10/09/86)

In article <159@itcatl.UUCP>, parris@itcatl.UUCP writes:
> In article <161@nbc1.UUCP>, abs@nbc1.UUCP writes:
> > > In article <2627@burdvax.UUCP> eric@burdvax.UUCP (Eric Marshall) writes:
> > > >	Could someone please tell me where the name BSS comes from.
> > > >The comments in /usr/include/a.out.h says that it is uninitialized
> > > >data. What's the connection?
> > > >
> > > The name BSS comes from an assembly pseudo-operator on the IBM 7090
> > > machine, which stands for "Block Started by Symbol".
> > > Dennis Chen @ Olivetti ATC
> > > {allegra, fortune, glacier, hplabs, idi, ihnp4, sun}!oliveb!dchen
> > 
> > I always thought it meant "blank storage space".
> > Andrew Siegel, N2CN		NBC Computer Imaging, New York, NY
> > philabs!nbc1!abs		(212)664-5776
> 
> DAP-16 Assembly on the OLD Honeywell 1648A used the same pseudo-op, and I
> believe it was "block storage space"
> 
> parris			....gatech!itcatl!parris

Ok, guys, one more for the pile.  They always told *me* that bss stood
for basic stack segment.  I *thinKk* (you do?:-) that I got that out of an
old AT&T manual (V7?) Oh, well...
-- jra
-- 
Jay R. Ashworth    	Hi Technology Consulting   	jra@jc3b22.UUCP  
Programmer/Analyst	10974 111th St. N.		(813) 392-2095
Boy Genius (:-)		Seminole FL 33544		(So they tell me)

Disclaimer: The opinions, if any, expressed in this article, if any, 
	    are not those of my employer (I am self-employed), if any,
	    or anybody else, and probably resulted from Coca-Cola (Coca-Cola 
	    is a reg. tm of Coca-Cola USA) dripping down my keyboard.

larry@jc3b21.UUCP (10/09/86)

In article <473@jc3b21.UUCP>, jra@jc3b21.UUCP (Jay R. Ashworth) writes:
> In article <159@itcatl.UUCP>, parris@itcatl.UUCP writes:
> > In article <161@nbc1.UUCP>, abs@nbc1.UUCP writes:
> > > > In article <2627@burdvax.UUCP> eric@burdvax.UUCP (Eric Marshall) writes:
> > > > >	Could someone please tell me where the name BSS comes from.
> > > > >The comments in /usr/include/a.out.h says that it is uninitialized
> > > > >data. What's the connection?

Just to confuse the issue.  The same pseudo-op was (is) used on the CDC
6000, 7000 (, and I believe 3000) series computers.  In THAT environment
it stood for 'Block Storage Start' (no, I don't know why 'start' instead
of 'size' ...)

-----Lawrence F. Strickland (larry@jc3b21)     ---------------------------
     Dept. of Engineering Technology           + Cthulhu                 +
     St. Petersburg Jr. College                +      R`lyeh             +
     P.O. Box 13489                            +           wgah`nagl     +
     St. Petersburg, FL 33733                  +                 fh`tagn +
     Phone:  +1 813 341 4705                   ---------------------------

     UUCP:  ...akgua!akguc!codas!peora!ucf-cs!usfvax2!jc3b21!larry

paul@whuts.UUCP (HO) (10/10/86)

> > > > The name BSS comes from an assembly pseudo-operator on the IBM 7090
> > > > machine, which stands for "Block Started by Symbol".
> > > 
> > > I always thought it meant "blank storage space".
> > 
> > DAP-16 Assembly on the OLD Honeywell 1648A used the same pseudo-op, and I
> > believe it was "block storage space"
> > 
> Ok, guys, one more for the pile.  They always told *me* that bss stood
> for basic stack segment.  I *thinKk* (you do?:-) that I got that out of an
> old AT&T manual (V7?) Oh, well...

According to Maurice Bach's book (The Design of the Unix Operating
System), bss is block started by symbol.

	ihunp!whuts!paul

mwm@hslrswi.UUCP (Mike McGann) (10/27/86)

BSS goes back further than the CDC 6000 series. We used it on the CDC 1600
and 160 series. Actually it means 'Block Start Symbol' the label of the
statement refering to the first byte of a block of un-initialized storage.
Correspondingly there was a BES or 'Block Ending Symbol' where the label
refered to the last byte of the un-initialized block of storage.

Mike McGann
...mcvax!cernvax!hslrswi!mwm

adams@omssw2.UUCP (Robert Adams) (10/30/86)

> BSS goes back further than the CDC 6000 series. We used it on the CDC 1600
> and 160 series. Actually it means 'Block Start Symbol' the label of the
> statement refering to the first byte of a block of un-initialized storage.
> Correspondingly there was a BES or 'Block Ending Symbol' where the label
> refered to the last byte of the un-initialized block of storage.
> 
> Mike McGann
> ...mcvax!cernvax!hslrswi!mwm

My information was that the BSS/BES was developed for the IBM
70x0 series (7090 or "Stretch" series).  The "Block Ended by Symbol"
was required because the instruction set subtracted the index
registers (saved the hardware guys a level of inverters or something).
This was also the machine that set the Fortran "standard" of
backwards array calculation because of the way subscripts were
best calculated and because of the subtracting of indexes.

The "Stretch" series was designed in the late 50s and early 60s
and was a line of (then) big computers that IBM dropped when it
put all of its eggs in the 360 basket.

	-- Robert Adams
	...!{decvax,ihnp4,hplabs,cbosgd}!tektronix!reed!omssw2!adams