Go to main content

Oracle® Solaris 64-bit Developer's Guide

Exit Print View

Updated: November 2020
 
 

Frequently Asked Questions (FAQs)

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.