Open System Services Porting Guide (G06.29+, H06.06+, J06.03+)

those statements and syntax rules set forth. Thus, an application written to these standards will run
with little or no source-code change on all computer systems that support the same standards (once
recompiled for the new machine).
Open System Services has very strong UNIX roots with respect to function calls, user commands,
and utilities. The X/Open CAE Specifications incorporate the POSIX.1 and POSIX.2 standards,
among other guidelines. The POSIX standards, in turn, were derived from extensive experience
with UNIX operating systems.
Both POSIX.1 and POSIX.2 are based on UNIX (refer to “Porting Is Easier When Standards Are
Used” (page 24)). The POSIX standards evolved to incorporate the features of the most popular
UNIX systems (notably, the University of California’s Berkeley Software Distribution, or BSD, system
and UNIX System Laboratory’s UNIX System V).
NOTE: UNIX and POSIX are not synonymous; there are many different UNIX systems in the
marketplace, running on machines of varying size and type, that comply with the POSIX standards.
OSS interfaces and functions greatly resemble those of UNIX systems in general, because of their
common relationship to the POSIX standards. Open System Services adds to the UNIX API by
offering access to Guardian fundamentals, and interoperability with the Guardian environment by
offering extensions to the standard API, additional OSS function calls, and access to Guardian
procedure calls.
Relationship of the OSS Environment to the Guardian Environment
The OSS environment offers an alternative programmatic and user interface to the NonStop
operating system, integrated with the lower-level operating system services and the core services.
It coexists on the NonStop system with the traditional Guardian interface, as shown in Figure 1
(page 30). The OSS environment provides an open interface to the operating system for supporting
portable applications and does this on a system that is known for hardware and software fault
tolerance.
Both the G-series OSS environment and the G-series Guardian environment support programs that
use the TNS/R native run-time environment. The G-series OSS and Guardian environments also
support programs that use the legacy TNS run-time environment. However, newly written or newly
ported programs for the G-series OSS environment are expected to use the TNS/R native run-time
environment.
On H-series systems and J-series systems, both the OSS and Guardian environments support
programs that use the TNS/E native run-time environment. However, only the Guardian environment
supports the TNS environment; the H-series and J-series OSS environments do not support the TNS
environment. Thus, newly written or newly ported programs for the H-series or J-series OSS
environments must use the TNS/E native run-time environment.
For more information, see “TNS/R Native, TNS/E Native, and TNS Environments” (page 31).
For more information about the following topics, refer to the Open System Services Programmer’s
Guide:
Relationship of OSS to the Guardian API and the NonStop operating system, and conformance
to industry standards
Basic differences between the OSS and Guardian file systems, including directory structures
file access and file types
Basic differences between the OSS and Guardian processes, including process identifiers,
groups, ancestors, attributes, and pairs
Overview of the OSS Environment 29