• 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