We learned that a fundamental side effect of the virtual memory architecture that modern OSes (such as Linux) use is that a process can only access memory within its own virtual address space (VAS); and that too only the valid mapped memory.
Practically speaking, this implies a process cannot read from or write into the VAS of any other process. Yes; but then, how do you communicate with other processes? This scenario is critical in many multi-process applications.
The short answer: IPC mechanisms. The Linux OS has several; here, we make use of one of them: signaling.