windows 10 device family

There were some interesting changes instituted by Microsoft when they announced the next version of Windows and one of those was a complete name change – not just calling it Windows 9, implying that it was a mere iteration of Windows 8.1, but a full leap to double digits. While the name change is certainly one designed to make people think that it’s a completely different OS, there were deeper changes made in the last few years that changed things around completely and make me wonder why Microsoft is now calling it Windows 10.0 internally.

The chief reason behind today’s train of thought is a column on Ars Technica by Peter Bright, which delved into the change that allowed Windows to jump to a new version entirely. The article itself is a little TL:DR, so I’ll summarise it  with a few bullet points

  • Microsoft has a system called AppCompat that makes older apps think they are running on a different OS by using a software shim to fool the application to think its running in a particular instance of Windows
  • AppCompat currently makes applications think they are running under Vista if they lack specific flags in an app manifest that allow them to use new OS features or explicitly state support for the new OS
  • Any apps that are run through Windows 10’s AppCompat’s that haven’t updated their app manifest will think they are running under Windows Vista, 7, 8 or 8.1

Its an interesting change and one that people probably don’t grasp all that well yet. What this essentially means is that the AppCompat system almost futureproofs software for use in future versions of Windows. If there is an application running on Windows 10 that states it only supports Windows 8 and some features of Windows 8, Windows 10 will do its best to fake the behaviour of Windows 8. If the application is later updated along with a new app manifest, it will then identify that it works with Windows 10 and will be able to then use any new features the OS might offer.

You can actually see this for yourself inside the Resource Monitor in Windows 7 and later. Head into the overview tab, right-click on the columns and select “Choose Columns”. Tick the checkbox for “Operating System Context and then head back out.

resource_mon_app_manifest

A legacy of Windows 9x applications

Now the problem with this change is that the app manifest thing was entirely optional for developers when Windows 7 was the default OS being sold. Almost every program would think it was running under Vista. Over time that changed and we’ve seen developers pay more attention to it and update their software for newer OSes in a timeous manner, although there were some applications that never saw updates and may have acted strangely.

The problem with the app manifest and AppCompat would have reared its head if Windows Technical Preview was to be called Windows 9 with a version number of 9.0 to match. If you’re a developer, you might already be giggling at this idea. If there was an application running on Windows 9 that asked it what version it was, the OS would be reported as a “Windows 9x” OS. It wouldn’t matter if it was updated to Windows 9.1 or 9.475, it would still register as a variant of a Windows 9x operating system.

Windows 9x is also what Windows 95 claims to be, along with Windows 98. And Windows ME. Every application in the world, for a brief period of time, would try to run as it if was a Windows 95-compatible application. It would have been hilarious and sad at the same time.

This change was first beta-tested with the upgrade to Windows 8.1. If you were running the update and it constantly failed, it was usually the case that a rogue application or driver was preventing it. I had the Steelseries Engine installed and it cause the update to fail at the same point very regularly. The reason given by Steelseries at the time was that there was a rewrite to the USB and Bluetooth stacks for Windows 8.1 and drivers needed to be rewritten or updated, but it’s far more likely now that Microsoft was testing the waters of how a complete version change, without a lead time for developers to update their software.

At the time, many publications on the internet and posters in forums, including yours truly, knocked on Microsoft for not giving developers time to get ready for the Windows 8.1 update because there was the expectation that most Windows 8 users would move automatically to it. As it turned out, there were many more applications and drivers that worked versus the handful of ones that didn’t, so Microsoft would have known at that point that the world was ready and fully prepared for complete version changes.

What does this mean for Windows?

train of thought

Windows Technical Preview, at least with the latest build version, now reports itself as being version 10.0 of Windows. That’s a significant change both in version number and strategy. I have a feeling that Microsoft’s marketing will now change to address “the next decade of Windows”. Apple’s had a similar thing going on with OS X, numbering the versions from 10.0 to 10.10, which is OS X Yosemite. Version 10.0 was a major UI change for Apple users, as was version 10.5 and 10.10. OS X 10.5 even matched that expectation by bring the first OS X version to drop PowerPC support.

For Microsoft, their Mobile-first, Cloud-first strategy is aligned very closely with how things are advancing (or rather slowing down) in the computer industry. We’re at least a decade away from DNA computers or something equally exotic from replacing regular silicon and x86. Intel, AMD, Nvidia, VIA, ARM, Samsung, Imagination Technologies and the semiconductor industry at large is concentrating on keeping hardware compatibility going while finding new ways to reduce power consumption. If you buy a new Haswell-based computer today, it’ll still be largely similar to new computers in the market ten years from now. I don’t even think the desktop PC paradigm will have shifted that much either.

That also solves a huge problem for businesses and enterprises who continually evaluate new versions of Windows, but choose to upgrade at specific milestones or particular versions that turn out to be easier to support than others. With inter-OS compatibility that is miles ahead of any Windows OS before it, it’s actually quite possible that large networks could see OS upgrades every two years instead of every five or even ten years. Application and hardware compatibility largely remains the same, but they can take advantage of new software features, or better security.

The Bring-Your-Own-Device culture would also largely benefit from being accepted by business because IT staff won’t have to support a version of Windows that is different from what they currently run on the network. So long as the security features work the same and it still plugs into Active Directory the way you’d expect it to, supporting a personal device as a work device isn’t that difficult.

And finally, one problem in particular is solved by this single change. If you buy the NAG magazine, go look at your October 2014 issue and page through to Neo’s column. In it, Neo plays dice with the greatest pain in the ass to PC owners – moving an entire OS install from one system to another. Windows 7 made it easy, Windows 8 made it simple, but there are still occasions where nothing works and you require updated drivers or compatible software. Windows 10.0 would solve all of that. Everything would then work as you would expect as if it was a clean install. Swapping between systems should be much simpler and swapping between processor brands, like between AMD and Intel, should also be much easier.

In fact, if I’m right, one would be able to take a system running Windows 8.1, upgrade it in ten year’s time to Windows 10.10 and then clone that OS install to another system entirely and at no point would I expect it to get stuck on anything. That would be incredible!

More stuff like this: