Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How common are 32-bit Windows installations as of now? [closed]

I've noticed many programs are still released with 32-bit binaries or even only a 32-bit binary. How common are 32-bit systems? i.e., how many 32-bit vs. 64-bit systems are out there?

This is important to help decide whether to continue shipping 32-bit versions of software.

like image 736
Lymia Aluysia Avatar asked Jan 06 '17 02:01

Lymia Aluysia


People also ask

Does anyone still use 32-bit Windows?

If you're writing games then take a look at the regularly-updated Steam Hardware Survey - http://store.steampowered.com/hwsurvey/ - which (as of 2017-12-06) reports 97.9% of users are running a 64-bit build of Windows - giving only 2.1% on 32-bit Windows, though it doesn't say what percentage of 32-bit Windows users ...

What percentage of computers are 32-bit?

Today, just 1.93 percent of all Steam Hardware Survey respondents are using 32-bit OSes. In July 2017, that figure was 6.09 percent. Chances are good that at least some of those 6 percent of users are still using 32-bit operating systems — they're just not captured any more in the larger data set.

How long will 32-bit Windows be supported?

According to the minimum hardware requirements for Windows 10 page, beginning with the release of the May 2020 update, Microsoft will no longer offer 32-bit builds for computer manufacturers, and all the new devices will be required to run the 64-bit version of Windows 10.

Why do people still make 32-bit programs?

Many applications still use the 32-bit operating system because its design has been on the market for a long time. However, that's changing on some platforms. Some developers have found a solution; on Modern 64-bit systems, you can run both 32- and 64-bit software.


1 Answers

Unless your application really needs more than 2GiB of memory space, or gains a significant benefit from the new and faster x64 operations, there's no need to move away from building for 32-bit x86, given x64's 100% backwards-compatibility (but 16-bit x86 is a different matter entirely) - ideally keep things simpler for your users with a single executable file which can run anywhere (at least on all Windows installs anywhere).

The answer to your question varies depending on the target user base:

  • People writing business software for internal use will (or should) know exactly what hardware they're targeting.
  • If you're writing games then take a look at the regularly-updated Steam Hardware Survey - http://store.steampowered.com/hwsurvey/ - which (as of 2017-12-06) reports 97.9% of users are running a 64-bit build of Windows - giving only 2.1% on 32-bit Windows, though it doesn't say what percentage of 32-bit Windows users are actually running on x64-capable hardware. But gamers on Steam tend to be in the "computer enthusiast" segment, who will run more recent hardware so usage of 64-bit hardware and OS installs will not be representative of all computer users everywhere.
  • If you're writing general-purpose software for distribution from your own website then take a look at your webserver logfiles, because the User-Agent header often tells you what OS people are using with a text string that often includes the CPU architecture (e.g. Chrome reports Win64; x64).
  • The percentage of users on 64-bit OS systems will also differ geographically - I expect a higher proportion of 32-bit OS users in "emerging markets" that would have a wider use of older (especially imported second-hand) machines than in more developed economies. Similarly market segments that are heavily tied to legacy software, such as government departments and many businesses will run a 32-bit Windows OS to retain 16-bit software compatibility or for 32-bit-only device driver support.

Rather than making a commitment to either 32-bit or 64-bit when it comes to distributing your executable, you can do both: While Windows PE executables (.exe and .dll files) unfortunately do not have the "fat binary" feature that macOS does (where a single executable can contain instructions for different architectures) you can actually fake a fat-binary using a workaround on Windows, as used by Sysinternals' utility programs; which is to have a 32-bit executable that contains the 64-bit binary as an embedded resource, and runs like so:

  1. Is this a 32-bit OS? If so, then run as normal
  2. Otherwise, it's a 32-bit process on a 64-bit system, so extract the 64-bit .exe version to a temporary directory
  3. Start the extracted 64-bit version
  4. Self-terminate
like image 59
Dai Avatar answered Sep 21 '22 02:09

Dai