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 EnvironmentSPARC: 64-bit Developer EnvironmentThe 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 IssuesAs 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 ImprovementsFor a broad class of applications, the ability to handle larger problems directly in primary memory is the major performance benefit of 64-bit machines.
Large Virtual AddressingIn 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 ScalabilityBecause 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-bitSolaris 7 supports both 32-bit and 64-bit computing. Figure 1 illustrates the dual system architecture.![]() 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 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 | ||||||||
|
| ||||||||||||