Data models for 32-bit and 64-bit processes
AIX supports two development environments: the 32-bit and the 64-bit development environments.
Compilers on AIX offer the following two programming models:
- ILP32
- ILP32, acronym for integer, long, and pointer 32, is the 32-bit programming environment in AIX. The ILP32 data model provides a 32-bit address space with a theoretical memory limit of 4 GB.
- LP64
- LP64, acronym for long, and pointer 64, is the 64-bit programming environment on AIX. With the exception of data type size and alignments, LP64 supports the same programming features as the ILP32 model and is backward compatible with the most widely used int data type.
Accordingly, a program on AIX can be compiled to run as either a 32-bit program or a 64-bit program. The same Vue script can be issued for a process running in 32-bit or 64-bit mode. As per the data model specification, an external variable of type long accessed in a Vue script must be treated as 4 bytes long when the probed (or traced) process is a 32-bit process. The same variable must be treated as 8 bytes long when the probed process is a 64-bit process. The layout and size of a structure or union, which contains members that are pointers or long variables, will depend upon whether it is being viewed from the perspectives of a 32-bit process or a 64-bit process. To avoid confusion, Vue provides semantic rules for handling the two different data models in a logical and consistent manner based on the variable's class.