Go to main content

Oracle® Solaris 64-bit Developer's Guide

Exit Print View

Updated: March 2019
Chapter 2

When to Use 64-Bit for Applications

For application developers using Oracle Solaris, the major difference between the 64-bit and 32-bit operating environments is the C data type model used. The 64-bit version uses the LP64 data model where long and pointers are 64-bit. All other fundamental data types remain the same as in the 32-bit implementation. The 32-bit implementation is based on the ILP32 data model in which int, long, and pointers are 32-bit values. For more information about these models, see Comparing 32-Bit Interfaces and 64-Bit Interfaces.

    All new applications must be developed as 64-bit applications and many of the existing 32-bit applications might require conversion to 64-bit. You might want to convert applications with the following characteristics:

  • Can benefit from more than 4 gigabytes of virtual address space

  • Are restricted by 32-bit interface limitations

  • Can benefit from full 64-bit registers to do efficient 64-bit arithmetic

  • Can benefit from the performance improvement that the 64-bit instruction set provides

  • Can benefit from the use of large file awareness

  • Must run after January 2038

  • Can benefit from the use of 64-bit time_t that can handle dates for billion years into the future

  • Read and interpret kernel memory through the use of libkvm, /dev/mem, or /dev/kmem

  • Use /proc to debug 64-bit processes

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

  • Access files from a Network Attached Storage (NAS) filer that uses file inode values greater than 32-bit