1. 35

Doors are a form of IPC that were created for Solaris. They allow a program to call a function in another program and are, or at least were, much faster than other forms of IPC.

I am submitting the Wikipedia entry because I could not find a better one. The references in the page are mostly dead or not very helpful.

Based purely on reading about Door, I’d love to see them be implemented in more OSs. I think they could make IPC that isn’t through sockets and HTTP a valid alternative for many developers.

  1.  

  2. 6

    I am a fan of doors, but I do note that many recent language runtimes (e.g. Node, and probably Go) make it relatively difficult or impossible to get the kind of control over raw OS threads required to use doors properly. It’s much easier if your server, in particular, is written in something like C where the full thread model is available to you.

    1. 2

      Wait, but is this feature available on recent Linux kernels? The article mentions “The doors facility has been ported to Linux, but is only available for version 2.4.18.[2]”

      1. 4

        never committed to mainline.

        1. 4

          Linux is not my wheelhouse. I can, however, promise that we still have doors in illumos!

      2. 4

        I remember reading about this in the Spring Papers from Sun’s research labs. It took some digging, but I found a link in the Wayback Machine.

        The Spring Nucleus: A Microkernel for Objects

        1. 3

          I like this one better. It’s really clean compared to an integration with a monolothic OS built for different usage. Too bad Oracle owns the IP. Moving on.

        2. 2

          Couldn’t this be implemented entirely in user space on top of unix domain sockets?

          1. 4

            Yeah, of course. It’s “doable”/emulatable with any IPC mechanism, but my guess is that a first class kernel implementation provides much more efficient interactions since it’s happening without extra context switches.

          2. 1

            Huh… I wonder if “door” games from the dos/bbs era get their name from people who worked on old Solaris systems.

            1. 1

              The timeline for use of the term would seem to run the other way around, with the BBS usage coming first.