It is possible in most languages (and in particular in Fortran and C/C++) to
have uninitialised global data, for example, a common block in Fortran not
initialised with a BLOCK DATA subprogram. Under normal linking, these are
accumulated into the .bss section in the executable (BSS is an old IBM
term meaning Block Started by Symbol). Although this section does not
contribute to the size of the executable it does contribute to the size of the
loaded image. The consequence of this is that the system must have the
resources available to meet the size of the .bss section. This is
unfortunate, since many applications use very large global arrays, only some of
which is ever used.
If the SLINK command vc or virtualcommon is used at some stage
during the link process, the ".bss" section is removed from the executable and
the global data is allocated to virtual memory at runtime. The result is that
pages of memory (4Kb each) are allocated from the system on demand.