Go to main content

Oracle® Solaris 64-bit Developer's Guide

Exit Print View

Updated: March 2019

Using This Documentation

  • Overview – For application developers who are converting 32-bit applications to 64-bit and developing 64-bit applications on Oracle Solaris. It describes the 32-bit and 64-bit application environments and describes some of the utilities and commands available for developing 64-bit applications.

    Oracle Solaris 11.3 is a 64-bit only operating system and provides an environment to build and run 64-bit applications that can use large files and large virtual address spaces. At the same time, to maintain backward compatibility, this release supports 32-bit applications.

    The Oracle Solaris OS supports systems that use the SPARC and x86 families of processor architectures: UltraSPARC, SPARC64, AMD64, Pentium, and Xeon EM64T. For a list of all the supported systems, see Oracle Solaris Hardware Compatibility List.

      The major differences between the 32-bit and the 64-bit application development environments are as follows.

    • 32-bit applications are based on the ILP32 data model, where int, long, and pointers are 32-bit.

    • 64-bit applications are based on the LP64 data model, where long and pointers are 64 bits and the other fundamental types are the same as in ILP32 data model.

    • In a 64-bit development environment, the large file interface is no longer required. The large file interface enables 32-bit programs to handle files that are larger than 2GB.

    • 32-bit time_t can only handle dates up to January 2038. However 64-bit time_t can handle dates for billion years into the future.

      You might want to convert your application from 32-bit to 64-bit if your application has one or more of the following requirements:

    • Needs more than 4 gigabytes of virtual address space

    • Reads and interprets kernel memory through use of the libkvm library, and /dev/mem, or /dev/kmem files

    • Uses the /proc interface to debug 64-bit processes

    • Uses a library that has only a 64-bit version

    • Needs full 64-bit registers to do efficient 64-bit arithmetic

    • Use dates beyond January 2038

    Specific interoperability issues can also require code changes. For example, if your application uses files that are larger than 2 gigabytes, you might want to convert the application to 64-bit.

    In some cases, you might want to convert applications to 64-bit for performance reasons. For example, you might need the 64-bit registers to do efficient 64-bit arithmetic or you might want to take advantage of other performance improvements that a 64-bit instruction set provides.

    Note -  In this document the term "x86" refers to 64-bit and 32-bit systems manufactured using processors compatible with the AMD64 or Intel Xeon/Pentium product families.
  • Audience – Application developers who intend to convert 32-bit applications to 64-bit applications and develop 64-bit applications on Oracle Solaris 11 and later versions.

  • Required knowledge – Experience in developing applications in C and an understanding of the 32-bit and the 64-bit architectures.

Product Documentation Library

Documentation and resources for this product and related products are available at http://www.oracle.com/pls/topic/lookup?ctx=E53394-01.


Provide feedback about this documentation at http://www.oracle.com/goto/docfeedback.