Latest posts by Timothy Warner (see all)
- My favorite Windows PowerShell ISE add-ons - Fri, May 27 2016
- Top Azure tools - Wed, May 25 2016
- Visual Studio Code (VSCode) as PowerShell script editor - Mon, May 23 2016
You might remember when Microsoft revealed that, starting with Windows Server 2008 R2, all of their server products would support 64-bit (x64 or x86-64) processor architectures only. We systems administrators accepted this announcement because who needs a server with a 4GB RAM cap?
The desktop Windows situation is fundamentally different, however. Microsoft offers Windows 8 in both 32-bit (x86) and 64-bit editions. Why would a Windows systems administrator choose the 32-bit version over the 64-bit version? It isn’t a cost issue, because both editions have the same retail price.
By way of relevant background, the terms “32-bit” and “64-bit” refer to a computer’s central processing unit (CPU) address registers. In terms of data processing, we can visualize a 32-bit register as a 32-lane superhighway. That arrangement must push a lot of traffic, right?
Well, consider doubling that value to a 64-lane highway. We can immediately understand why 64-bit processors are faster than their 32-bit counterparts: the newer chips are natively capable of moving more data per unit time.
The other aspect of CPU address registers is the number of random access memory (RAM) addresses the processor is capable of accessing. 32-bit CPUs can generate 232, or approximately 4GB of RAM addresses.
What makes the situation worse is that due to a variety of hardware- and software-related factors, 32-bit Windows systems can access only about 3.2 GB of 4GB physical RAM. Bummer, right?
NOTE: Modern CPUs support the Physical Address Extension (PAE) technology that allows the operating system to address RAM past the 4GB boundary. However, Microsoft coded the Windows kernel to ignore PAE and maintain the 3.2GB practical address cap. For those hackers in the audience, you can try to work around the self-imposed limitation.
By contrast, 64-bit systems can address (at least theoretically) 264, or 16 exabytes (EB), of physical RAM. Unfortunately, Microsoft imposes limits on RAM access to differentiate the various Windows stock-keeping units (SKUs). Ah, the wonders of capitalism!
With this background information out of the way, let’s address the kernel (pun intended) question:
“You know you need Windows 8 32-bit edition if… ^
…you are stuck with systems with no more than 4GB of RAM”
In today’s world of thin-client computing, some systems administrators feel that the lighter they make their users’ workstations in terms of on-board hardware, the better. For these low-powered systems, it perhaps makes sense to go with 32-bit Windows 8.
Moreover, some admins are faced with no original equipment manufacturer (OEM) lease agreements and find themselves tending client hardware that is simply out of date. Because 64-bit operating systems require different device drivers than 32-bit versions, it may be sensible for these admins to “stay the course” and go with 32-bit Windows 8.
…you are stuck with 16-bit line of business applications”
You are familiar with the old saw, “If it ain’t broke, don’t fix it.” The truth of the matter is that 64-bit Windows simply does not support legacy 16-bit applications.
Even still, 32-bit Windows 8 must be specifically configured to run 16-bit code. To do this on a Windows 8 system, fire up Control Panel and search for “16-bit application support.” You’ll see the Control Panel applet shown below.
You must specifically enable 16-bit app support in 32-bit Windows 8.
Another potential “gotcha” is 32-bit software that uses 16-bit installer stubs. Ouch! This can be an annoying situation to troubleshoot when you try to install these software packages under x64 Windows. How can we identify 32-bit apps that include outdated installer code? It isn’t trivial in most cases.
For instance, I tried to install the (supposedly) 32-bit Adobe Streamline software on my 64-bit Windows 7 and Windows 8 machines and saw the error message boxes shown in the screenshots below. Who could have foreseen a problem?
This app can’t run on your PC: “32-bit” app under 64-bit Windows 8.
You need an x86 (32-bit) or x64(64-bit) version of the program.
…your client hardware doesn’t have 64-bit drivers available”
Although 64-bit Windows can run 32-bit applications by using emulation routines to “trick” the app into thinking it is running on 32-bit hardware, no such provision exists for hardware device drivers. Thus, hardware vendors need to compile and distribute separate driver versions for 32-bit and 64-bit platforms.
This is no big deal for contemporary hardware, but for older systems with long-discontinued hardware, there may simply be no 64-bit drivers available. For this reason, some Windows systems administrators must be default stay with 32-bit Windows 8.
…you know you don’t need client Hyper-V”
Windows 8 includes the Hyper-V hypervisor by default, which is pretty darned awesome in my opinion. It’s lacking only a few features from the Hyper-V server role in Windows Server 2012.
However, client Hyper-V, like several Windows 8 client technologies, has a 64-bit processor requirement. Make sure to read up at TechNet on all the Windows 8 features and technologies you may be interested in to ensure that they will run on 32-bit Windows 8.
How Can I tell if my system is 32-bit or 64-bit? ^
You can check the System Control Panel applet in Windows 7 and Windows 8 to confirm whether you’re dealing with a 32-bit or 64- bit system. However, I want to make you aware of a nifty piece of freeware by the hardware genius named Steve Gibson called SecurAble.
As you can see in the screenshot, SecurAble tells you at a glance the following CPU properties of the current system:
- Bit length: This is the property we’re most concerned with in this article
- Hardware DEP: Does the CPU support Data Execution Prevention (DEP), which prevents applications from executing from non-executable regions of RAM
- Hardware Virtualization: Does the CPU support hardware virtualization standards?
SecurAble tells you at a glance the core properties of your CPU.