Is Oracle Solaris a 64-bit operating system?
Yes. However, you can run your 32-bit applications on the 64-bit Oracle Solaris 11 OS.
Do all my applications need to be 64-bit?
Because Oracle Solaris 11 is a 64-bit only operating system, any new application that you develop should be a 64-bit application.
Can I run the 64-bit version of the operating system on 32-bit hardware?
No. It is not possible to run the 64-bit operating system on 32-bit hardware. The 64-bit operating system requires 64-bit MMU and CPU hardware.
Do I need to change my 32-bit application if I plan to run that application on a system with the 64-bit operating system?
Most applications can remain 32-bit and still execute on 64-bit operating system without requiring code changes or recompilation. However, if you want 32-bit applications to run after January 2038 and get all the benefits of a 64-bit OS, you must convert your 32-bit applications to 64-bit applications.
If your application uses libkvm(3LIB), it must be recompiled as 64-bit, to execute on 64-bit operating system. If your application uses /proc, it might need to be recompiled as 64-bit; otherwise it cannot understand a 64-bit process. This is because the existing interfaces and data structures that describe the process are not large enough to contain the 64-bit values involved.
Can I build a 32-bit application on a system running the 64-bit operating system?
Yes. The current default compilation mode is 32-bit. However, the future releases of Oracle Solaris will have 64-bit as the default compilation mode.
Can I combine 32-bit libraries and 64-bit libraries when building and linking applications?
No. 32-bit applications must link with 32-bit libraries and 64-bit applications with 64-bit libraries. Attempts to build or link with the wrong version of a library will result in an error.
What are the sizes of floating point data types in the 64-bit implementation?
The only types that have changed are long and pointer. See Figure 1, Table 1, Data Type Sizes in Bits.
What about time_t?
The time_t type remains a long quantity. In the 64-bit environment, time_t is a 64-bit quantity. Thus, 64-bit applications will be year 2038 safe.
What is the value of uname(1) on a machine running the 64-bit Solaris operating environment?
The output of the uname -p command is unchanged.