64-bit generalQ: 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.
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.
In Solaris 10 for x86, Sun is applying the experience gained in implementing the 64 bit OS on the SPARC platform to the new 64 bit x86 CPUs, Opteron from AMD and Nocona from Intel. Built from the single Solaris source code base, the 64 bit kernel on x86 architecture offers the same set of features and APIS as are found on the SPARC version. 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. In addition, 32 bit Solaris applications will run in a 64 bit environment (on the same
CPU family) without any performance penalty. Further, x86 applications which are limited to run in a maximum of 3.5GB (4GB less kernel overhead) in a 32 bit environment can now benefit from a full 4GB memory space when run under a 64 bit kernel.
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.
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.
Note that Solaris for x86, prior to Solaris 10, supports only a 32 bit kernel. 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.
Q: To which standards does the Solaris Operating System conform?
A:
Some of the standards the Solaris Operating System conforms to are:
64-bit Developer Environment/CompilersQ: What languages support 64-bit?
A:
ANSI C, K&R C, ANSI C++, FORTRAN 77, FORTRAN 90
Q: What debugger supports 64-bit?
A:
The dbx debugger supports 64-bits, which is part of the Sun ONE Studio, Compiler Collection.
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. Read more in an
overview on moving to 64 bit.
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.
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.
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.
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.
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||