[I've heard a variety of explanations but here's the one I belive:
Back in the 1950s, the IBM 704 and its descendants up through the 7094
had an odd addressing scheme. Although most arithmetic was
sign-magnitude, the index registers were two's complement and the
contents of the index register was subtracted rather than added to the
base address in an instruction to get the effective address. Hence a
lot of programs, including everything written in Fortran, stored their
arrays backward. The FAP assembler had two pseudo-ops to reserve
storage, BSS for Block Started by Symbol and BES for Block Ended by
Symbol. The backward addressing has long since disappeared but BSS
lives on. This explanation is credited to Ritchie in the Unix FAQ
that's floating around the net. Alternative explanations welcome, but
if they don't predate 1960 and have documentation, they're not
persuasive. -John]