<story><title>&quot;Doors&quot; in Solaris: Lightweight RPC Using File Descriptors (1996)</title><url>http://www.kohala.com/start/papers.others/doors.html</url></story><parent_chain></parent_chain><comment><author>monocasa</author><text>Writing a top level comment here to hopefully address some of the misconceptions present across this comment section.&lt;p&gt;Doors at the end of the day aren&amp;#x27;t message passing based RPC.  There is no door_recv(2) syscall or equivalent nor any way for a thread pool in the callee to wait for requests.&lt;p&gt;Doors at the end of the day are a control transfer primitive.  In a very real sense the calling thread is simply transferred to the callee&amp;#x27;s address space and continues execution there until a door_return(2) syscall transfers it back into the caller address_space.&lt;p&gt;It truly is a &amp;#x27;door&amp;#x27; into another address space.&lt;p&gt;This is most similar to some of the CPU control transfer primitives.  It&amp;#x27;s most like task gate style constructs like seen on 286&amp;#x2F;i432&amp;#x2F;mill CPUs.  Arguably it&amp;#x27;s kind of like the system call instruction itself too, transferring execution directly to another address space&amp;#x2F;context.</text></comment>
<story><title>&quot;Doors&quot; in Solaris: Lightweight RPC Using File Descriptors (1996)</title><url>http://www.kohala.com/start/papers.others/doors.html</url></story><parent_chain></parent_chain><comment><author>codetrotter</author><text>Solaris was ahead of its time. They had Zones, which was a container technology, years ago. Likewise, FreeBSD way ahead with Jails. Only later did Docker on Linux come into existence and then containerization exploded in popularity.</text></comment>