title: Function of shared library is loaded at different physical addresses for different processes
body: <p>I get physical addresses of function "printf" in libc.so in two programs, and two physical addresses are different. And I read two different physical address, the content are almost the same. This means function "printf" has two copies in memory?</p>
  
  <p>Details:</p>
  
  <ol>
  <li><p>My os is 32-bit linux.</p></li>
  <li><p>Physical address is calculated by read "/proc/self/pagemap".</p></li>
  <li><p>Physical address reading is implemented with fmem module, whose source code is at git@github.com:NateBrune/fmem.git</p></li>
  </ol>