Модели данных для 32-разрядных и 64-разрядных процессов

AIX поддерживает две среды разработки: 32-разрядную и 64-разрядную.

Компиляторы в AIX предлагают две следующие программные модели:

ILP32
ILP32 (акроним для integer, long и pointer 32) - это 32-разрядная среда программирования в AIX. Модель данных ILP32 предоставляет 32-разрядное адресное пространство с теоретическим ограничением памяти, равным 4 ГБ.
LP64
LP64 (акроним для long и pointer 64) - это 64-разрядная среда программирования в AIX. За исключением типа данных и выравнивания, LP64 поддерживает те же функции программирования, что и модель ILP32, и обратно совместима с наиболее широко используемым типом данных int.

Таким образом, программа в AIX может быть скомпилирована для выполнения как 32-разрядная программа или как 64-разрядная программа. Один и тот же сценарий Vue может быть выполнен для процессов, выполняющихся в 32-разрядном или в 64-разрядном режиме. Что касается спецификации модели данных, внешняя переменная типа long, доступная в сценарии Vue, должна считаться имеющей длину 4 байта при тестировании (или трассировке) 32-разрядного процесса. Та же переменная должна считаться имеющей длину 8 байтов при тестировании 64-разрядного процесса. Макет и размер структуры или объединения, содержащих элементы, которые являются указателями или переменными long, будут зависеть от того, видима ли она из 32-разрядного процесса или из 64-разрядного процесса. Во избежание путаницы, Vue предоставляет семантические правила для управления двумя различными моделями данных в логической или согласованной манере на основании класса переменной.