Jump to content

Doors (computing)

From Alfawiki
Sun Microsystems
IndustryComputer software, Computer hardware
FoundedFebruary 24, 1982; 44 years ago (1982-02-24)
FounderVinod Khosla, Andy Bechtolsheim, Scott McNealy, Bill Joy
Headquarters
Santa Clara, California
,
United States
ProductsSolaris, Java, Network File System, SPARC processors

Doors serves as an inter-process communication mechanism within Unix environments, offering a method for procedure invocation.

History

Originally created by Sun Microsystems as a component of the Spring OS, Doors were incorporated into Solaris 2.5 as an internal, undocumented interface. They became officially documented starting with Solaris 2.6. In current Solaris releases, Doors are widely utilized, including in services such as nscd (name service cache daemon) and syslog.

A version of Doors was ported to Linux in 2003; however, this port supports only kernel version 2.4.18.

Overview

The Doors framework integrates a user-space library with kernel-level support, designed for minimal overhead and optimized for multithreaded environments. Solaris enhances performance by implementing assembly language routines.

Server applications establish Doors by defining a single server procedure. Clients interact with these through door_call(), transmitting memory segments and lists of file descriptors as input and receiving analogous data in response. Servers may associate Doors with specific files, enabling clients to connect by opening these files, which are denoted with a 'D' file type in directory listings.

Doors function both as procedural calls and as stateful data entities, permitting interprocess references via tagged unions that support multiple methods. This architecture facilitates information exchange between clients and servers, including capabilities such as access control based on user or process identifiers.

Thread pool management within servers is handled by the Doors library but can be tailored by the server implementation. The library itself does not include synchronization mechanisms; instead, servers employ conventional thread synchronization techniques. Doors also enable synchronized access to shared memory regions, allowing efficient single-copy data transfers.

From a conceptual standpoint, Doors bear similarity to the X/Open XATMI API: the door_call() function corresponds to tpcall(), while door_return() is analogous to tpreturn().

See also

External links