One of the strongest driving forces behind the rising interest in the new generation of 64-bit processors is Microsoft's whole-hearted embrace of the platform. Microsoft has supported the Itanium processor since its release and has recently extended its 64-bit support to include the x64 platform. Because the support and capabilities of Microsoft's two 64-bit OSs differ significantly, I want to take a higher-level look at the primary differences between the two 64-bit Windows OSs.

Windows Server 2003 for 64-Bit Itanium-based Systems. Microsoft has supported the 64-bit Itanium system since its release in 2000. Windows XP 64-Bit Edition and Windows Server 2003 for 64-Bit Itanium-based Systems are native 64-bit OSs that run 64-bit applications expressly compiled for the Itanium processor. The Itanium-based version of Windows can also run 32-bit x86 applications, However, it does so in emulation mode, which results in a significant performance penalty for those 32-bit applications.

Because Windows 2003 for 64-Bit Itanium-based Systems uses a completely different instruction set and binary format, porting 32-bit code to the OS isn't a simple recompile. The end result is that Windows 2003 for 64-Bit Itanium-based Systems isn't fully feature-compatible with the 32-bit bit versions of Windows. The essential features are present in the Windows XP 64-Bit OS, but several accessories—such as DVD playback, CD recording, Windows Media Player (WMP), NetMeeting, and fax support—are missing. Other missing features include support for the 16-bit, OS/2, and POSIX subsystems; Fast User Switching; Remote Assistance; Windows Messenger, Windows Installer, and (thankfully) Windows Product Activation. The list of missing features in Windows 2003 for 64-Bit Itanium-based Systems includes support for the 16-bit subsystem, DVD playback, Hot Add Memory, Internet Connection Sharing (ICS), Internet Connection Firewall (ICF), IPX networking, the Microsoft .NET Framework, NetMeeting, Remote Assistance, WMP, Windows Media Services (WMS), and Windows Product Activation.

Although some ancillary Windows features are missing, the performance and scalability capabilities of the Itanium2 platform and Windows 2003 for 64-Bit Itanium-based Systems are well established. At various times, the Itanium2 running on 64-bit Windows with 64-bit Microsoft SQL Server has held the top TPC-C benchmark position. And although it was recently ousted from that spot by IBM's Power5 processor running on AIX, Itanium on 64-bit Windows still holds five of the top 10 nonclustered TPC-C results.

Windows Server 2003 for 64-Bit Extended Systems. Although Microsoft was slow to support the x86-64 platform, in early 2004—almost 1 year after AMD released the first 64-bit Opteron systems—Microsoft released Windows Server 2003 for 64-Bit Extended Systems. Unlike Windows 2003 for 64-Bit Itanium-based Systems, Windows 2003 for 64-Bit Extended Systems is completely feature-compatible with the 32-bit version of Windows 2003. The close binary compatibility and 64-bit instruction sets made porting code to the x64 platform a much easier task than porting code to the Itanium system. Currently, Windows 2003 for 64-Bit Extended Systems is released as Customer Preview code, and the Release To Manufacturing (RTM) version is expected in the first half of 2005. The Windows 2003 for 64-Bit Extended Systems Customer Preview Program (CPP) version will run on both the AMD Opteron and Athlon 64 processors, as well as the 64-bit Intel EM64T Xeon processor. It doesn't run on Intel Itanium systems. To date, the scalability of the x64 platform has yet to be established. However, the strength of the platform lies in its versatility and its ability to run 32-bit and 64-bit applications side-by-side with no loss of efficiency.

One notable feature of Windows 2003 for 64-Bit Extended Systems that works only with the x64 architecture is its new Data Execution Prevention (DEP) capability. To put an end to buffer-overflow exploits, the Windows kernel has been recompiled using the No Execute (NX) flag, which the x64 processor supports. The NX flag essentially enables the OS to mark memory as either executable or nonexecutable, thereby preventing malware and viruses such as MSBlaster from taking advantage of buffer-overflow exploits and running in memory areas designated as nonexecutable. Although Windows 2003 for 64-Bit Extended Systems will provide native 64-bit OS support, the one missing piece is native 64-bit device drivers. Microsoft is encouraging hardware vendors to develop drivers as rapidly as possible, but we'll have to wait a while before we see an acceptable level of native 64-bit drivers available for the new 64-bit OS.