On a more personal note, it was fun to reminisce about code that I hadn't been in in a long time -- I had actually forgotten how much surgery I did on the message queue code back in 1997[1], and I had the opportunity to chuckle at some of the comments made by my 23-year-old self.[2] I also marveled at how little this software has changed in the nearly two decades since; I've written about this before[3], but it's always inspiring to be reminded that we in software have the luxury of creating useful things that do not wear out -- may we only have more writing like Ryan's to learn about them!
[1] https://github.com/illumos/illumos-gate/blob/a9e987e05eeb8cc...
[2] https://github.com/illumos/illumos-gate/blob/a9e987e05eeb8cc...
[3] http://dtrace.org/blogs/bmc/2004/08/28/the-economics-of-soft...
There are two processes mmap'ing the same memory, and operating on it with a mutex. It seems like the one side has to perform elaborate checks to make sure the other side is obeying the protocol. Or am I mistaken?
The UNIX/Linux world has never gotten message passing right. It's inevitably built on top of files, sockets, or shared memory, which adds complexity and reduces speed.