- File IO
- Signals, e.g., SIGTERM, SIGSTOP
- Socket - a form of file descriptor
- Uses socket descriptor as handle. Underlying it associates with IP + port combo of LOCAL node
- a concept used mostly in the transport layer
- Unix domain sockets. similar to the internet socket, but all communications happens with the kernel. Referred to by the process as inode
- MQ in the OS
- Pipe
- parent process creates the anonymous pipe, and let the child process inherit it
- appearts to be normal FD, but no seek capability
- In Unix, processes of the same pipe are started at the same time. The buffering ensures that no data is lost
- Named pipe. appears as a file. Processes use it instead of standard streams
- Shared memory, e.g., mmap file, note it is different from sendfile
- Pros: without shared memory, message,pipe,and files have to copy from user space’s buffer to kernel space’s IPC buffer, and again from kernel to user space
- In most operating systems the memory region mapped actually is the kernel’s page cache (file cache), meaning that no copies need to be created in user space
- In the IPC context, normally it is non-persist file, i.e., when the last process is finished the data is lost
- The memory-mapped approach has its cost in minor page faults—when a block of data is loaded in page cache, but is not yet mapped into the process’s virtual memory space
- Aside from the popular IPC usage, most common usage is the process loader