title: how does linux kernel implement shared memory between 2 processes
body: <p>How does the Linux kernel implement the <strong>shared memory</strong> mechanism between different processes?</p>
  
  <p>To elaborate further, each <strong>process</strong> has its own <strong>address space</strong>. For example, an address of 0x1000 in Process A is a different location when compared to an address of 0x1000 in Process B.</p>
  
  <p>So how does the kernel ensure that a piece of memory is shared between different process, having different address spaces?</p>
  
  <p>Thanks in advance.</p>