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
Interoperating Between User Environments
Open System Services Porting Guide—520573-006
4-2
Purpose of Interoperability
•
The ability of an application to use the application program interface (API) of either
the OSS or Guardian environment
•
The ability of one API to access or manipulate objects of both environments
•
The ability of utilities to access or manipulate objects of both environments
The primary objective of interoperability is to support and encourage the development
of new applications for the OSS environment and the porting of existing UNIX
applications from other platforms to the OSS environment. Another major objective is
the migration of Guardian applications to the OSS environment. All these applications
running in the OSS environment can take advantage of the parallelism, fault tolerance,
and scalability of a NonStop system.
Open System Services accomplishes interoperability between environments using
standard function calls and HP extensions to these calls and to the Guardian
procedures. Section 1, Introduction to Porting, discusses the relationships of the OSS
and Guardian environments to the NonStop operating system.
Figure 4-1 illustrates interoperability between the OSS and Guardian environments.
The line weight of the arrows represents the degree of availability and effectiveness of
operations within one environment and between environments. The thick, vertical
arrows signify the availability of more services, functions, procedures, utilities and so
on for one-environment operations. The thin arrows pointing to the objects signify that
fewer services are available for these operations. Whenever possible, stay within a
single environment when it makes sense to do so.
For example, it would not be efficient to select an OSS process to use a Guardian
application program interface (API) to access an OSS object; this operation would
involve additional, internal exchanges. The more direct route is to stay in the OSS
environment for this operation.