An Open Letter To Microsoft: A 64-bit OS is Better Than a 32-bit OS

June 8th, 2017

Windows 32 Bit vs. 64 Bit

Editor’s Note: Our co-founder & CTO, Brian Wilson, was working on a few minor performance enhancements and bug fixes (Inherit Backup State is a lot faster now). We got a version of this note from him late one night and thought it was worth sharing.

There are a few absolutes in life – death, taxes, and that a 64-bit OS is better than a 32-bit OS. Moving over to a 64-bit OS allows your laptop to run BOTH the old compatible 32-bit processes and also the new 64-bit processes. In other words, there is zero downside (and there are gigantic upsides).

32-Bit vs. 64-Bit

The main gigantic upside of a 64-bit process is the ability to support more than 2 GBytes of RAM (pedantic people will say “4 GBytes”… but there are technicalities I don’t want to get into here). Since only 1.6% of Backblaze customers have 2 GBytes or less of RAM, the other 98.4% desperately need 64-bit support, period, end of story. And remember, there is no downside.

Because there is zero downside, the first time it could, Apple shipped with 64-bit OS support. Apple did not give customers the option of “turning off all 64-bit programs.” Apple first shipped 64-bit support in OS X 10.6 Snow Leopard in 2009 (which also had 32-bit support, so there was zero downside to the decision).

This was so successful that Apple shipped all future Operating Systems configured to support both 64-bit and 32-bit processes. All of them. Customers no longer had an option to turn off 64-bit support.

As a result, less than 2/10ths of 1% of Backblaze Mac customers are running a computer that is so old that it can only run 32-bit programs. Despite those microscopic numbers we still loyally support this segment of our customers by providing a 32-bit only version of Backblaze’s backup client.

Apple vs. Microsoft

But let’s contrast the Apple approach with that of Microsoft. Microsoft offers a 64-bit OS in Windows 10 that runs all 64-bit and all 32-bit programs. This is a valid choice of an Operating System. The problem is Microsoft ALSO gives customers the option to install 32-bit Windows 10 which will not run 64-bit programs. That’s crazy.

Another advantage of the 64-bit version of Windows is security. There are a variety of security features such as ASLR (Address Space Layout Randomization) that work best in 64-bits. The 32-bit version is inherently less secure.

By choosing 32-bit Windows 10 a customer is literally choosing a lower performance, LOWER SECURITY, Operating System that is artificially hobbled to not run all software.

When one of our customers running 32-bit Windows 10 contacts Backblaze support, it is almost always a customer that did not realize the choice they were making when they installed 32-bit Windows 10. They did not have the information to understand what they are giving up. For example, we have seen customers that have purchased 8 GB of RAM, yet they had installed 32-bit Windows 10. Simply by their OS “choice”, they disabled about 3/4ths of the RAM that they paid for!

Let’s put some numbers around it: Approximately 4.3% of Backblaze customers with Windows machines are running a 32-bit version of Windows compared with just 2/10ths of 1% of our Apple customers. The Apple customers did not choose incorrectly, they just have not upgraded their operating system in the last 9 years. If we assume the same rate of “legitimate older computers not upgraded yet” for Microsoft users that means 4.1% of the Microsoft users made a fairly large mistake when they choose their Microsoft Operating System version.

Now some people would blame the customer because after all they made the OS selection. Microsoft offers the correct choice, which is 64-bit Windows 10. In fact, 95.7% of Backblaze customers running Windows made the correct choice. My issue is that Microsoft shouldn’t offer the 32-bit version at all.

And again, for the fifth time, you will not lose any 32-bit capabilities as the 64-bit operating system runs BOTH 32-bit applications and 64-bit applications. You only lose capabilities if you choose the 32-bit only Operating System.

This is how bad it is -> When Microsoft released Windows Vista in 2007 it was 64-bit and also ran all 32-bit programs flawlessly. So at that time I was baffled why Microsoft ALSO released Windows Vista in 32-bit only mode – a version that refused to run any 64-bit binaries. Then, again in Windows 7, they did the same thing and I thought I was losing my mind. And again with Windows 8! By Windows 10, I realized Microsoft may never stop doing this. No matter how much damage they cause, no matter what happens.

You might be asking -> why do I care? Why does Brian want Microsoft to stop shipping an Operating System that is likely only chosen by mistake? My problem is this: Backblaze, like any good technology vendor, wants to be easy to use and friendly. In this case, that means we need to quietly, invisibly, continue to support BOTH the 32-bit and the 64-bit versions of every Microsoft OS they release. And we’ll probably need to do this for at least 5 years AFTER Microsoft officially retires the 32-bit only version of their operating system.

Supporting both versions is complicated. The more data our customers have, the more momentarily RAM intensive some functions (like inheriting backup state) can be. The more data you have the bigger the problem. Backblaze customers who accidentally chose to disable 64-bit operations are then going to have problems. It means we have to explain to some customers that their operating system is the root cause of many performance issues in their technical lives. This is never a pleasant conversation.

I know this will probably fall on deaf ears, but Microsoft, for the sake of your customers and third party application developers like Backblaze, please stop shipping Operating Systems that disable 64-bit support. It is causing all of us a bunch of headaches we do not need.

Brian Wilson
I completed my undergraduate at Oregon State University in 1990, then completed a Stanford Masters degree in 1991. Ever since then I've worked at various companies as a software engineer, in the last few years starting my own software startups called MailFrontier (started in 2002) and most recently Backblaze (started in 2007).

I have a personal web site at http://www.ski-epic.com that I started in 1999 (it was originally just for one vacation, but it kept growing) where I put up my vacation pictures and videos. Nothing professional, it's all just for fun.

In my spare time I enjoy skiing, motorcycling, and boating. I have been lucky enough to travel to a few countries, and I enjoy scouting out new places for the first time.

Follow Brian on:
Twitter: @brianwski
YouTube: brianwski
LinkedIn: brianwski
Google+: brianwski
Reddit: brianwski
  • kin0025

    I would also like to point out, that in addition to losing 16 bit support, the older atom processors produced by intel, and pushed heavily around the time vista launched are 32bit only. Recently Atom CPUs have supported 64 bit, but drivers and BIOS support has not been implemented by OEMs. While this is a non-issue with devices launched with Windows 10, Microsoft does like their backwards compatibility though.

  • Kai-Chieh Ku

    I personally don’t use 32-bit Windows at all for a long time, and I love all of the benefits from 64-bit.

    However, I don’t quite agree your “zero downside” point. Technical speaking, there are certainly some downsides to 64-bit Windows.
    1. It requires about twice of storage and the storage is either not cheap or not upgradeable thanks to those thin and portable devices nowadays. Remember we still need 32-bit userland runtime to run many useful 32-bit apps, and that takes plenty of space.
    2. Intel Atom line got 64-bit support quite lately, I believe some people are still using them.

  • Pingback: Weekend tech reading: Cryptocurrency valuations still rising, 3 years on a Hackintosh – Used Laptops Guide Online()

  • Pingback: Weekend tech reading: Cryptocurrency valuations still rising, 3 years on a Hackintosh | Techlear()

  • FF222

    Contrary to what the author states, there are several downsides of running a 64-bit version of Windows over a 32-bit version of Windows on the same machine. The three most important of those are:

    1. Losing the ability to run 16-bit Windows applications
    2. Losing the ability to use hardware whose manufacturer has only provided 32-bit drivers
    3. Using more RAM for achieving the very same functionality (because of both code and data in a 64-bith app taking up up to 2x as much memory, as in a 32-bit version of the same app)

    Now, these might be or might not be important factors to some users, but for those who are affected negatively by them, using a 32-bit version of Windows is definitely an advantage or even a “must”.

  • Vince

    Other people beat me to the punch, but as Tim Sedlmeyer says, 16-bit applications are able to run in the 32-bit windows world, and that is still used *A LOT* – for example a well known shipping company has a shipping tool which is used for thousands and thousands of parcels a day in just one warehouse and it is 16-bit, so cutting it off is an issue – and that is just one of a huge number of examples.

    32-bit Windows still exists also because there are plenty of people with processors incapable of running 64-bit instructions, so again they’re being supported as it stands by Microsoft rather than those computers being cut off.

    Solutions such as vmware or similar aren’t always an option for all kinds of reasons, especially if you get into situations with obscure hardware support being needed.

  • The only part missing from this is, that the 32-bit version still supports 16-bit software, where as the 64-bit version still supports 32-bit software, but no 16-bit software at all. If people are still dead set on using 16-bit software, they should be installing a 64bit OS, and then installing the 32-bit previous OS in a VM (which is what Microsoft kinda-sorta did with the Vista/7 versions.) Or maybe throw some money at the DOSBOX developers and WINE developers to produce a DOS/16-bit Windows VM without the overhead of all the other box-in-box emulation that is supremely overkill for what people are really trying to do by running that old software.

  • Glyn Roberts

    While this article makes some good points it also makes some ludicrous claims. I have numerous software packages which are 16bit with about a million lines of code in each of them. To suggest that it is a trivial overnight process to convert them is just absolute rubbish and shows total lack of understanding of the development and testing processes. Yes I am converting them to 32bit versions and should have done so a long time ago but it is a long and arduous process. There are also actually very few 64bit applications as this offers very little extra benefit over a 32bit application and most of those applications with 64bit versions also have 32bit versions so to run a 32bit os really only restricts the amount of RAM that you can access and the majority of users don’t need bucket loads of RAM because all they do is browse the internet and send emails with the occasional word processing and spread-sheeting tasks – none of which require ver much RAM.
    Of course the ideal would be for all computers to run only 64bit apps and to have loads of RAM but this is not the same thing as saying that they NEED to do this.
    Many people could easily get by with a tablet computer with a real keyboard, mouse and external screen for convenience of use and that would be all they ever needed.

    • Sniffy

      the real question is, why do you need to run those legacy 16-bit apps on Windows 10? Even if MS continues to support 32-bit OS, you are still risking compatibility problems by upgrading to the latest OS. you will be still be able to install older versions of windows on new HW for quite a while, I imagine.

      • Dan_Neely

        Win10 32 is the most secure 32 bit version of windows, and has a better UI than win8/8.1. While Win 7’s UI has a lot of fans who prefer it over newer versions, it’s also only 2.4 years from end of life. That means that any businesses running on W7 need to be thinking about their upgrade path to a newer version; and that new deployments of it shouldn’t be happening any more.

        • Sniffy

          Obviously the new OS is better in many ways, but if you’re still using 16-bit software it’s already pretty clear reliability is a lot bigger priority than security and ‘upgrade path’, because upgrading always risks breaking old stuff. For that use case, I imagine businesses just keep the old existing systems around until the HW starts to fail.

  • Slingshot Wunderland

    32bit has or had value in legacy manufacturing systems. Old but vital tools and software have problems with the “Programs Files (x86)” directory. With thousands of seats to fill, stability and compatibility are core concerns so 32bit is the safe choice. Not sure why the average person would purchase 32bit because compatibility is something a single customer can work around one way or another.

    • Glyn Roberts

      I agree that for a person they could go with a 64bit os with (probably) no issues but many businesses still run 16bit legacy apps that provide core business functions and that is not a trivial obstacle to overcome.

  • Eric Towers

    One industrial control system I have managed is 16 bit software that requires sub-millisecond control of the serial port. There is as yet no viable VM solution to this problem. This machine requires a closed, proprietary driver from a defunct company. That control system will be running on OSs that support its needs for the remaining 11 years of its depreciation, and perhaps longer.

    Relatedly, I still play time-critical 16-bit (only) games. These are also tricky to play on modern hardware since the craptastic options for USB/serial conversion make no latency promises (because they cannot). Fortunately, I still have a 16550 card with, you guessed it, 16-bit drivers. No 64-bit option there either unless GoG starts providing some very niche titles.

  • Craig

    Do we really need to explain this, Brian? There are people out there who are still running 32-bit CPUs, and there are businesses out there who still use 16-bit legacy apps that won’t run in 64-bit Windows.

  • What about machines like this:

    https://www.amazon.com/Azpen-Windows-Tablet-Bluetooth-Storage/dp/B01N39WUB8/

    this is a $100 tablet that runs Windows 10. It works pretty good for surfing the web, watching videos, etc. A 32 bit OS helps it make the most of its 2GB of ram.

  • Alec Martin

    Interesting history: the first version of Mac OS X that offered support for 64-bit applications was actually Mac OS X 10.3 “Panther” all the way back in 2003. The only hardware that could run 64-bit apps at the time was the PowerMac G5, because of its PowerPC 970 CPU(s). This was a year before the first x64-based Intel processors, and three years before the first x64 Intel-based Macs.

    Even stranger is that the first 64-bit version of Windows was released even before this, in 2001–it was Windows XP for the IA-64 (Itanium) architecture, which is not compatible with 32-bit x86, nor is it compatible with the 64-bit x64 Intel CPUs common in today’s PCs and all Intel-based Macs.

    But the rabbit hole goes deeper–Apple’s OS X, both the PowerPC version and the Intel version, ran 64-bit appications with a 32-bit kernel until 10.6 “Snow Leopard,” released in 2009! If you are curious about how a 32-bit kernel can run 64-bit applications, see https://stackoverflow.com/questions/49934/how-come-a-32-bit-kernel-can-run-a-64-bit-binary.

    • RosynaKeller

      Sadly, Panther couldn’t run 64-bit processes. But it did add support for a 64-bit address space. (userspace was still limited to 32-bits)

      • Alec Martin

        That’s a good point. As far as I can remember, Panther couldn’t run 64-bit GUI processes because of a lack of 64-bit versions of the Cocoa libraries, but it could run 64-bit processes that only depended on libraries with a 64-bit version available (which wasn’t much in 2003!). Memory-hungry GUI apps would “cheat” by running the 64-bit compute portion in a separate process with no GUI, and that would communicate with the 32-bit process that ran the GUI.

        • RosynaKeller

          The ability to write 64-bit “compute” daemons was added in 10.4. It was the first version with a 64-bit libSystem.

          • Alec Martin

            Cool, thanks for the correction! I remember there being 64-bit apps before 10.6, but I couldn’t remember how early that was.

  • Victor Bottacco

    I am an Apple user and consultant and all my clients are Apple users, but as a technology consultant in many areas I have to deal with PCs and Windows. As Nikko has pointed out one of the problems for users is driver availability for many still functioning and useful peripherals that only got 32bit drivers.

    But this inconvenience turned into problem for users can become a critical issue in the industrial world. I have many clients with a big range of machinery in factories, and many of those machines have an embedded PC running some flavor of Windows (95, 98, XP anyone?) and those requiere drivers that won’t be re-written or recompiled in 64bit. So, if I have a $100 printer at home or even a more expensive peripheral or program that only runs in 32bit mode and I have to change it, I will be annoyed or even mad thinking that this tech companies are stealing from me… but if I have a $100.000 or $1M machine that needs to run something in 32bit I really need that 32bit Windows version to support it.

    I am no Microsoft fan as I run macOS almost for everything (some Linux and Windows virtual machines on VMWare ESXi) but I have to recognize that Microsoft has gone over and beyond to support certain things and there is a type of user that is grateful… although I do agree with Brian on his article as a general rule for todays general user base.

    P.D. Brian, I just wanted to point out that 2009’s 10.6 OS X version was called Snow Leopard, not Tiger (which was 10.4)

    • > 2009’s 10.6 OS X version was called Snow Leopard

      Now corrected in the article, thanks! I thought I had looked that up but somehow got my name wrong.

      • RosynaKeller

        The first version to ship support for 64-bit CLI processes was indeed Tiger (10.4). 64-bit UI app support was added in Leopard (10.5)

  • Manu

    For a ‘normal’ computer I tend to agree with you, but some dirt cheap computers have so few resources that they cannot meet the 64bit OS requirements. For example, I was once installing one of my Win10 licenses on my cousin’s laptop, a Lenovo with only 2 GBytes of RAM. Now, this is the bare minimum for 64 bit Win10, and it will install – but you end up with a veeeeeery slow computer. In the end I had to jump through so many hoops to get a 32 bit Win10 license. This worked fairly well – as well as it can with that amount of RAM, anyway.

    • Paul McGrane

      I bought a refurb 11″ MacBook Air with a 64GB SSD and 2GB of RAM about 6 years ago, and it runs macOS 10.13 High Sierra! And not even very badly if you stick to Tweetbot and Safari!

  • Jay T

    What Microsoft should do is have both OS’s on the disk, but only give users the option to install 32bit if they have a CPU that doesn’t support 64bit.

    For Enterprise customers with 16bit software, they can provide the LTSB in a 32bit flavour.

    • Victor Bottacco

      I do agree. +1

  • Colin Stuart

    Sure 32-bit programs work in 64 bit OS… but that’s not true about 32 bit drivers. There’s a reason why Vista came in 64/32 bit flavors… hardware compatibility. And that’s largely why Vista Pre SP1/2 failed (changes to how Vista did driver stuff compared to XP)… it was just an ugly time for hardware. However, when 7 was around… that pretty much was all fixed. Did MS need to release a 32bit 7? No.

  • I think the article does not clearly explain the differences between 32 and 64 bit quite clearly enough. There is a difference between 32 bit versus 64 bit memory addressing, and ability to support greater than 4 GB of physical RAM. All modern operating systems support virtual memory so the program thinks can cram data into any address space, up to the bit addressable limit, regardless of the amount of physical RAM installed. So a 32 bit program will call memory addresses from 0 to 2 GB (2 GB to 4 GB addresses are reserved for the operating system and video memory, BIOS, etc.). With multiple programs addressing 0 to 2 GB addresses, it’s up to the operating system and the CPU to translate these virtual memory calls to physical memory addressed locations. Analogously in 64-bit Windows computing, 64-bit programs can address 0 to 8TB of address space, with the Windows OS and kernel mode drivers addressing in the 8TB to 16TB range, even of your computer only has 12GB of physical RAM. It’s the job of the CPU silicon to then map Windows OS virtual memory addresses between RAM and the page file and intelligently swap memory pages between them to prevent an out-of-memory system crash… For backwards compatibility reasons, 64-bit Windows OS has a dedicated feature called “Windows-On-Windows” or SYSWOW64 that manages 32-bit programs running in 64-bit versions of Windows.

  • Pingback: An Open Letter To Microsoft: A 64-bit OS is Better Than a 32-bit OS – Akshaya IT Services()

  • Tim Sedlmeyer

    There is a downside to 64bit vs 32bit Windows. With 64bit Windows you lose support for running legacy 16bit applications and components. Unfortunately they are still out there and in use both by large enterprises and small businesses. Especially at the release dates of Windows Vista, 7 and 8 the number in use at large Microsoft customers was probably enough to justify releasing 32 bit versions of the OS. The frequency I see them in use today is significantly lower than 5 years ago when Windows 8 was released, so hopefully that justification for 32 bit versions has or is about to die.

    • That is an interesting point. The Macintosh shipped the very first Macintosh (in 1984) with a 32 bit clean architecture (pointers were 32 bits) and didn’t ever HAVE 16 bit applications to provide compatibility with.

      The solution I would advocate for these sorts of customers would be two fold:

      1) The best solution is to Windows 10 in 64 bits, and run a VMware
      (or other) virtual machine and run Windows 7 in 32 bits inside
      of that dedicated to running any 16 bit programs.

      2) Stay on Windows 7 in 32 bits for the next few years. What I’m
      against is Microsoft releasing NEW versions of Windows 10, 11, 12
      all in 32 bits.

      It would be really interesting to find out what is really left running in 16 bits?
      Hilariously somebody could write a full 16 bit emulator in Javascript in a
      few months of work – then any web browser could run the 16 bit application.

      I think the last 16 bit application must have been written around 1987 (?) which is 30 years ago! Computers were lucky to have 640K of RAM and an 8086 running at 5-10 MHz. I can’t imagine having any problem hiring somebody to rewrite the original functionality but in a modern 64 bit Python program. Probably take somebody a weekend for most apps?

      • Tim Sedlmeyer

        Windows for Workgroups 3.11 introduced a 32 bit kernel but had a 16 bit API. The Windows 32 bit API rolled out to the desktop in 1995 with Windows 95. Internet Explorer 5.0 released 1999 was available in a 16 bit version. Most of the 16 bit software I see still being used has last release dates in the early 2000s.

      • Paul McGrane

        The original Macintosh was not 32-bit clean. But it was essentially 24-bit clean. The top 8 bits were unused until the 68030 or maybe 68020, so programmers hid other values in those memory values, I think. It wasn’t that software was inherently non-32-bit, but that it had been hacked around in a pre-fully 32-bit memory environment. Recall all this nonsense about Mode32 extensions, and stuff like that around 1990.

        • Yeah, my brother and I wrote a video game for the original 68000 based Macintosh mostly in assembly language (“Continuum” – https://www.ski-epic.com/continuum_downloads/index.html ) and I was wondering if somebody would bring this up. But from the beginning you could program using 32 bit pointers and it would have continued to run on future hardware that eventually provided a fully addressable 32 bits. I’ve heard some programmers decide to hide things in that top 8 bits but we never had to do it.

      • Kaedrin

        Your recommendation is flawed, because some older gear cannot work properly in VDI scenarios where 16-bit software is still used. In some cases 32-bit and 64-bit software are actually VDI/Virtualization aware and will disable themselves when virtual hardware is detected. Some programs will disable themselves if you just enable Hyper-V on Windows 10, and if you have only one network card, you cannot give Hyper-V network access without breaking software that refuses to uses virtual NIC’s.

      • John Foley

        I work in retail point of sale. I can tell you that there are sizable tier 1/2/3 retailers who rely on 16 but apps running in their front end to check you out every day. These are substantial apps written in archaic languages that woul take years to port.
        We developed a 386 emulator that emulates protect mode of the 386(not very common in x86 emus) to run these apps on 64 it OSs. 10x performance hit BTW. I just think you’d be surprised how much old code is it there.

        • RosynaKeller

          Doesn’t DOSBox support protected mode? And DOSBox doesn’t even incur a 10x hit.

          For POS, Microsoft still offers Windows XP POSReady, which supports 16-bit processes.

          However, you seem to have already found a solution to your legacy needs.

          Either way, the main request is for Microsoft to stop offering 32-bit Windows as a choice (especially a default choice) to consumers when all the software on said consumer’s machine is 100% compatible with 64-bit Windows.

          Windows 10 upgrader already has a compatibility checker. It already prevents installation on 32-bit PCs without support for the NX bit. It already prevents installation on some early 64-bit PCs running a processor lacking certain instructions.

          The questions then become, why doesn’t Microsoft have a data migratoion step to upgrade to 64-bit Windows on 32-bit installations? Why doesn’t Microsoft ship ISOs with a universal 32-bit and 64-bit installer?

        • Kael

          Why would a company leave a critical part of their infrastructure untouched for 30 years. (I work at a place that is doing the same thing sigh!) They have more then gotten their moneys worth. They should have been maintaining it all along, and growing with technology. They will eventually move, when they are backed into a corner and have to pay a huge programming staff overtime to get something half baked and rushed.

          • cartman94501

            In California, the state with the most liberal overtime rules, programmers don’t get overtime.

          • Andrew Holaway

            Yep, we are legally exempt from overtime at a federal level. It’s not too bad if you work for a reasonable employer who doesn’t take advantage of the law, as you only get hit with massive overtime a couple of times a year. But there are some companies out there that grind engineers for 60+ hours a week every week for a salary based on 40 hours per week.

  • Mathieu Longtin

    Some years back, I installed Vista 32 bits because some old software installer assumed 64 bits meant “Itanium” and refused to install. And we really needed that software, unfortunately.

  • Nikko

    A large part of the problem is OEMs. Microsoft wants Joe Blow and everyone else to be able to run Windows 10, but the HPs, Lenovos, and Dells of the world stopped releasing drivers for Joe’s PC in the Windows 7 days and back then they only supported 32-bit. Joe’s laptop can run Windows 10 x64, but he’ll have driver issues like goofy touchpad response, sleep/wake hangs, or battery drain.

    I’ve done the 32 to 64 upgrade on several PCs. I end up having to hunt down drivers from places other than the OEM. For example, if you’re dealing with a Synaptics touchpad or Intel GPU you can (usually) get good results using the driver from Synaptics/Intel. That’s not a guarantee though, if your OEM has customized the hardware, the generic driver may not work. My (least) favorite example is older HP EliteBook touchpads. The Synaptics and generic Windows drivers will have too much sensitivity in the y direction and not enough in the x direction. The correct solution (which Joe Blow would never figure out) is to import the 64-bit HP touchpad driver for Windows 7 from the Windows Update Catalog.

    On Microsoft’s end, if they could require new Windows-certified PCs to be 64-bit the problem would eventually go away—in 5+ years as you mention. I agree that this would be a good step.