32与64位可以有三种技术分类:CPU;OS(aix内核);应用程序(API)。三种技术类别对应的是32位还是64位可通过一下方法查询。
1.判断CPU是32位还是64位。
#lsattr -El proc0
frequency 1654344000 Processor Speed False
smt_enabled true Processor SMT enabled False
smt_threads 2 Processor SMT threads False
state enable Processor state False
type PowerPC_POWER5 Processor type False
type显示的就是CPU的型号。64位的CPU包括:
PowerPC_RS64;PowerPC_RS64 II;PowerPC_RS64 III;PowerPC_Power3;PowerPC_Power3 II
PowerPC_Power4;PowerPC_Power5;PowerPC_Power6
AIX5.1以前没有prtconf这个命令所以查看CPU的主频用pmcycles命令。
2.判断AIX内核的位数。
#bootinfo -K
64 --64位内核
#bootinfo -y
64 --64位硬件
3.判断应用程序(API)的位数
#dump -ov filename |grep bit
4.32位与64的不同组合。
组合 应用 内核 硬件 兼容说明
1 32 32 32 最高AIX5.1操作系统,向下兼容个版本32位程序
2 32 32 64 AIX4.3以上版本,AIX5.1以下兼容各版本32位程序
3 32 64 32 不支持
4 32 64 64 需要AIX5.1以上的版本,向下兼容各版本32位程序
5 64 32 32 不支持
6 64 32 64 需要AIX4.3以上版本,并安装和启用bos.64bit程序集。
AIX4.3版的64位程序运行于5.1版本上需要重新编译
7 64 64 32 不支持
8 64 64 64 需要AIX5.1以上版本
注意:一些老版本的OS版本,例如5.1,即使在64位硬件上安装,默认也没有开启64位内核(需要手工开启)
5.AIX4.3或AIX5.1以上版本都可以提供对64位程序运行的支持,但要满足如下要求:
5.1 bos.64bit
需要安装bos.64bit,可以通过lslpp -l bos.64bit来查看。64位的机器上安装OS的时候会自动安装,如果你在32位的机器上安装了此程序包,则你可以在32位机器上编译出64位的执行程序,但是你不能执行它。
5.2 64位硬件
参照支持64位的CPU型号。
5.3 开启内核64位支持
#genkex |grep syscalls64
3f7a000 398 /usr/lib/drivers/syscalls64.ext
64位驱动扩展并不等于内核是64位的。只有在AIX V5以上的版本才可能真正的是64位内核。这个内核扩展驱动仅仅代表着可以在32位内核的机器上编译出64位的执行程序。而如果是64位的CPU,即使是使用了32的内核,/usr/lib/drivers/syscalls64.ext程序也允许执行64位的应用。
6.32位内核与64位内核这间的转换
32->64:
#ln -sf /usr/lib/boot/unix_64 /unix
#ls -sf /usr/lib/boot/unix_64 /usr/lib/boot/unix
#bosboot -ad /dev/ipldevice
#shutdown -Fr
64->32:
#ln -sf /usr/lib/boot/unix_mp /unix --单CPU的机器用unix_up代替
#ln -sf /usr/lib/boot/unix_mp /usr/lib/boot/unix
#bosboot -ad /ipldevice
#shutdown -Fr
7.POWER6
POWER6的小型机以及AIX6.1的操作系统不再提供对32位硬件和操作系统的支持。但并不影响32位程序在power6和AIX6.1上的运行。
阅读(3381) | 评论(0) | 转发(0) |