|
This document provides general information about 64-bit mode on AIX Version
4.3.3 to 5L
Filesets needed Hardware required Kernel extensions vs. 64-bit kernel 32-bit and 64-bit performance comparisons
The bos.64bit is the Base Operating System 64-bit runtime fileset. If
bos.64bit
is not installed, you do not have the /etc/methods/cfg64 file. Without
the /etc/methods/cfg64 file, you will not have the option of enabling or
disabling the 64-bit environment via SMIT, which updates the inittab with the
load64bit line (simply adding this line does not enable the 64-bit
environment).
The command lslpp -l bos.64bit will reveal if this fileset is installed.
The
bos.64bit fileset is on the 4.3.x media, however, installing it does not
ensure
that you will be able to run 64-bit software.
With the bos.64bit fileset installed on non 64-bit hardware, you should
be able
to compile your 64-bit software; however, you will not be able to run 64-bit
programs on your 32-bit hardware.
You must have 64-bit hardware to run 64-bit applications. At AIX levels 4.3.2
and 4.3.3, to determine whether your system has 32-bit or 64-bit hardware
architecture:
- Log in as root.
- At the command line, enter:
bootinfo -y
This produces the output of either 32 or 64, depending on whether the hardware
architecture is 32-bit or 64-bit.
In addition, if you enter lsattr -El proc0, at any version of AIX, the
output
of the command should return the type of processor for your server.
The types of 64-bit processors are as follows:
- PowerPC_RS64
- PowerPC_RS64 II
- PowerPC_RS64 III
- PowerPC_Power3
- PowerPC_Power3 II
To determine if the 64-bit kernel extension is loaded, from the command line
enter:
genkex |grep 64
You should see information similar to the following:
149bf58 a3ec /usr/lib/drivers/syscalls64.ext
NOTE: Having the driver extensions, does not mean that the kernel is
a 64-bit kernel. A 64-Bit Kernel became available at 5.1 oslevel.
The driver extensions just allows the 64-bit application to be compiled by a
32-bit kernel. If the 32-bit kernel has a 64-bit processor, the
syscalls64.ext
will allow the 64-bit application to execute. Yet at AIX V5, a 64-bit kernel
and
a 64-bit processor has better performance with 64-bit applications.
To truly change the kernel to 64-bit, you need to be at the 5.1 or 5.2
oslevel. The
means to change to a 64-bit kernel are:
From 32-bit to 64-bit:
ln -sf /usr/lib/boot/unix_64 /unix
ln -sf /usr/lib/boot/unix_64 /usr/lib/boot/unix
lslv -m hd5
bosboot -ad /dev/ipldevice
shutdown -Fr
To change the kernel back to 32-bit:
From 64-bit to 32-bit:
ln -sf /usr/lib/boot/unix_mp /unix
ln -sf /usr/lib/boot/unix_mp /usr/lib/boot/unix
lslv -m hd5
bosboot -ad /dev/ipldevice
shutdown -Fr
To examine the benefits and drawbacks of going from 32-bit to 64-bit mode and
further effects on the system, consult the following, AIX 64-bit Performance
in
Focus, which is available at IBM Redbooks.
In most cases, running 32-bit applications on 64-bit hardware is not a problem,
because 64-bit hardware can run both 64-bit and 32-bit software. However,
32-bit
hardware cannot run 64-bit software. To find out if any performance issues
exist for applications that are running on the system, such as Lotus Notes and
Oracle, refer to those application's user guides for their recommended running
environment.
The significance of the 64-bit kernel extensions are to make it possible for
a 32-bit kernel to "receive" a request of address space from an application
that
can only make those requests in 64-bit mode. A request is made by the app for a
64-bit address space, the kernel extensions allow that request to be broken
into
two separate requests for 32-bit address space, which is then passed on to the
operating system. The operating system satisfies that request, without ever
knowing that it had been altered. The kernel extension then "appends" the two
32-bit address space into a single 64-bit address space, and passes it on to
the
application. This will only happen if the application in question was compiled
on a machine with 32-bit kernel and 64-bit kernel extensions loaded.
If an app is compiled on a 64-bit kernel machine with 64-bit kernel extensions,
it will not run on a 32-bit kernel machine with 64-bit kernel extensions. This
is because the compile operation will not bother to check for the presence of
kernel extensions if it has already determined that the kernel is 64-bit.
If the application was compiled on a 64-bit kernel without 64-bit kernel
extensions, then the ability to break its requests for 64-bit address space
into
two would not be possible, and the 32-bit kernel would not be able to satisfy
the request.
If an app is compiled on a 32-bit machine with 64-bit kernel extensions, it
must
be re-compiled to run on a 64-bit kernel, whether or not there are 64-bit
kernel extensions on that machine with the 64-bit kernel.
If an application is compiled on a 32-bit kernel without 64-bit kernel
extensions, then it would be requesting strictly 32-bit address space, which
could be satisfied by a 32-bit kernel and backwards-compatible 64-bit kernels.
|