AIX 二进制兼容性的限制
为了在任何平台上实现二进制兼容性,应用程序必须仅使用可移植的编程技术。
如果您在 AIX 操作系统的某个发行版中创建二进制代码,那么您无法在较低版本的 AIX 操作系统中运行该二进制代码。 例如,如果在 AIX® V 7.1上创建了二进制代码,那么不能在 AIX V 6.1上运行相同的二进制代码。
不可移植的编程技术
- 使用特定于处理器的编译器选项编译了应用程序,但是这些应用程序在除了该处理器之外的模型中运行
- 启用了长用户名的旧的安全库接口
- AIX共享库的非共享编译
- X11R5 服务器扩展
- 基于 IBM-850 代码集的语言环境
启用了长用户名的应用程序
AIX V 5.3, AIX V 6.1, AIX V 7.1和 AIX V 7.2 可配置为容纳超过 8 个字符的用户名和组名。 如果这些系统正在运行使用安全库接口的应用程序,那么不应将这些版本的 AIX 操作系统配置为长用户名,除非已对这些应用程序进行长用户名支持测试。
- 未特地结构化以处理长用户名和长组名的应用程序。
- 使用旧的安全库接口并且具有名称长度不超过 8 个字符的限制的应用程序。
- 依赖于长度不超过 8 个字符的用户名和组名的应用程序。
| 旧的安全库接口长用户名和长组名 | 启用了用户名的替代方法 |
|---|---|
| ckuserID() | authenticatex() |
| cuserid() | getpwuid() |
| getuinfo() | getuinfox() |
| getuinfo_r() | getuinfox() |
| getuserpw() | getuserpwx() |
| newpass() | newpassx() |
| putuserpw() | putuserpwx() |
| putuserwhist() | putuserpwxhist() |
AIX V 7.2 上的 X11R5/X11R6 兼容性问题
AIX V 7.2 X-server 使用 X 的 X-Consortium 发行版 6 (通常称为 X11R6)。 IBM 与 X11R6 一起提供的库向后兼容,访问这些库的客户机应用程序可以在 AIX V 4 , AIX 5L, AIX V 6.1和 AIX V 7.1上使用。 在这些版本的 AIX上, IBM® 还包含 X11R3, X11R4和 X11R5 兼容性安装选项,以实现最大的灵活性。
- 从 X-Consortium FTP 站点下载的样本扩展
- 用户开发的扩展
- 第三方提供的扩展
如果您正在使用非IBM 显示适配器,那么还可能使用供应商提供的特定于使用 X11R6 服务器功能的设备的软件。 在此方案中,该软件必须与 X11R6 兼容才能正常运行。 请与该软件的显示适配器的供应商联系。
32 位设备驱动程序和内核扩展
在 AIX 版本 6.1或更高版本中, AIX 操作系统通过仅提供 64 位内核来简化内核环境。 AIX 操作系统与先前版本的 AIX 操作系统保持应用程序二进制兼容性,但在 AIX 版本 6.1, AIX 版本 7.1和 AIX 版本 7.2上不支持仅 32 位的设备驱动程序和内核扩展。
在 AIX 5L 上构建的双方式 (32-bit/64 位) 内核扩展只能在 AIX Version 6.1, AIX Version 7.1和 AIX Version 7.2上以 64 位方式运行。