Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX 11i Version 3 Release Notes: HP 9000 and HP Integrity Servers > Chapter 2 Introduction to HP-UX 11i Version 3

HP-UX 11i Compatibility Between HP-UX Releases Across Hardware Platforms

» 

Technical documentation

Complete book in PDF
» Feedback
Content starts here

 » Table of Contents

Hewlett-Packard (HP) understands the need for investment protection. HP-UX provides the most comprehensive investment protection in the industry including:

  • Binary and source code compatibility across operating system releases

  • Binary and source code compatibility across architectures, hardware platforms & virtual machines

  • ISV application availability across architectures

Compatibility Across Operating System Releases

HP provides forward binary compatibility for “well-behaved” applications between versions of HP-UX 11i.

A “well-behaved” application is an application that adheres to the following characteristics:

  • Uses only documented public APIs:

    • Documented interfaces are those found in the system manual (man) pages or at http://docs.hp.com

    • Applications that are kernel intrusive are NOT “well-behaved

  • Adheres to standard development practices:

    • For example: A shared library cannot be dependent on an archive library.

  • Does not use features that are specifically documented as having platform architecture or configuration limitations

  • Does not decompose an HP-UX product and then reuse the results of the decomposition

    • For example: Extracting and using a module from a system library, or copying a system library or command from one release to another is NOT supported

Within the “well-behaved” application context, the following is true:

  • HP-UX 11.0 application programs run unmodified on HP-UX 11i v 1 (NOTE: Applications that are kernel intrusive or depend on internal proprietary data structures of HP-UX 11i version 1 may NOT be binary compatible).

  • HP-UX 11i v2 supports both HP Integrity and HP 9000 servers. HP-UX 11i v2 provides application binary compatibility between HP-UX 11i v1 and HP-UX 11i v2 on HP 9000 servers. Additionally, applications developed for the original HP-UX 11i v2 release for HP Integrity servers (introduced and shipped in 2003) require no actions to run on an HP-UX 11i v2 Operating Environment Update Release (OEUR). Binary compatibility does not necessarily apply to kernel-intrusive applications or applications that rely on proprietary data structures inside HP-UX.

  • The HP-UX 11i v3 release supports both HP Integrity servers and HP 9000 servers, including those based on dual-core Intel Itanium 2 processors. HP-UX 11i v3 is engineered to maintain compatibility with previous HP-UX 11i releases. The dual-core Intel Itanium 2 processor supports Hyper-Threading. This feature is transparent to the applications, except for the small number of applications that assume the number of cores and the number of processors is the same. To all other applications, each hardware thread appears as an additional processor.

NOTE:
  • HP-UX 11i v3 returns “B.11.31” as the release identifier in the uname -r command.

  • The C compiler standard C89 is supported on the HP 9000 (PA-RISC) while the C compiler standard C99 is supported on Integrity servers. This means that while C code developed on PA-RISC is forward compatible to Integrity the reverse is not necessarily true.

  • HP-UX 11.0 applications that have been certified or proven to run correctly on HP-UX 11i v1 can also be considered to be compatible with HP-UX 11i v2 and HP-UX 11i v3 for the HP 9000. Compatibility details are fully documented in the Release Notes. Additionally, there is complete data compatibility between the architectures

Compatibility features between HP 9000 and HP Integrity servers include the following:

  • HP-UX 11i v3 on Integrity servers can transparently execute HP 9000 binaries. This is possible through the Aries dynamic code translation technology which is a built-in, integrated part of every copy of HP-UX 11i on Integrity servers. Performance in compatibility mode may be less than native mode, but binary compatibility ensures that all PA-RISC applications can be executed on the Integrity server's architecture without recompilation.

  • HP-UX 11i v3 is built from the same source for both HP Integrity servers and HP 9000 servers. This means that HP-UX 11i v3 has the same look and feel and operates in a very similar fashion on both architectures.

  • The system management, security, and high availability tools and products are the same for both HP-UX 11i v3 on HP Integrity servers and HP 9000 servers.

  • HP-UX 11i v3 features application source code and application build environment compatibility across the HP 9000 and Integrity server architectures.

    • Source Code Compatibility: Application programs from HP-UX 11i on HP 9000 servers can be made into native HP Integrity server applications with recompilation; no source code modifications are necessary regardless of whether the application is 32 or 64 bits on PA-RISC (HP-UX 11i on HP Integrity servers supports both 32-bit and 64-bit applications even though Integrity servers are a 64-bit architecture). However, converting a 32-bit HP 9000 server application into a 64-bit HP Integrity server application may require some source code changes.

    • Application Build Environment Compatibility: HP-UX 11i also features Application Build Environment compatibility across the HP 9000 and Integrity server architectures. This means that HP 9000 application build environments (makefiles, script files, etc.) can be moved to Integrity servers and will, without modification, function the same way that they did on HP 9000 servers.

  • HP-UX 11i on Integrity servers has the same data formats as HP-UX 11i on HP 9000 servers. This means that there is complete data compatibility between the two architectures. This interoperability allows the seamless integration of HP-UX 11i Integrity servers into a network of HP-UX 11i HP 9000 systems.

Binary and Source Code Compatibility Across Hardware Platforms

Hewlett-Packard maintains application binary compatibility across all hardware platforms of the same family which are supported by the same version of HP-UX. This binary compatibility requires that application software uses only externally documented and supported software interfaces. In other words, binary compatibility across the members of a hardware family (such as PA-RISC) is provided if the following conditions apply:

  • The hardware platforms are members of the same family, e.g. they are all PA-RISC-based.

  • The application has used only externally documented and supported software interfaces (e.g. does not use undocumented interfaces).

  • The application software has no dependencies on specific types of hardware (e.g. specific mass storage devices or specific I/O or networking adapters).

Hewlett-Packard has an excellent record of introducing new processors that provide complete software binary compatibility with previous processors, thus protecting customer and partner investments and allowing support for new processors with a minimum of risk and investment. HP has always recognized that software binary compatibility with new processors is an important partner and customer requirement.

PA-8800/PA-8900 Binary Compatibility

Applications and software developed for systems with the earlier generation PA 8x00 processors run correctly and without modification on the PA-8800 and PA-8900 processors. These processors differ from previous ones by providing two cores within a single processor (dual-core).

Recompiling 32-Bit HP 9000 Applications for Native Execution on Integrity servers

In nearly all cases, 32-bit HP 9000 applications can be recompiled for native execution on Integrity servers without source code modifications. This is true because the HP compilers for Integrity servers support both 32-bit and 64-bit data models. 32-bit applications use a data model known as ILP32 in which integers, long integers, and pointers are all 32 bits. 64-bit applications use a data model known as LP64 in which integers are 32 bits but long integers and pointers are 64 bits. HP compilers for Integrity servers support both data models. In the case of a 32-bit HP 9000 application that is being recompiled for native execution on Integrity servers, the compiler emits instructions that cause the application to behave as though it is a 32-bit application executing on a 32-bit architecture even though the underlying architecture is 64 bits. This is transparent to the application; it has no awareness that it is actually executing on a 64-bit architecture. It is this feature of the HP compilers for Integrity servers that allow the vast majority of 32-bit HP 9000 applications to be recompiled without source code modification for native execution on the Integrity server architecture.

Exceptions to HP 9000/Integrity server Binary Compatibility

In nearly all cases HP 9000 applications can execute under the Aries dynamic code translator which is included as an integrated component in every copy of HP-UX 11i for Integrity servers. The following list documents the exceptions to binary compatibility.

HP's Aries dynamic code translator does not support the following:

  • binary mixed mode between HP 9000 and Integrity servers; application must be all PA-RISC, all 32 bits or all 64 bits

  • applications compiled on HP-UX 8.x or earlier

  • PA-RISC privileged instructions

  • applications that depend on kernel data structures

  • timing-dependent applications

  • signaling via floating point NaNs (Not a Number)

  • applications or debuggers that use ptrace, ttrace, and profil system calls

  • core dumps for HP 9000 applications that abort

  • applications that read the B-bit in the PSW (Process Status Word)

  • applications that use maximum virtual memory (because the dynamic translator itself consumes a small amount of the virtual memory of a process)

  • applications that rely on differences between vfork and fork system calls

  • the emulation of debugging tools that have architectural dependencies on the PA-RISC architecture

ISV Application Availability Across Architectures

With the source, data, and binary compatibility that HP provides from HP 9000 servers to Integrity servers, it is expected that the vast majority of independent software vendors (ISVs) that support applications on HP 9000 servers are able to readily transition these applications to HP-UX 11i on Integrity servers. This means that not only does HP-UX 11i and its layered system management, security, and high availability products have a common “look and feel” on the two architectures, it also means that application products have a common “look and feel” across the two architectures, thus eliminating the need to retrain users for new applications.

Great care has been taken with HP-UX 11i to maintain binary compatibility with legacy features. Existing application binaries will continue to execute without modification on HP-UX 11i v3 using legacy feature sets.

Applications that take advantage of new features in HP-UX 11i v3 may be required to make code changes in order to fully utilize these new features.

Please verify with your ISVs that you have the appropriate and supported version needed if you wish to take full advantage of the new features available with HP-UX 11i v3.

Help for ISVs

ISVs (Independent Software Vendors) whose:

  • HP-UX 11i v1 or HP-UX 11i v2 application meets the criteria for binary compatibility (i.e., not kernel intrusive, etc.) and fails to function on HP-UX 11i v3 for HP 9000 servers as it functioned previously.

    OR

  • HP-UX 11i v2 or HP-UX 11i v3 Integrity server native application, limited to the devices currently virtualized by Integrity VM, fails to function in a virtual machine as it functions outside of the virtual machine

can contact HP through a special support line (for North America) at 1-800-249-3294 and use option 2. Help is also available alternatively by sending an e-mail to spp@cup.hp.com. When calling this number or sending an e-mail, identify the problem as a “compatibility failure” and the support staff will help you with the situation.

Application Binary Compatibility with HP-UX 11i Virtual Partitions (vPars)

HP-UX Virtual Partitions (vPars) is engineered to provide application binary compatibility between native HP-UX 11i applications and the same applications running within virtual partitions (vPars). No changes, recompilation or re-certification are required in order for HP-UX native applications to run within virtual partitions.

Application Binary Compatibility with HP Integrity Virtual Machines (Integrity VM)

HP Integrity VM is engineered to provide application binary compatibility between native HP-UX 11i v2 and HP-UX 11i v3 Integrity server applications and the same applications running within virtual machines. This binary compatibility applies to applications with no specific device dependencies and to applications that depend only on devices currently virtualized by Integrity VM. Most applications do not have specific device dependencies. However if your application has specific device dependencies, please refer to the HP Integrity Virtual Machines QuickSpecs, available at http://hp.com, for details.

For more information, go to

www.hp.com/go/hpux11i

www.hp.com/go/integrity

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 2006-2007 Hewlett-Packard Development Company, L.P.