A process does not have access to kernel address space. To a process the upper 2GB are just inaccessible for a reason unknown to it.
Memory mappings go into the user-mode portion of the address space.
Thanks to virtual memory hardware, physical pages can be present in multiple processes.
Private memory is not shared although all of it sits in the user-mode address range. Memory mappings are treated specially by the kernel. it instructs the hardware to make the physical pages available to multiple processes. Private memory is really a special case where the pages just happen to be mapped into one process only. The hardware doesn't care. In fact, you can have the same page mapped multiple times into the same process if you want.