Sun Java Solaris Communities My SDN Account Join SDN

Article

Should I Move My Application to 64-Bit Solaris OS?

 
By Milan Thanawala, August 2002  

With the phased release of the Solaris operating environment with 64 bits, Sun is preparing to move to a full 64-bit computing environment. At the same time, Sun understands the large investment that developers and users have made in 32-bit computing. For this reason, Sun offers a safe and easy evolutionary path for Solaris users to this new, more powerful environment. The 64-bit environment preserves the investments made in the 32-bit world by providing binary compatibility with 32-bit applications.

If your application falls into one of the following areas, you can achieve significant benefits from moving your application to the Solaris operating environment with 64-bits:

  • CAD/CAM
  • Computer simulations
  • Data warehousing
  • Visual monitoring: petrochemicals, air traffic control, meteorology
  • Development tools
  • Web servers
  • Search engines
  • Multimedia

The Advantages of 64-bit Computing

The ever-increasing complexity of applications makes 64-bit computing more compelling than ever. A 64-bit computing environment provides an address space more than four billion times the size of the current 32-bit environment. This affords many advantages to the developer creating high-end applications. Among these advantages are:

  • Faster operations. With wider CPU operations, one instruction can handle operations that would otherwise require multiple instructions.

  • More addressable memory. A 64-bit machine can address more memory directly, enabling the CPU to bring more data into memory for faster operations. The Solaris operating environment with 64 bits supports 18 Exabytes of virtual address space per application.

  • Very Large file sizes. In a 64-bit environment, applications can work on files well in excess of the two-gigabyte maximum of the 32-bit environment. The Solaris operating environment with 64 bits supports file sizes up to one terabyte.

  • Improved disk management. The ability to handle large files means that larger amounts of data can be accessed as a single file, rather than needing to break the file down into two-gigabyte pieces.

  • 32-bit compatibility. Users can run 32-bit applications without modification. Thus, customers can gradually evolve their applications to the Solaris operating environment with 64 bits at the pace required by their information processing needs. Customers who don't need 64-bit capabilities can continue to use 32-bit applications on 64-bit hardware.

  • API support. The Solaris operating environment with 64 bits supports the existing set of 32-bit APIs, including the Large File APIs that allow 32-bit applications to access 64-bit files.

  • A long future. The 64-bit environment is here to stay. Applications developed for this environment have a long and prosperous future ahead of them, since there is no transition to a 128-bit environment on the horizon.

Technical Details -- LP64 Data Model

The main difference between the 32-bit and 64-bit Solaris environments is the structure of the C data type model. Along with Sun, a consortium of companies that includes Digital, Hewlett-Packard, IBM, Novell, SCO, and SGI have agreed to use the data model called LP64 for 64-bit application C data types. In LP64, longs and pointers become 64-bit quantities, while all other C data types remain the same as in the ILP32 model. The following table summarizes the values for the two data models.

Table 1: Data Model Summary
C Data Type ILP32 ILP64
char 8 8
short 16 16
int 32 32
long 32 64
long long 64 64
pointer 32 64

Many of the issues involved with converting 32-bit applications to the 64-bit environment will revolve around applications recognizing the change in quantity of longs and pointers.

Back to Top


Converting Applications to a 64-bit Environment

Many 32-bit applications do not require conversion and can run in the 64-bit environment without any code changes or recompilation. Put simply, if a 32-bit application does not require 64-bit capabilities, it can remain at 32 bits.

When to Make the Move to 64 Bits

Many types of applications can take advantage of the extra processing power offered by the 64-bit environment -- particularly very large databases and sophisticated graphics applications. The "data warehouse" concept consolidates databases into a single data warehouse entity, which could easily grow beyond two gigabytes, for running complex analyses. High-resolution graphics programs also realize improved performance with the larger memory addressing capability of the 64-bit environment.

In general, you should move your application to the 64-bit environment if it:

  • Requires more than four gigabytes of virtual address space.
  • Uses files larger than two gigabytes. If the use of large files is the only requirement, the application can remain 32-bit and use the Large Files interface. However, conversion is recommended to make best use of 64-bit capabilities.
  • Reads and interprets kernel memory using libkvm, /dev/mem, or /dev/kmem. Existing ILP32 binaries that use libkvm, /dev/mem, or /dev/kmem will not work, since the Solaris kernel uses LP64 data structures. These programs will need to be recompiled as 64-bit programs.
  • Uses /proc to debug 64-bit processes. 32-bit programs that use /proc will not understand 64-bit quantities and will need to be recompiled as 64-bit programs.
  • Needs full 64-bit registers to do efficient 64-bit arithmetic.
  • Uses a library that has only a 64-bit version.

The Solaris operating environment with 64 bits will provide 32-bit and 64-bit versions of standard libraries, and 64-bit versions of all Sun device drivers. Current third-party device drivers, compiled as ILP32 binaries, will not work with the Solaris operating environment with 64 bits, which means that 32-bit and 64-bit applications that rely on these device drivers will not work. The road to the Solaris operating environment with 64 bits includes a partner program to develop third-party device drivers and libraries for the 64-bit environment. Other interoperability issues may also require converting an application to run properly in the 64-bit environment.

The Solaris Operating Environment Roadmap

The road to a full 64-bit Solaris operating environment involves a phased release of functionality to ensure a smooth transition for all Sun customers. In this way, customers can preserve their investment in 32-bit computing and move to the 64-bit environment at their own pace. At the same time, 32-bit Solaris operating environment will continue to be released on 64-bit hardware for customers who do not need 64-bit capabilities.

The Solaris roadmap involves the following releases:

  • The Solaris 2.5.1 operating environment: Synchronous and asynchronous I/O to raw disks for data sizes larger than two gigabytes; also includes 64-bit math enhancements.
  • The Solaris 2.6 operating environment: Creation of 64-bit files; 64-bit printing; 64-bit system commands; and 64-bit backup.
  • The Solaris operating environment with 64 bits: the Solaris operating environment with 64-bit virtual addressing.

Sun is the only company offering a 64-bit environment that provides asmooth migration path for customers, preserving their investments and paving the way for the next generation of computing.

August 2000

Back to Top

Rate and Review
Tell us what you think of the content of this page.
Excellent   Good   Fair   Poor  
Comments:
Your email address (no reply is possible without an address):
Sun Privacy Policy

Note: We are not able to respond to all submitted comments.