Go to main content

Oracle® Solaris 64-bit Developer's Guide

Exit Print View

Updated: March 2019
 
 

Using This Documentation

  • Overview – Oracle Solaris 11 is a 64-bit only operating system which provides an environment to build and run 64-bit applications that can use large files and large virtual address spaces. To maintain backward compatibility, the 64-bit Oracle Solaris 11 operating system supports 32-bit applications.

    The Oracle Solaris 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.


    Note -  In this document, the term "x86" refers to 64-bit and 32-bit systems that use processors compatible with the AMD64 or Intel Xeon/Pentium product families.

      The following lists the major differences between the 32-bit and the 64-bit application development environments:

    • 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 GB 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

    • Uses dates beyond January 2038.

    Specific interoperability issues can also require code changes. For example, if your application uses files that are larger than 2 GB, 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 perform efficient 64-bit calculations or you might want to take advantage of other performance improvements that a 64-bit instruction set provides.

  • Audience – Application developers who are converting 32-bit applications to 64-bit applications and are developing 64-bit applications on Oracle Solaris 11.

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

Product Documentation Library

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

Feedback

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