First, assume that a user process wishes to invoke a particular target system function.
For the system call approach, the user process uses the trap instruction.
Meanwhile, the user process waits for the result of the service request with a message receive operation.
Other user processes are able to listen on higher numbered ports.
Such communication, both locally within the system and across a network was all the kernel of the system supported directly for user processes.
A large hospital running VistA can have thousands of concurrently running user processes.
No user process could access the memory of any other process.
Calls from user processes into the kernel are regulated by requiring them to use one of the above-described system call methods.
File system, device drivers and other services are implemented like user processes.
For some drivers (e.g., disk and network) recovery is transparent to user processes.