Standards Conformance Guide
この本のみを検索
PDF 文書ファイルをダウンロードする

UNIX System V Release 4-Based (SVR4) Specifications

2

This chapter provides an introduction to UNIX System V Release 4, discusses related specifications, and identifies how the SunOS operating system conforms to those specifications.

UNIX System V Release 4

The UNIX operating system was developed by Ritchie and Thompson at Bell Laboratories in the early 1970s. From 1977 to 1982, Bell Laboratories combined several variants of the UNIX system devised by American Telephone and Telegraph (AT&T), into a single system, known commercially as UNIX System III. Bell Laboratories later added several features to UNIX System III, calling the new product UNIX System V, and AT&T announced official support for System V in January 1983.
UNIX System V Release 4 (SVR4), the result of a cooperative venture entered into by Sun Microsystems and AT&T, was announced in November of 1989. SVR4 is a synthesis of the best functionality of AT&T's UNIX System V Release 3, Berkeley Software Distribution 4.3, Sun's SunOS releases, and Microsoft's XENIX(R). SVR4 provides the notions of a consistent Application Programming Interface (API) and a single Application Binary Interface (ABI) for each hardware platform. It offers scalability that allows users, depending on their needs, to move to larger or smaller machines while still using the same environment.

Application Binary Interface

The System V Application Binary Interface (ABI) defines a standard binary interface for compiled applications on systems that implement UNIX System V Release 4 or other operating systems that comply with the System V Interface Definition, Third Edition.1
The ABI defines a binary interface for application programs that are compiled and packaged for System V implementations on different hardware architectures. Because a binary specification must include information particular to the computer processor architecture for which it is intended, it is not possible for a single document to specify the interface for all possible System V implementations. Therefore, the System V ABI is a family of specifications.
The System V ABI is composed of two basic parts: a generic part that is a source-level interface which describes those aspects that remain constant across all hardware implementations of System V, and a processor-specific part that provides a complete binary interface for specific CPU architectures. Together, the generic ABI and the processor-specific supplement for a single hardware architecture provide a complete interface specification for compiled application programs on systems that share a common hardware architecture.
Software that is ABI-compliant for a particular architecture runs unchanged in its binary form on any ABI-compliant machine of that architecture. Also, this software is source compatible with any other ABI-compliant system and runs unchanged after compilation on the target system.

SunOS Compliance With the ABI Specification

The SunOS operating system is compliant with both the generic ABI as defined in the AT&T System V Application Binary Interface: Generic ABI (ISBN 0-13- 100439-5) and the processor-specific part of the ABI as defined in the Application Binary Interface SPARC Processor Supplement (ISBN 0-13-104696-9) or the Application Binary Interface Intel 386 Processor Supplement (ISBN 0-13-104670- 5), depending on the underlying hardware architecture.

1. The System V Interface Definition, Third Edition is also referred to as SVID89 and SVID3.

ABI Specifications and Related Publications

The following documents comprise the ABI specification for the SunOS operating system:
  • AT&T System V Application Binary Interface: Generic ABI
  • AT&T System V Application Binary Interface SPARC Processor Supplement
  • AT&T System V Application Binary Interface Intel 386 Processor Supplement
The documents listed above refer to other specifications and standards, some of which are identified below:
  • The System V Interface Definition, Third Edition
  • The IEEE Std. 1003.1-1990 Portable Operating System Interface (POSIX.1)-Part 1: System Application Program Interface [C Language]
  • The IEEE Std 754-1985 Floating Point Processing Specification
  • The X/Open Portability Guide, Issue 3
  • The X/Open Portability Guide, Issue 4
  • The ANSI Std. X3.159-1989 C Language Specification
  • The X11 X Window System Graphical User Interface Specification
  • The SPARC Architecture Manual, Version 8
  • i486 MICROPROCESSOR Programmer's Reference Manual
  • 80386 Programmer's Reference Manual
  • 80387 Programmer's Reference Manual
These specifications and standards are discussed elsewhere in this manual.

System V Interface Definition (SVID)

The System V Interface Definition (SVID), first published by AT&T in 1985, represented a major standards initiative. AT&T was a prominent member of /usr/group and the influence of /usr/group is evident in the SVID.
The SVID specifies an operating system environment that allows users to create applications software that is independent of any particular computer hardware. It specifies the operating system components available to both end-
users and application programs and defines the functionality, but not the implementation, of components. The SVID specifies the source code interfaces of each operating system component, as well as the runtime behavior seen by an application program or an end-user.
An application using only components defined in the SVID will be compatible with and portable to any computer that supports the SVID. The SVID is organized into a Base System Definition with a series of Extension Definitions. The Base System Definition specifies the components that all System V operating systems must provide. The extensions to the Base System are not required.
All conforming systems must support the source-code interfaces and runtime behavior of all the components of the Base System. A system may conform to none or some extensions. All of the required components must be present for a system to meet the requirements of the extension.

SunOS Compliance With SVID3

The SunOS operating system is compatible with the Base System of the System V Interface Definition, Third Edition. Writing to SVID3 ensures that your applications will be source compatible. Applications that are SVID3 compliant will compile and run on the SunOS operating system.
The SunOS operating system meets all SVID requirements for the following: Base System, Basic Utilities, Kernel, Network Services, Terminal Interface Extensions, Advanced Utilities, and Software Development Extensions.

SVID Specification

System V Interface Definition, Third Edition, Volumes 1-4, AT&T

Device Driver Interface/Driver-Kernel Interface (DDI/DKI)

The Solaris 2.4 DDI, Device Driver Interface and DKI, Driver-Kernel Interface, comprise a set of standard interfaces for device drivers. SVR4 requires that each vendor provide and document a hardware-specific DDI. The Solaris 2.4 DDI is a set of device driver interfaces defined by SunSoft that meets that requirement. The DKI is intrinsic to System V, Release 4 (SVR4). The DKI is
divided into two parts: the set of interfaces called DDI/DKI that will continue to be supported in future release of System V and the set of interfaces called DKI only that may not be supported in the future.

SunOS Compliance with the Specification

The SunOS implementation of the DDI/DKI and DKI-only interfaces for device drivers is compliant with the specification described in the UNIX System V Release 4 Device Driver Interface/Driver-Kernel Interface (DDI/DKI) Reference Manual.

DDI/DKI and DKI Specifications and Related Publications

The following manuals describe the DDI and DKI interfaces.
  • DDI interfaces are described in the Writing Device Drivers.
  • For detailed information on how to write device drivers to these interfaces, see Writing Device Drivers.
  • The DKI interfaces are specified in The UNIX System V Release 4 Device Driver Interface/Driver-Kernel Interface (DDI/DKI) Reference Manual.

Data Link Provider Interface (DLPI)

The SVR4 STREAMS-based Data Link Provider Interface (DLPI) is a kernel-level interface that supports the services of the Data Link Layer for both connection-mode and connectionless-mode services. The specification, A STREAMS-Based Data Link Provider Interface, Version 2, designates the format for a set of messages between the data link provider and the data link user. The DLPI header, <dlpi.h>, is part of SVR4 and is included with this SunOS release.
DLPI enables a data link service user to access and use any of a variety of conforming data link service providers without special knowledge of the provider's protocol. Specifically, the interface is intended to support X.25, LAPB, BX.25 level 2, SDLC, ISDN, LAPD, Ethernet(TM), CSMA/CD, token ring, token bus, Bisync, FDDI, and other data link protocols.

SunOS Compliance With DLPI

The SunOS operating system is compliant with the DLPI specification, Version 2, 1991, revised by the Open Systems Interconnection Working Group (OSIWG), a working group within UNIX International (UI). The version 2 <dlpi.h> header is delivered with SunOS.

DLPI Specification

The following specification is based on the DLPI specification and includes version 2 of the <dlpi.h> header.
A STREAMS-Based Data Link Provider Interface -Version 2, UNIX International

Transport Provider Interface

The Transport Provider Interface (TPI) consists of the kernel components of the Transport Level Interface. TPI specifies the transport service interface in terms of STREAMS messages. The TPI structure is described in the TPI specification for System V Release 4.0.

SunOS Compliance with TPI

The SunOS operating system is entirely compliant with the Transport Provider Interface and intends to remain compliant as TPI continues to evolve. The X/Open Transport Interface (XTI), which was based on and evolved from the Transport Level Interface (TLI), will influence the evolution of TPI. (It is the intention of SunSoft to be compliant with XTI in the near future.)