|
Authored by: greed on Friday, May 11 2012 @ 12:47 AM EDT |
In UNIX-ese, we call that the BSS section. (Maybe others; it could be
compiler-speak not UNIX-speak. But I've spent all my working life and more
dealing with compilers on UNIX on way or another....)
% size /usr/bin/ld
text data bss dec hex filename
583251 5720 3608 592579 90ac3 /usr/bin/ld
"text" is the actual executable bytes, it's what the computer can
read--not text for lowly humans. Data is initialized data--strings, aggregates,
the lot. Everything except bulk-zero.
Bulk zero initialization is handled by recording "I want these many
zeros". Then, when the program runs, the operating system
"arranges" to have that much space allocated to the program and filled
with zero.
The arrangement varies; some OSes just promise that every newly-allocated memory
page will be zero-filled. Then the virtual memory allocator gets to deal with
zero-filling, whether or not they are BSS. That's the most common way
today--just about everything has virtual memory now--but like anything on
computers, as long as the result seems to be "the variables are initialized
with zero" it doesn't matter how you got there.
[ Reply to This | Parent | # ]
|
|
|
|
|