10 Years of 64bit Computing on PC Platform.
I was recently reading comments from a Qualcomm executive that described IPhone 5s 64-Bit Chip as marketing gimmick rather than a serious feature. Although he has vested interest in making that point, I thought that He has a valid point. That’s because iphone-5s only ships with a 1 GB worth of RAM and thus 4GB Address Space is a non-issue for some time to come. That said it goes without saying that 64bit ARM chip does have limited incremental advantages especially when it comes to gaming that requires vectored graphics.
Back in 2001-2003 time frame, those of us that were crazy about building our own Barebone machines were super excited by an AMD chip called Athlon 64. Microsoft released Windows XP X64 edition in 2003 and X64 Craze officially commenced. The funny thing was Windows XP X64 was really a Windows Server 2003 that shipped with Windows XP Shell. That is internally Windows XP was marked as version 5.1 while Windows XP X64 was versioned as 5.2. In fact for some us developers sometimes it became difficult to validate whether we were running on Windows Server or Windows XP because they had the same exact version.
Based on my own Experience and some books I have read normally on running Native or .Net apps as 64bit can yield up to an additional 12% performance. That said the true value of 64-bit on Windows would be the value of additional address space for Heavy Duty Server Applications such as Exchange, SharePoint, Apache, IIS, SQLServer, MySQL. 64-bit has been such as hit on Server Applications that Microsoft a while ago announced it would no longer ship Exchange under 32bit edition.
It wasn’t common till recently to see laptops that shipped with Windows that had more than 4 GB of Built-in RAM. Because of that consumers only experienced benefits of X64 Chips when they used a program that utilized DirectX or OpenGL which would be common in games or Mathematic and financial Modeling software.
Ten years ago some criticized Microsoft for not allowing Legacy 32 bit Drivers to run in the Window XP, Visa 64 Bit Kernel’s address space. That’s while Mac OS took a different path and allowed for an emulation layer within the kernel to accommodate Legacy 32 bit drivers. Microsoft further upset the Driver community by introducing Patch-Guard Under Windows Vista and requiring 64-bit drivers to be signed. While These Changes and introduction of new Driver Frameworks initially added some pain for Windows Driver developers, it has proven to have been the right thing to do for the long-term. Windows Kernel Crashes (Blue Screen of Death) have been significantly reduced and extremely rare occasion due to these very efforts. What’s interesting Ten years ago it was rare to find the right X64 bit driver for your hardware but today it is arguably harder to find the the 32 bit Driver for your hardware on Windows.
On the so called Windows User-Mode or as we know it our Desktops or Windows Shell the story of 64Bit computing has been very different. As the Image below shows to this day running Windows 8 you can see that more than half of your applications on an X64 system actually run as 32bit Applications. There is no argument that WOW64 or as Microsoft Calls it Windows on Windows was the correct course of action to pursue because Windows simply had to accommodate hundreds of thousand 32 bit apps that existed in the windows ecosystem. The issue is that once Microsoft allowed 32bit apps to run on top of the WOW64 emulation layer, there was no real incentive left for Independent Software Vendors to ship 64 bit apps. That’s because ISVs had to ship their 32 bit software anyway because most laptop initially shipped with windows XP or Windows Vista 32 bit editions.
Moreover There are some common critical third party apps that many apps to have to interact with that run within the 32bit address space. For instance if you developed an accounting application like QuickBooks, chances are that you had to use OLE Automation to Export/Import Data back and forth from Microsoft Excel. But Since Microsoft Excel 2003 still Ships as a 32 bit Application there would have significant challenges associated with developing your app as X64 app. The funny thing is this logic circularly applies the other way as well. Because Microsoft Office or other critical Software Suites such as Adobe PDF reader could not simply abandon people who depended on their 32bit components. Therefore Because of simple economics and unwillingness of Major Companies such as Microsoft, Google and Adobe to ship parallel 32bit and 64 bit apps for a few years we have got stuck in this mode where Most Desktop Apps on Windows X64 actually run as 32 bit apps.
To be clear there is no urgency for this issue to get resolved. That’s because an overwhelming majority of laptops shipped with Windows today run the X64 edition of Windows. Windows X64 system can utilize more than 4 GB of RAM even though no single Application (32 bit Application) can yet take advantage of more than 4GB of RAM. Microsoft has designed Windows Virtual Memory Manager in such as fashion that a 32bit Program thinks the memory it is using is within the bounds of 32bit address space even though that memory location might be physically located well beyond the 32 bit Address space.There is however hope that gradually with Advent of Windows8 and Windows 8.1 we are moving slowly toward full 64 bit computing. You might have noticed that Internet Explorer Version 10 and Version 11 run partially as 64-Bit Applications. Let’s hope other ISV follow suit.