Open System Services Porting Guide (G06.24+, H06.03+)
Table Of Contents
- What’s New in This Manual
- About This Manual
- 1 Introduction to Porting
- 2 The Development Environment
- 3 Useful Porting Tools
- 4 Interoperating Between User Environments
- Purpose of Interoperability
- The OSS User Environment
- OSS Commands for the Guardian User
- Guardian Commands for the UNIX User
- OSS Pathname and Guardian Filename Conversions
- Running the OSS Shell and Commands From TACL
- Running Guardian Commands From the OSS Shell
- Running OSS Processes With Guardian Attributes
- Using OSS Commands to Manage Guardian Objects
- 5 Interoperating Between Programming Environments
- 6 OSS Porting Considerations
- 7 Porting UNIX Applications to the OSS Environment
- 8 Migrating Guardian Applications to the OSS Environment
- General Migration Guidelines
- C Compiler Issues for Guardian Programs
- Using New and Extended Guardian Procedures
- Using OSS Functions in a Guardian Program
- Interoperating With OSS Programs
- Starting an OSS Program From the Guardian Environment
- C Compiler Considerations for OSS Programs
- Porting a Guardian Program to the OSS Environment
- How Arguments Are Passed to the C or C++ Program
- Differences in the Two Run-Time Environments
- Which Run-Time Routines Are Available
- Use of Common Run-Time Environment (CRE) Functions
- Replacing Guardian Procedure Calls With Equivalent OSS Functions
- Which IPC Mechanisms Can Be Used
- Interactions Between Guardian and OSS Functions
- 9 Porting From Specific UNIX Systems
- 10 Native Migration Overview
- 11 Porting or Migrating Sockets Applications
- 12 Porting Threaded Applications
- A Equivalent OSS and UNIX Commands for Guardian Users
- B Equivalent Guardian Commands for OSS and UNIX Users
- C Equivalent Inspect Debugging Commands for dbx Commands
- D Equivalent Native Inspect Debugging Commands for dbx Commands
- E Standard POSIX Threads Functions: Differences Between the Previous and Current Standards
- Glossary
- Index
Introduction to Porting
Open System Services Porting Guide—520573-006
1-8
Comparison With UNIX
Comparison With UNIX
Open System Services complies with several standards developed by public
organizations with widespread industrial recognition—organizations like the X/Open
Company Limited, the International Organization for Standards (ISO), the Institute of
Electrical and Electronics Engineers (IEEE), and the National Institute for Standards
and Technology (NIST).
The industry standards prescribe a specific set of programmatic calls, define syntax
rules for their use, and specify what the resulting operations should do. Computer
vendors produce application environments that conform to these standards by
accepting the calls and responding to them in the way described. Programmers write
applications that conform to the standards by using only 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 on page 1-2). 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).
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-1 on page 1-9. 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.
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.