1

I'm just taking a course of operating systems. In Linux the virtual address space is like

Linux Virtual Address Space

My question is what has been stored from 0x0 to 0x08048000? I've known about that there is a random offset for user's stack and heap, but is there any significance to set a constant offset for .text segment?

cadaniluk
  • 15,027
  • 2
  • 39
  • 67
  • Related: http://stackoverflow.com/questions/2966426/why-do-virtual-memory-addresses-for-linux-binaries-start-at-0x8048000 – Locoluis May 05 '17 at 15:50
  • 2
    Possible duplicate of [Why do virtual memory addresses for linux binaries start at 0x8048000?](http://stackoverflow.com/questions/2966426/why-do-virtual-memory-addresses-for-linux-binaries-start-at-0x8048000), http://stackoverflow.com/questions/2187484/why-is-the-elf-execution-entry-point-virtual-address-of-the-form-0x80xxxxx-and-n – Cody Gray - on strike May 05 '17 at 17:56

1 Answers1

1

Keep in mind that what you are looking at is theoretical layout of a process logical address space. With the exception of the system/user space break everything there is illustrative and can move.

As to what goes on from logical address zero, the answer is nothing. Most operating systems do not map the low end of the process address space for error checking purposes.

You probably can explicitly map it if you want on Linux, although I have never tried.

user3344003
  • 20,574
  • 3
  • 26
  • 62