Sixty-four is the square of 8, the cube of 4, and the sixth power of 2. It is the smallest number with exactly seven divisors. It is also the only flavor we're going to see Windows Server in, starting with the next major version after Windows Server 2008. Windows Small Business Server Codename "Cougar" will be the first Windows Server to be available 64-bit only if it doesn't get beaten to the punch by Windows Server Codename "Centro".
Microsoft is embracing (and extending, of course) the extra 'elbow room' the new processor technology is offering. New features can be made available that were deemed too hardware-demanding a couple of years ago. These features might even be considered feasible since the Microsoft teams won't have to work on 32-bit and 64-bit versions of their code. Perhaps next versions of Windows Server won't have dropped or delayed features anymore...
This vision also introduces a couple of problems. I'll discuss these problems from my point of view and conclude with what I think this means for consumers, administrators, companies and hardware vendors and software vendors.
Back in 1986 (I was a little boy back then) Intel introduced the (80)386 processor, which was the first 32-bit processor. It also was the first x86 processor with paging translation support which allowed people to implement operating systems which used virtual memory. The (80)386 processor offered 32-bit protected mode, which allows the use of these new features in an all 32-bit design. the processor also offered 'real mode' that could be used to run old applications.
The (80)386 processor marked a transition period that resembles the transition period we might soon find ourselves in. Some applications then were written for 16-bit or written for real mode, attempting to directly manipulate hardware or memory locations They could not be run in Virtual mode, which meant you had to dual-boot or run several machines.
Microsoft gave us the NTVDM (NT Virtual DOS Machine) and WoW (Windows on Windows) technology to allow us to run 16-bit (protected mode) application within our Windows 32-bits (protected mode) Operating Systems. This works well (especially if you specify the Run in Separate Memory Space option) accept for the same 16-bit applications that attempt to directly manipulate hardware of memory locations.
Windows on Windows 64-bits (WoW64)
Windows on Windows is not a new concept. I first encountered (problems with) it on an old Windows NT 3.51 Server that was merely standing at a customer to serve a little (financial) application. Microsoft Windows Server 2003 x64 and Windows XP Professional 64-bit also have Windows on Windows onboard. This is not the version we know from our 32-bit Operating Systems, which allowed us to run 16-bit applications. This version allows us to run 32-bit application in our 64-bit environments.
Since 32-bit applications by default use Protected Mode (which means they don't attempt to make direct hardware or memory calls) most 32-bit application can be run in 64-bit Operating Systems. There are exceptions.
Windows on Windows offers backward compatibility with one previous architecture only. Windows on Windows in 32-bit Operating Systems can run (some) 16-bit applications and Windows on Windows in 64-bit Operating Systems can run 32-bit applications. The drawback is you cannot run any 16-bit applications on Microsoft's 64-bit Operating Systems.
End of the line for 16-bits
An inevitable question comes to mind: Does this mean the end for 16-bit applications? It definitely means 16-bit applications won't be available anymore on production Windows Servers when the 64-bit roadmap completes. Microsoft might just release 32-bit Windows Servers for test purposes (just like they did with Microsoft Exchange Server 2007) but these might not include the Windows on Windows 32-bit code. Another method of offering die hard 16-bit applications might be to offer them on a 32-bit Windows Server 2008 box. Somewhere in the year 2018 there's a date that will become known as the definite end to 16-bit Windows application support. (depending on the release schedule for Windows Server 2008)
Besides the impact of Microsoft's adoption of 64 bits there are also a couple of barriers. I think these barriers stand in the way of broad and rapid adoption of the new technology.
Right now there is no way to run 64-bit editions of Windows Operating Systems within Microsoft's Virtual PC or Windows Virtual Server products. Yes, You can install a 64-bit version of Virtual PC or Virtual Server on your 64-bit Windows Server, ('the host' in virtualization terms) but you can not install a 64-bit Operating System as a Virtual Machine ('the guest') in the current releases of Virtual PC (2007) or Virtual Server (2005 R2).
If you want to play with 64-bit Windows guests, than VMWare is your best choice. (for now)
Eco system support
Another critical success factor for 64-bit Windows Operating System is the effort Microsoft's eco system puts in it. The professional part of Microsoft's eco system consists of hardware vendors, software vendors, resellers, and other partners.
A common problem with new Windows releases is the lack of (good) drivers.
While this doesn't sound as a big issue, it increasingly is. Since the release of Windows XP Professional 64-bit consumers have rapidly adopted 64-bit, but numerous stories of non-functional consumer hardware spoiled this new consumer experience. Consumers devoted to 64-bit computing might not sound as a large group of customers right now, but low DRAM prices lead to more and more people adding large amounts of RAM in their machines. The 32-bit version of Windows Vista only addresses 3,5 GB. If you want to use 4 GB RAM (or more) you need to install a 64-bit version of Windows Vista. 4 G's of RAM doesn't sound as much RAM these days, does it?
One of the caveats of 64-bit Windows is the inability to use 32-bit drivers. Every driver for Windows Server 2003 64-bit and Windows XP Professional 64-bit needs to be written in native 64-bit and since Windows Vista 64-bit drivers need to be digitally signed. Failure to comply or the absence of a driver results in the inability to use the device. Of course Windows 64-bit comes with a lot of drivers, but there will always be devices without suitable drivers. When in doubt about drivers just look up a suitable device in the Hardware Compatibility List (HCL).
Another issue with 64-bit Windows boxes is the lack of software in some areas. While you can run most 32-bit applications within Windows on Windows, some applications won't perform as well as you would expect in contrast with the 32-bit version of Windows. Games using Hardware Acceleration technologies like OpenGL and DirectX tend to run slower on 64-bit versions of Windows, compared to game performance on the same system with a 32-bit version of the Operating System. Main reason here is the extra overhead the Operating System causes.
Program compatibility is another issue. When looking at the adoption of Exchange Server 2007 I see a lot of problems with the availability of good 64-bit AntiVirus products, 64-bit AntiSpam products, 64-bit Archiving products, 64-bit Backup Agents and 64-bit Fax tools. In some cases this means purchasing new versions of existing products or purchasing new products and support contracts.
Another issue is compatibility. Even if you find a product that offers 64-bit support, this product must also be compatible with every aspect of your new 64-bit system. A sound example is Symantec's Enterprise Vault 7.0 product, that is incapable to work with Outlook Web Access 2007. Deploying Exchange Server 2007 in an environment with Enterprise Vault means you have to deploy a Microsoft Exchange Server 2003 Front-End server if you want to enable your users to access all of their messages from locations outside the walls surrounding your network. (Effectively placing a 32-bit machine to offer the services your 64-bit platform can't offer) Going a bit further along the 64-bit road (literally) is the incompatibility between the Apple iPhone and 64bit versions of Windows.
AMD introduced its Opteron processor on April 22, 2003. Soon after this introduction many hardware vendors introduced complete server systems based on this new processor. Intel introduced its 64-bit Xeons in 2004. Theoretically it's possible to buy x86-64 processor-based systems for four years now. In the real world x86-64 processor-based systems became mainstream in 2005. This means that a large percentage of all servers that were purchased in the last two years contain x86-64 technology.
This also means that a large percentage of the systems that were deployed in the last four years doesn't contain x86-64 technology. While we all tend to believe companies migrate to new servers every four years, most of the companies don't achieve this goal. Servers that were deployed in a smart way even tend to be kept running for a period of five or six years. Why migrate if the server keeps running smoothly?
I think AMD and Intel do a poor job of convincing potential customers of the importance of 64 bit processing and the increased performance they can gain from new multi-core processors. Customers still indoctrinated by the GHz marketing messages from both AMD and Intel are not likely to buy new servers. Let's face it: Processors ran 2 GHz four years ago, and they still run 2,0 GHz (per core) now.
Microsoft dismisses the question 'Should I go 64-bit?' by eliminating the future 32-bit versions of its Windows Operating Systems from the equation. You have to go 64-bit some time in the near future!
Customers can benefit from the Hardware Compatibility List (HCL) to search for good 64-bit systems. I believe 4 GB of RAM is the key to rapid adoption of 64-bit Windows Vista systems.
Administrators can benefit from acquiring early knowledge of 64-bit computing by adopting the 64-bit version of Microsoft Windows Server, 64-bit hardware, 64-bit drivers and 64-bit programs. Administrators will be faced with 64-bit computing problems somewhere along the road and they'd better be prepared! Before implementing a 64-bit version of Windows Server make sure your basic (AntiVirus, AntiSpam, backup, driver) needs can be fulfilled.
Companies might find themselves faced with incompatible programs. 16-bit programs will only survive another 10 years. Migrating to 64-bit native versions might save you a lot of trouble in the near future.
Independent Software and Hardware vendors might get stuck in the middle if they believe 64-bit computing is just a hype. Programming 64-bit versions of applications and drivers, testing these versions rigorously (with the help of customers) and getting picked up on takes time. 64-bit at this time is a market where only big boys play, you can become one of them.
Windows Server 2008: Last 32-bit Server Operating System
WinHEC 2007: 64bit server OS
On 64-bit and Windows Client
Microsoft To Dump 32-Bit After Vista
Community Technology Preview (CTP) of Windows Server Code Name “Centro”
Why 16-Bit Windows Applications Run in Single VDM
Overview of the compatibility considerations for 32-bit programs on 64-bit versions of Windows Server 2003 and Windows XP
Products Designed for Microsoft Windows – Windows Catalog and HCL
Warning for 64-bit Windows users: No iPhone support for you
iPhone Won't Synch With PC's Running 64-bit Windows Vista
No iPhone For 64-Bit Windows
The system memory that is reported in the System Information dialog box in Windows Vista is less than you expect if 4 GB of RAM is installed
Features removed from Windows Vista