NAME
Aries — emulate PA-RISC applications on IA-64
DESCRIPTION
Aries is a binary emulator that transparently emulates 32-bit and 64-bit
HP-UX PA-RISC applications on HP-UX IA-64 machines.
Aries is transparent in that:
The HP-UX PA-RISC application is not re-compiled.
The user does not explictly invoke Aries.
The HP-UX IA-64 kernel recognizes a HP-UX PA-RISC executable and invokes
Aries to emulate the application.
Aries consists of 4 shared libraries :
- /usr/lib/hpux32/aries32.so
- /usr/lib/hpux32/pa_boot32.so
- /usr/lib/hpux64/aries64.so
- /usr/lib/hpux64/pa_boot64.so
aries32.so
is the shared library that contains the Aries emulator for
32-bit applications.
pa_boot32.so
contains code to load
aries32.so.
Likewise,
aries64.so
is the emulator for 64-bit applications.
pa_boot64.so
loads
aries64.so.
Upon detecting a 32-bit HP-UX PA-RISC executable, the HP-UX IA-64 kernel invokes
pa_boot32.so,
which loads
aries32.so
into memory and sets it up to emulate the HP-UX PA-RISC
executable.
Likewise,
aries64.so
is loaded for a 64-bit HP-UX PA-RISC executable.
SUPPORTED APPLICATIONS
Aries supports emulation of all HP-UX PA-RISC applications, with the
following limitations :
Aries does not support PA programs that load IA-64 shared
libraries. In other words, mixing PA binaries with IA shared
libraries is not supported. Aries is meant only for pure PA binaries —
that is, binaries that are either statically or dynamically linked with
PA libraries only.
The version of Aries that ships with HP-UX 11i Version 1.5 supports
HP-UX PA-RISC applications that run on HP-UX 11i and below.
Aries does not support applications compiled on HP-UX version 8.x or earlier.
However such applications should work fine if they run on a contemporary version
of HP-UX (that is, HP-UX 11i and earlier).
Aries does not support privileged PA-RISC instructions. Hence,
device drivers and loadable kernel modules are not supported.
Aries does not support applications which use
/dev/kmem
(applications rely on kernel data structures). Typical applications
of this nature are system administration programs. These will typically
be available native on an IA-64 machine.
Aries does not support timing-dependant applications.
This includes applications that expect ``real-time''
response or assume that there is
a consistency in the amount of time that it takes to execute a
particular sequence of instructions.
Aries does not support applications that use the
ptrace(),
ttrace(),
or
profil()
system calls. These system calls are used by debuggers
and profiling tools. Such tools are inherently not portable.
Aries does not generate core dumps for applications that fail.
Though the application may fail with a core dump, the core is not
that of the PA-RISC application.
Aries consumes a small amount of an application's virtual memory
address space.
Therefore Aries does not support applications that are
nearly or completely maxed out on their virtual address space usage.
Aries supports both the
fork(),
and
vfork()
system calls.
However, Aries does not support applications that rely on differences between
fork()
and
vfork().
See
vfork(2)
and
fork(2)
for details.