Sun Java Solaris Communities My SDN Account Join SDN
 
Article

Migrating to Solaris 64-bit OS on SPARC: Overview

 
 

March 1999

The 64-bit Solaris operating environment is a complete 32-bit and 64-bit application and development environment supported by a 64-bit operating system. This permits maximum compatibility and interoperability for existing applications for both source and binary files. At the same time, the 64-bit Solaris operating environment overcomes the limitations of the 32-bit system, most notably by supporting a 64-bit virtual address space and removing other 32-bit system limitations.

The 64-bit Solaris operating environment is implemented on SPARC systems.

This section describes the following topics:

Overview of the 64-bit Developer Environment

SPARC: 64-bit Developer Environment

The Solaris 7 release has been designed to fully support both the 32-bit and 64-bit architectures. It provides an environment for building and running 64-bit applications that can use large files and large virtual address spaces. At the same time, this release continues to provide maximum source and binary compatibility and interoperability for 32-bit applications. In fact, most of the system commands that run and have been built on the Solaris 64-bit implementation are 32-bit programs.

64-bit Computing Performance Issues

As applications continue to become more functional and more complex, and as datasets grow in size, the address space requirements of existing applications continue to grow. Today, certain classes of applications need to exceed the 4Gbyte address space limitations of 32-bit systems. Examples include various database applications¾particularly those that perform data mining¾as well as Web caches, and Web search engines, components of CAD/CAE simulation and modeling tools, and scientific computing. The desire to make these and other large applications run efficiently has been the primary impetus for the development of 64-bit computing.

For small problem solving tasks on a 32-bit system, the entire program can fit in the data cache or the external cache. However, eventually, the data area of the program becomes large enough that the program fills the entire 4Gbyte virtual address space available to a 32-bit application.

To solve large problems on a 32-bit system, applications programmers usually by split the application data set between primary memory and secondary memory, for example, onto a disk. Unfortunately, transferring data to and from a disk drive takes longer time, in orders of magnitude, than memory-to-memory transfers.

Today, many servers can handle more than 4Gbytes of physical memory. In a 64-bit system, an application can use the 64-bit virtual address space capability to allow up to 18Ebytes to be directly addressed. Thus, larger problems can be handled directly in primary memory. If the application is multi-threaded and scalable, then more processors can be added to the system to speed up the application even further. Such applications become limited only by the amount of physical memory in the machine.
 

Applications Benefiting from Performance Improvements

For a broad class of applications, the ability to handle larger problems directly in primary memory is the major performance benefit of 64-bit machines.
  • A greater proportion of a database can live in primary memory.
  • Larger CAD/CAE models and simulations now fit in primary memory.
  • Larger scientific computing problems now fit in primary memory.
  • Web caches hold more in memory, reducing latency
Other compelling reasons why you might want to create 64-bit applications include:
  • To perform a lot of computation on 64-bit integer quantities using the wider data paths of a 64-bit processor to increase performance.
  • Arithmetic and logical operations on 64-bit quantities are more efficient.
  • Operations use full-register widths, the full-register set, and new instructions.
  • Parameter passing of 64-bit quantities is more efficient.

Large Virtual Addressing

In the 64-bit environment, a process can have up to 64-bits of virtual address space, that is, 18 exabytes. This is approximately 4 billion times the current maximum of a 32-bit process. The larger address space allows large tasks to be handled in primary memory, which can provide major performance improvements.

64-bit Scalability

Because the full 64-bit kernel can access more system resources, it provides increased scalability, allowing more applications to be placed on a single server, thus adding more capacity to existing hardware. This is very efficient and economical for a server in a distributed-server environment.

32-bit Versus 64-bit

Solaris 7 supports both 32-bit and 64-bit computing. Figure 1 illustrates the dual system architecture.
 
Figure 1     Architecture of the Solaris 7 Operating Environment

The system on the left supports only 32-bit libraries and applications atop a 32-bit kernel using 32-bit device drivers. The system on the right supports the same 32-bit applications and libraries as on the left, but also supports 64-bit libraries and applications simultaneously atop a 64-bit kernel that uses 64-bit device drivers.

For application developers, the major difference between the Solaris 64-bit and 32-bit operating system environments is the C data type model used. The 64-bit version uses the LP64 model where longs and pointers are 64-bits. All other fundamental data types remain the same as in the 32-bit implementation, which is based on the ILP32 model where ints, longs, and pointers are 32-bit quantities. For more information, see The Data Model.

Few applications really require conversion. Most applications can remain as 32-bit applications and still run on a 64-bit operating system without requiring any code changes or recompilation. In fact, 32-bit applications that do not require 64-bit capabilities should probably remain 32-bit to maximize portability.

March 1999

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.