Differences between version 8 and previous revision of MemoryMap.
Other diffs: Previous Major Revision, Previous Author, or view the Annotated Edit History
Newer page: | version 8 | Last edited on Sunday, November 14, 2004 12:20:47 pm | by AristotlePagaltzis | Revert |
Older page: | version 7 | Last edited on Tuesday, March 9, 2004 9:58:01 pm | by StuartYeates | Revert |
@@ -1,5 +1,5 @@
-The [Linux] VirtualMemory Map (as seen by a [
UserSpace]
program)
+The [Linux] VirtualMemory Map (as seen by a UserSpace program)
| __Starts at__ | __Contains__
| ffffffff |< End of the universe
| ffffe000 |< vsyscall table (new in 2.5.x)
@@ -7,12 +7,14 @@
| bfffffff |< Process stack (grows down)
| bffff000 |< Process heap (grows up)
| 40000000 |< Libraries
| zzzzzzzz |< Unused
-| yyyyyyyy |< __.[
bss|BSS]
__ segment
, uninitialised program data
+| yyyyyyyy |< __.bss__, uninitialised program data
| xxxxxxxx |< __.data__ segment, initialised program data
| 08048000 |< __.text__ segment, program code
| 00000000 |< Unmapped to trap [NULL] pointers
+
+"BSS" means __b__lock __s__tarted by __s__ymbol and is a segment of uninitialised that is only stored in the BinaryExecutable image as a length and offset, since it would otherwise waste space. The "text" segment on the other hand contains ''initialized'' global variables and ''is'' stored in the BinaryExecutable.
!!Practical examples
!Library-mapped memory (using ldd(1))
$ ldd /bin/ls