System Interface Guide

Interface Taxonomy

The Interface Taxonomy classifies commitment level of an interface. The commitment level identifies who may, or how to, use the interface. Definitions:.

Open specification  

An interface specification that we publish, which customers can use freely (build products that use our implementation of the interface). Others are free to provide alternative implementations without licensing or legal restrictions. 

Closed specification  

An interface specification that we do not publish. One which we do not want customers to build products and of which we do not want others to build alternative implementations. 

Compatible change 

A change to an interface or its implementation that has no effect on previously valid programs. 

Incompatible change  

A change to an interface or its implementation that makes previously valid programs invalid. This may include bug fixes or performance degradation. This does not include programs which depend on unspecified "artifacts of the implementation".  

Standard Classification

Specification: 

Open  

Incompatible Change: 

major release (X.0)  

Examples: 

POSIX, ANSI-C, Solaris ABI, SCD, SVID, XPG, X11, DKI, VMEbus, Ethernet 

Standard interfaces are those whose specification is controlled by a group outside of Sun. This includes standards such as POSIX and ANSI C, as well as industry specifications from groups such as X/Open, the MIT X-Consortium, and the OMG.

Public Classification

Specification: 

Open  

Incompatible Change: 

major release (X.0)  

Examples: 

Sun DDI, XView, ToolTalk, NFS protocol, Sbus, OBP 

These are interfaces whose specification is completely under Sun's control. We publish the specification of these interfaces and commit to remain compatible with them.

Classification

Specification: 

Open  

Incompatible Change: 

minor release (X.Y)  

Examples: 

VFS interface, vm kernel interfaces, libkvm 

Uncommitted interfaces are available for use by customers, but they lack the commitment that comes with a Public interface. We often publish specifications of the current versions of these interfaces in a "this is how it works in this release, but we may change it next release" form. Use these interfaces at your own risk in experiments.

Some of these interfaces are ones we would like to elevate to "Public" status, but at the moment we don't feel confident enough in them to commit to the compatibility constraints of a Public interface. The VFS and vm interfaces are examples of this.

Obsolete Classification

Specification: 

None  

Incompatible Change: 

Minor release (.X.0)  

Examples: 

RFS 

An interface no longer in general use. An existing interface can be downgraded from some other status (such as Public or Standard) to Obsolete through a standard proactive program to communicate the change in commitment to customers.

A change in commitment requires one year's notice to the customer base and the Sun product development community of the intended obsoleting of the interface. A full year must elapse before delivering a product that contains a change incompatible with the present status of the interface.

Acceptable means of customer notice includes letters to customers on support contracts, release notes or product documentation, or announcements to customer forums appropriate for the interface in question.

The notice of obsolescence is considered to be "public" information in that it is freely available to the customers. It is not intended that this require specific actions to "publish" the information, such as press releases or similar forms of publicity.