The goal of AIX® binary compatibility is to allow applications created on earlier releases or technology levels of AIX to run unchanged and without recompilation on later releases or technology levels of AIX. The ability to run applications created on earlier versions of an operating system on a later level of the operating system is known in the IT industry as backward compatibility. Binary compatibility on any platform requires that the application use only portable programming techniques. A list of some non-portable programming techniques is detailed below.
AIX 7 is designed so that applications created on AIX 6 and AIX 5L can be executed on AIX V7 without recompilation. AIX 7 is planned to support POWER7™, POWER6™, POWER5™, POWER4™, and PPC970 processor systems that implement the Power Architecture platform reference architecture.
Any program that must run in all processor environments supported by AIX 7 must be compiled using the common mode or PowerPC® option of the compiler. Programs that were compiled using the original POWER mode do not need to be recompiled to operate on the supported AIX 7 processors.
Historically, few clients or ISVs have reported binary compatibility issues when moving from one release of AIX to the next. We anticipate similar results for the move to AIX 7.
All statements regarding IBM’s future direction and intent are subject to change or withdrawal without notice, and represent goals and objectives only.
Restrictions on binary compatibility
As stated earlier, binary compatibility on any platform requires that application use only portable programming techniques such as only using published interfaces and avoiding programming techniques that are processor or AIX release specific.
AIX does not support the execution of binaries created on later releases or technology levels of AIX on an earlier release or technology level of AIX. For example, execution of binaries created on the AIX V7.1 operating system (OS) would not be supported on a system running AIX V6.1 OS.
Non-portable programming techniques
Some examples of non-portable programming techniques that may affect binary compatibility include:
- Applications compiled using a processor-specific compiler option but executed on models other than that processor
- Non-shared compiles of AIX-shared libraries
- Features explicitly described as non-portable by IBM in the AIX reference manuals
- 32-bit kernel extensions, or binaries which explicitly depend on a 32-bit kernel
- Undocumented AIX internal features
- X11R5 Server Extensions
- Locales based on IBM-850 code sets
- Legacy security library interfaces executing on AIX 7 systems with long usernames enabled
Applications running on AIX releases with long usernames enabled
The AIX V5.3, AIX 6, and AIX 7 operating systems can be configured to accommodate user and group names exceeding 8 characters. Applications which have not been specifically structured to handle long user and group names and which use legacy security library interfaces with 8-character name limits or which depend on user and group names not exceeding 8 characters in length may not work correctly on systems which have been enabled for long user and group names. AIX V5.3, AIX 6, and AIX 7 commands which display user and group names will truncate user and group names to 8 characters to accommodate existing use unless command-specific options are used to display long user and group names.
|Legacy Security Library Interface Long||Username-Enabled Alternative|
Systems running the AIX V5.3, AIX 6, or AIX 7 operating systems should not be configured for long usernames if those systems are running applications that use security library interfaces unless the applications have been tested for long username support.
X11R5/X11R6 compatibility issues on AIX Version 7
The AIX 7 X-server uses the X-Consortium release 6 of X (commonly known as X11R6). The libraries shipped by IBM with X11R6 are backward compatible and the client applications that access these libraries work as on AIX 4, AIX 5L and AIX 6. As on AIX 4, AIX 5L, and AIX 6, IBM will also ship X11R3, X11R4, X11R5 compatibility installation options for maximum flexibility.
The majority of applications using X fall into this category and will not cause any difficulty. However, a small number of X-applications use the loadable extension facility provided by the X-server.
The X-server allows for the addition of new functionality through its extension mechanism. For each extension, part of the extension is loaded into the X-server before it can be executed. X11R6 has modified how this mechanism works in the course of improvements to X, and it is this part of the extension that must be made compatible with X11R6 to execute properly. All extensions supplied by IBM have been made compatible. In some circumstances, you may have an extension that does not work with X11R6; for example:
- Sample extension downloaded from the X-Consortium FTP site
- End user-developed extension
- Third-party extension
In these cases, the extension needs to be made compatible with X11R6 before it executes properly. End user-developed extensions and sample X consortium extensions need to be recompiled with the X11R6 environment. For third-party extensions, contact the vendor for a X11R6-compatible update.
If you use non-IBM display adapters, you may also be using vendor supplied software specific to those devices that uses X11R6 server capabilities. If so, this software must be compatible with X11R6 to operate properly. Contact the vendor of the display adapter for this software.
32-bit device drivers and kernel extensions
Beginning with AIX 6, the AIX operating system simplified its kernel environment by providing only the 64-bit kernel. AIX 6 and AIX 7 maintain application binary compatibility with previous AIX versions as specified above, but device drivers and kernel extensions that are 32-bit only are not supported on AIX 6 or AIX 7. Dual-mode (32/64 bit) kernel extensions built on AIX 5L will continue to run on AIX 6 and AIX 7, but only in 64-bit mode.
Application binary compatibility for specific prior AIX releases
Applications from AIX 5L and AIX 6 releases
AIX 7 is designed so that 32-bit and 64-bit applications created on AIX 5L and AIX 6 can be executed on AIX 7 without recompilation as long as those applications do not use non-portable programming techniques such as are listed above.
32-bit applications from AIX Version 4 releases
32-bit applications compiled on AIX 4 can be executed on AIX 7 as long as those applications do not use non-portable programming techniques such as are listed above.
64-bit applications from AIX Version 4 releases
Any 64-bit applications compiled on AIX 4 are not binary compatible with the AIX 5L, AIX 6, or AIX 7 operating systems. AIX 5L, AIX 6, and AIX 7 are source compatible with 64-bit applications created on AIX 4. These applications need to be recompiled on a system running AIX 5L, AIX 6, or AIX 7.
Applications from AIX Versions 3
32-bit applications created on AIX V3.2 or later AIX 3 releases can be executed on AIX 7 without recompilation.