title: Where is linux process descriptor stored and what can access it?
body: <p>I read that the process descriptor in Linux (on x86) is stored in the kernel data segment but at an address below PAGE_OFFSET (i.e. in user address space). Since the kernel data segment and user data segments both cover the full 4GB address space, then presumably it would be possible to access the process descriptor through the user data segment, if its address was known to user code. Is this correct, and if so, is it not a security hole?</p>
  
  <p>A related question: there was an assertion that the linear address of the process descriptor can serve as a unique process ID. However, as linear addresses get translated using the page table, and the page table is different for every process for addresses below PAGE_OFFSET, then couldn't two processes store their process descriptors at the same linear address?</p>