title: load time relocation and virtual memory
body: <p>I am wondering what load-time relocation actually means on a system with virtual memory support.I was thinking that in a system with virtual memory every executable will have addresses starting from zero and at run-time the addresses will be translated into physical addresses using page tables.Therefore the executable can be loaded anywhere in memory without the need of any relocation. However this article on shared libraries  mentions that linker specifies an address in the executable where the executable is to be loaded (Entry-point address). </p>
  
  <p><a href="http://eli.thegreenplace.net/2011/08/25/load-time-relocation-of-shared-libraries/" rel="noreferrer">http://eli.thegreenplace.net/2011/08/25/load-time-relocation-of-shared-libraries/</a></p>
  
  <p>Also there are many articles on dynamic linking which talk about absolute addresses.
  Is my understanding wrong ?</p>