Professor Windows - March 2005

Professor Windows

Written By:
Professor Windows and Amit Marlov, Windows XP Regional Director, Microsoft Israel

Reviewed By:
Brian Marr, Senior Product Manager, Microsoft Corporation and Brian Shafer, Project Manager, Microsoft Corporation


It is a known fact that software advances in the footsteps of hardware. As a variety of 64-bit (x64) hardware is getting more and more available, we're getting close to a new breed of Windows - The Windows x64 family.

64-bit Windows is aimed at technical computing, focusing at mathematical applications, medical applications, gamers and more. Windows XP Professional x64 Edition currently supports up to 32 GB of RAM, with the potential to support up to 16 terabytes of virtual memory as hardware capabilities and memory sizes grow. These amazing performance leaps are worth getting ready for x64 editions of Windows, today.

This article will focus primarily on Windows XP Professional x64 Edition.

What's in Windows XP Professional x64 Edition

64-bit means 64-bit CPU registers -- this makes quite a difference when implementing SIMD (Single instruction multiple data). In fact this means much greater performance with less utilization.

The following table outlines the memory space advantage of 64-bit Windows:

Memory Space Advantage of 64-bit Windows

Fig. 1: Memory Space Advantage of 64-Bit Windows
See full-sized image

As for graphics, games in the 64-bit world are much better than in the 32-bit equivalent. 64-bit opens the opportunity for game developers to create newer and better versions of their games with more objects per scene.

For example, figure 2 display the 32-bit version of a game, and figure 3 displays the optimized 64-bit version of the same game (by allowing more objects per scene), creating higher levels of realism.

32 Bit

Fig. 2: 32 Bit
See full-sized image

64 Bit

Fig. 3: 64 Bit
See full-sized image

Windows x64 Editions are architected to provide a "rock solid land" for 64-bit applications while being fully backward compatible with most 32-bit applications. As for the 64-bit hardware, it can run on all 32-bit operating systems.

Windows XP Professional x64 Edition (which will be available in the second quarter of 2005, at the time of this writing) runs on x64 processors (not on Itanium), such as AMD Opteron and Athlon64 or Intel Xeon with EM64T and Intel Pentium 4 with EM64T.

Same Look, Different Feel

Don't worry about needing to learn a new flavor of Windows. Windows x64 Editions have the same user interface, the same administrative tools and management tools, the same installation and troubleshooting methods, and so on. This means that companies won't have to consume their IT budget for training their IT staff for the upcoming new breed of Windows.

In addition, Windows XP Professional x64 Edition includes all Windows XP Service Pack 2 (SP2) advanced security technologies.

Windows XP Service Pack 2 (SP2) advanced security technologies

Fig. 4: Windows XP Service Pack 2 (SP2) advanced security technologies

One of the most important SP2 features is the Windows firewall, which is enabled by default - implementing boot time security, management via group policy on two profiles: domain profile and standard profile - this means that network administrators can easily control the user's behavior while being in and outside of the office.

Most importantly, 64-bit hardware has introduced a new technology: the NX (No execute) technology. NX technology is a joint venture of a hardware mechanism and a software mechanism. It is by far the best defense with respect to buffer overruns. AMD calls this technology Enhanced Virus Protection while Intel refers to this functionality as the Execute Disable Bit. Intel has been shipping Execute Disable Bit-enabled Itanium processors since 2001 and will enable its desktop and server processor families in the first quarter of 2005 (at the time of this writing).

IMPORTANT: Although thousands of devices are supported on the installation CD, the device drivers you have for 32-bit Windows will NOT work on the Windows XP Professional x64 Edition. You must find drivers built specifically for Windows x64 Editions. Some drivers will be available through Windows Update . We recommend you visit your OEM's web site and check for the availability of proper device drivers. Note that some applications with drivers included may not work. Please see the resource links at the end of this article for useful links to Windows x64 device drivers.

Bottom line, you get greater flexibility when using CPU and memory intensive applications.

Working with Applications in Windows 64-Bit

As you might have figured out by now, to run Win-32 based applications on 64-bit Windows you need to use an emulation layer and with Windows x64 Editions (even though a 32-bit process can't load a 64-bit DLL and a 64-bit process can't load a 32-bit DLL). The support for remote procedure call (RPC) allows communication between 64-bit and 32-bit processes. There are some other limitations as well - for example, if you try to run a 16-bit application in 64-bit Windows you will receive an error, due to handles having 32 significant bits in 64-bit Windows, thus you can't pass them to 16-bit Windows without losing data on the way.

Most Win32-based applications can run smoothly on Windows x64 Editions with the help of the x86 emulator, also known as WOW64. The system totally isolates 32-bit and 64-bit applications, so there is no file or registry collisions occurring between them. Users can cut and paste between the two transparently. However, don't be misled about the purpose of WOW64 - which is to provide seamless interoperability between the 32-bit and 64-bit boundaries by allowing us to run 32-bit applications in 64-bit Windows. In other words, it is not meant to necessarily run 32-bit server applications. Server applications such as SQL Server 2000 have their 64-bit edition (see links at the end of this article).

You may need to update your applications that run in kernel mode (such as Virus Protection applications) due to applications containing 16-bit code, even though they are considered to be 32-bit applications. It is recommended that you check your OEM's web site for updated software for x64 editions.

A Note for Developers

I have worked in the past at a software development company that had to port a 16-bit application to 32-bit. For you out there who share this experience, I can gladly say that porting 32-bit applications to 64-bit is much easier. Microsoft offers several tips to ensure that your transition from 32-bit to 64-bit go as smooth as possible. Check out the Getting Ready for 64-bit Windows article.

As mentioned in the previous section, you can't run 16-bit legacy Windows applications on Windows x64 Editions. You will have to rewrite those applications. Keep in mind that some 32-bit applications may have 16-bit code and won't run on Windows x64 Editions. In most cases the 16-bit code is in the installers and you may need to update your applications.

Note that when you compile your 32-bit code with a 64-bit compiler, you may experience some warnings and errors. Although possible, it is not recommended that you port only portions of your 32-bit code to 64-bit. Test your code thoroughly and avoid cutting corners to gain temporary benefits.

You should decide whether you plan to use 32-bit test tools or 64-bit. Most developers will settle for a combination of the two. Test your 32-bit and 64-bit COM and RPC components to make sure they are communicating properly. To test the 32-bit components, first recompile the code to 64-bit. Run the code and fix any problems that may exist. Then recompile in 32-bits and test again. Finally, recompile to 64-bit and test your code again.

Where can I Learn More?

Here are some links that you can use for more information.

For device drivers, see:

NOTE: The third-party web sites above are not sponsored by Microsoft Corporation.

For a list and additional information on all Professor Windows columns, click here .

For any feedback regarding the content of this column, please write to Microsoft TechNet . Please be aware that this is not a support alias and a response is not guaranteed.