So I've started digging around in the Linux kernel for ideas about how to implement some ideas I have for a game. I looked up what IPC stands for (InterProcess Communication) and I found the below quote:
"The Linux kernel provides the following IPC mechanisms: Signals, Anonymous Pipes, Named Pipes or FIFOs, SysV Message Queues, POSIX Message Queues, SysV Shared memory, POSIX Shared memory, SysV semaphores, POSIX semaphores, FUTEX locks, File-backed and anonymous shared memory using mmap, UNIX Domain Sockets, Netlink Sockets, Network Sockets, Inotify mechanisms, FUSE subsystem, D-Bus subsystem. For Most of my needs I use sockets."
Two things blow me away. First, that there are so many different IPC methods supported in the Linux kernel. Second, I had no idea that so many mechanisms were supported. The SysV stuff is rather old but clearly still useful.
I don't know what even a quarter of those mechanisms do or how they work but it's kind of exciting to go find out.