This section provides information for system administrators who are working with systems running the 32-bit and 64-bit Solaris operating environments, both of which are available with the Solaris 7 release.
The Solaris 7 release provides the ability to run both of the following environments on a SPARC or Intel platform:
A 32-bit Solaris application and operating environment for:
Developing 64-bit applications (SPARC platforms only)
Running a large number of existing 32-bit applications
A 64-bit Solaris application and operating environment for (SPARC platforms only):
Developing 64-bit applications
Allowing new 64-bit applications to manipulate large address spaces
Running a large number of existing 32-bit applications
Currently, the only platforms capable of supporting the 64-bit Solaris 7 operating environment are systems that have an UltraSPARCTM processor. Developing 64-bit applications on other platforms or previous Solaris releases is not supported.
Systems that have an UltraSPARC processor are referred to as UltraSPARC systems for the remainder of this appendix.
No, unless you are developing 64-bit applications on a 32-bit or 64-bit Solaris 7 system or running 64-bit applications on UltraSPARC systems.
Although running 64-bit applications can have enormous advantages over running some 32-bit applications--particularly applications which are able to manipulate large address spaces, such as databases--the 32-bit Solaris application environment will continue to be the default application environment for a long time to come.
The 64-bit Solaris operating environment provides 32-bit application source and binary compatibility. The typical end-user and developer won't even be aware of the Solaris 64-bit environment.
You can develop 64-bit applications on the Solaris 7 release running on the sun4c, sun4m, sun4d, and sun4u systems. And, of course, you can run 64-bit applications on UltraSPARC systems running the Solaris 7 release.
Software selection choices include a 64-bit support option when installing the Solaris 7 release for all system types:
On UltraSPARC systems, 64-bit support is selected by default. You can override this default by deselecting the 64-bit support.
For all other systems, 32-bit support is selected by default. You can override this default by selecting 64-bit support, available in the Developer and Entire Distribution software clusters, which will provide the 64-bit Solaris libraries for developers who wish to develop 64-bit applications on 32-bit systems.
Look for the 64-bit support option during the various Solaris 7 installation scenarios:
For an initial installation using the Solaris interactive installation program, the 64-bit support option is displayed on the Software Selection screen, which prompts for the type of system software to be installed: End User, Developer, or Entire Distribution.
For an upgrade using the Solaris interactive installation program, the 64-bit support option is displayed on the Customize Software screen that appears prior to the start of the software upgrade.
For an initial installation using Solaris Web Start, the 64-bit support option is displayed on the Configure Solaris screen, which is found after pressing the Custom Install button.
For an initial installation or upgrade using the custom JumpStartTM technology, 32-bit or 64-bit support can be selected using the profile. Add one of the following keyword value pairs to the profile:
isa_bits 32
isa_bits 64
Currently, the only platform capable of supporting the 64-bit Solaris operating environment is an UltraSPARC system. You can verify whether a system is an UltraSPARC system by using the following command:
$ uname -m sun4u |
If the output of the uname -m command is sun4u, then the machine is an UltraSPARC system.
If you are running the Solaris 7 release, you can verify this by using the psrinfo command:
# psrinfo -v Status of processor 0 as of: 02/10/98 14:25:55 Processor has been on-line since 01/30/98 15:10:29. The sparcv9 processor operates at 168 MHz, and has a sparcv9 floating point processor. Status of processor 1 as of: 02/10/98 14:25:55 Processor has been on-line since 01/30/98 15:10:33. The sparcv9 processor operates at 168 MHz, and has a sparcv9 floating point processor. |
If the processor type is sparcv9, the platform is capable of running the 64-bit Solaris operating environment. This test does not work on previous versions of the psrinfo command, where all platforms report the less precise sparc as the processor type.
The basic 64-bit Solaris operating environment looks unchanged from the previous 32-bit environment. You can use a new command to determine whether a system has 64-bit capabilities enabled, which means the system is booted with the 64-bit kernel.
The isainfo(1) command, (for instruction set architecture information), has two functions:
It describes the supported applications of the running system (the isainfo -v command).
It reports the number of bits supported by native applications on the running system, which can be passed as a token to scripts (the isainfo -b command).
An UltraSPARC system running a 32-bit kernel looks like this:
$ isainfo -v 32-bit sparc applications |
The output means this system is capable of supporting only 32-bit applications.
An UltraSPARC system running a 64-bit kernel looks like this:
$ isainfo -v 64-bit sparcv9 applications 32-bit sparc applications |
This output means this system is capable of supporting both 32-bit and 64-bit applications.
Use the isainfo -b command to display the number of bits supported by native applications on the running system.
The output from a SPARC, Intel, or UltraSPARC system running the 32-bit Solaris operating environment looks like this:
$ isainfo -b 32 |
The output from a 64-bit UltraSPARC system running the 64-bit Solaris operating environment looks like:
$ isainfo -b 64 |
The command returns 64 only. Even though a 64-bit UltraSPARC system is capable of running both types of applications, 64-bit applications are the best kind of applications to run on a 64-bit system.
The uname -p output remains sparc or i386 to ensure that existing 32-bit applications continue to run without interruption.
You probably run applications in the 64-bit Solaris environment no differently than in the 32-bit Solaris environment.
A user's PATH environment variable does not need to change to use a 64-bit Solaris system. Although most system utilities remain 32-bit applications, some are available in 64-bit versions. The 64-bit command versions are automatically invoked by a command wrapper program that transparently starts the correct version of the command based upon the capabilities of the running system.
Other issues to keep in mind when running applications in the 64-bit Solaris operating environment:
If a 32-bit application reads kernel memory, it needs to be compiled as a 64-bit program because the kernel is now a 64-bit program.
If a 32-bit program uses the /proc file system to look at other processes, it may need to be converted to a 64-bit program to understand the extended capabilities of 64-bit processes.
If you intend to run 64-bit applications that require large virtual address spaces, you may need to add more swap space to the system.
System administrators should be certain that they have the correct device drivers available for their 64-bit Solaris systems by following these steps:
Verify whether the UltraSPARC system needs a firmware upgrade to boot the 64-bit Solaris kernel. See your hardware manufacturer's documentation to determine whether your UltraSPARC system needs a firmware upgrade.
Select the 64-bit Solaris packages during installation.
Boot the 64-bit Solaris operating environment.
Another important administration issue is making sure your third-party device drivers are available in 64-bit versions; otherwise you probably won't be able to run the 64-bit Solaris environment until they are available in 64-bit versions.
If you are running 64-bit applications, you may need to customize your LD_LIBRARY_PATH environment variable as follows:
Set the new environment variable, LD_LIBRARY_PATH_64, like LD_LIBRARY_PATH, except that it can only be referenced by 64-bit applications.
Set the LD_LIBRARY_PATH variable to allow applications to reference a combination of both 32-bit and 64-bit libraries.
No, but you shouldn't have to boot them differently. The 64-bit Solaris 7 kernel is booted by default if it is installed on an UltraSPARC system. If it isn't installed, the 32-bit kernel is booted instead.
Also, on UltraSPARC systems, kadb and various boot programs are now 64-bit programs that can boot either a 32-bit or 64-bit kernel.
If you have problems booting either system type, see the next section.
After the 64-bit Solaris release is installed on an UltraSPARC system, the 64-bit kernel will be booted automatically unless any of the following conditions are true:
A FLASH PROM upgrade may be required on an UltraSPARC system before it can successfully boot the 64-bit kernel. Refer to your hardware manufacturer's documentation to determine whether your UltraSPARC system requires a firmware upgrade.
The Open Boot PROM boot-file parameter is set to kernel/unix. If booting the 64-bit kernel fails and this parameter is set, unset it, and reboot the system.
On some UltraSPARC systems, the 64-bit Solaris kernel is not booted by default, even when the system is completely installed with all the 64-bit Solaris components and the correct firmware is installed. Without booting the 64-bit Solaris kernel, 64-bit applications are unable to run.
To find out more about this issue, and how to enable booting the 64-bit Solaris kernel by default, see boot(1m) and Solaris 7 (SPARC Platform Edition) Release Notes.
You can always discover which Solaris kernel the system is currently running by using the isainfo -kv command.
$ isainfo -kv 64-bit sparcv9 kernel modules |
This output means the system is running the 64-bit Solaris kernel.
You cannot boot the 64-bit Solaris operating environment on a 32-bit Solaris system.
Certain Solaris 7 system packages provide both 32-bit and 64-bit versions. For example:
The SUNWcsl package contains core 32-bit Solaris shared libraries.
The SUNWcslx package contains the Solaris 64-bit versions of the core shared libraries.
You can add 64-bit application tools (64-bit shared libraries) to 32-bit platforms if you want to develop 64-bit applications on a 32-bit system.
System administrators can use a new variable, NATISA, which corresponds to the output of the isainfo -n command, in automounter maps. You can set this variable to allow different parts of a directory hierarchy to be mounted on the system depending on whether the system supports 32-bit or 64-bit native applications.
For example, the following map entry allows a client to mount either /export/sparc/bin or /export/sparcv9/bin depending on whether 64-bit applications are supported on that system.
/export/bin server:/export/$NATISA/bin -ro |
See automount(1m) for more information.