Solaris Operating System

64-bit Computing Technical FAQ

64-bit general


Q:
What are the major components of a 64-bit operating system?
A:
There are three areas which distinguish a 64-bit operating system from a 32-bit operating system.
  • Extended Precision
  • Large Dataset Support
  • Large Virtual Address Space

Back to Top


Q:
What is Sun doing about these areas?
A:
Sun has implemented its 64-bit operating system in phases. The Solaris 2.5 Operating Environment provided support for increased precision with 64-bit math and also included support for 64-bit asynchronous I/O. The Solaris 2.6 Operating Environment added support for large datasets with large (1 Terabyte) filesystems while allowing co-existence of 32-bit and 64-bit files. Beginning with the Solaris 7 Operating Environment, Sun introduced support for large virtual address spaces with a full 64-bit operating system. Sun began shipping 64-bit hardware in 1995. By phasing in operating system support for 64-bits Sun has provided 64-bit features as the market has demanded them while guaranteeing compatibility for existing 32-bit applications.

Back to Top


Q:
Does the Solaris Operating System support binary compatibility with previous releases?
A:
Yes. 32-bit applications will run without modification on the Solaris Operating System. Customers will not be forced to convert their 32-bit applications to 64-bit, but can do so when they are ready. In addition, 32-bit applications run at full hardware speed on 64-bit UltraSPARC® processors.

Back to Top


Q:
What is the data model used for the Solaris Operating System?
A:
LP64 is the de facto industry standard. The L represents long and the P represents pointer. Both are 64-bit, whereas int is 32-bit.

Back to Top


Q:
Is the Solaris Operating System exclusively a 64-bit Operating System?
A:
The Solaris Operating System supports both 32-bit and 64-bit hardware. Customers with 32-bit hardware can run the Solaris Operating System and take advantage of the many features in the Solaris Operating System that are not explicitly related to 64-bits (e.g., dynamic reconfiguration, scalability enhancements, performance improvements). Customers can run a 32-bit application on 64- or 32-bit hardware with the Solaris Operating System without any change to the application.

Back to Top


Q:
When a customer upgrades from a 32-bit Solaris Operating System to the Solaris Operating System in 64-bit mode, will they have to reload or reformat their data?
A:
There has been no change to the on-disk filesystem format. All data accessible before the upgrade will be accessible afterwards.

Back to Top


Q:
To which standards does the Solaris Operating System conform?
A:
Some of the standards the Solaris Operating System conforms to are:
  • ANSI/IEEE P1003.1-1996 (POSIX system calls and libraries) and P1003.2 (POSIX commands)
  • Federal Information Processing Standard, FIPS-151-2 (P1003.1 plus Federal interpretations) and FIPS-189
  • X/Open Portability Guide release 4 (XPG4) and UNIX95 of XPG4 specifications
  • LP64 industry de facto standard 64-bit data model
  • UNIX98
For more explicit information, please see the system documentation.

Back to Top

64-bit Developer Environment/Compilers


Q:
What languages support 64-bit?
A:
ANSI C, K&R C, ANSI C++, FORTRAN 77, FORTRAN 90

Back to Top


Q:
What debugger supports 64-bit?
A:
The dbx debugger supports 64-bits, which is part of the Sun ONE Studio, Compiler Collection.

Back to Top


Q:
What tools exist to help me move to the Solaris Operating System?
A:
The Solaris Operating System documentation provides the information you need to facilitate your transition of source code to 32-bit or 64-bit.

Back to Top


Q:
What tools exist to help in converting 32-bit code to 64-bit code?
A:
The C compiler/lint provides an option "-errchk=longptr64" that can be used to detect 64-bit data model coding problems. This functionality is available in all versions of the SPARCompiler suite from 4.2 onwards.

Back to Top


Q:
Can I develop 64-bit applications in a 32-bit environment?
A:
Yes, as long as you're running the Solaris Operating System with the appropriate OS packages installed (header files and libraries), you can compile and link 64-bit libraries. However, you cannot execute 64-bit applications in a 32-bit environment. Execution and debugging of 64-bit binaries requires you to be running the Solaris Operating System in the 64-bit mode.

Back to Top


Q:
Can I develop and run 32-bit applications in a 64-bit environment?
A:
Yes, if you compile your applications without using -xarch=v9 flag, your application will run on the the Solaris Operating System in 32-bit mode.

Back to Top


Q:
Can I generate two binaries (one 32-bit and one 64-bit) from a single source file?
A:
Yes. The Solaris compilers have compile-time flags that can create a resulting object file that is 32-bit or 64-bit. Both the 32-bit and the 64-bit portions of the system, including the kernel and libraries, are built from the same source files. 64-bit specific code in the header files and source files are defined using #ifdef as appropriate to support the single source file for both 32-bit and 64-bit.

Back to Top