 |
» |
|
|
 |
|  |  |
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.
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 PlatformsHewlett-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 CompatibilityApplications 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 serversIn 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 CompatibilityIn 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 ArchitecturesWith 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. 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
|