A New Ecosystem

As you probably read in the previous chapter, Windows 7 and Windows 8 were both largely based on, and compatible with Windows Vista. As we also discussed internally the version of Windows Vista was NT 6.0 while that of Windows 7, Windows 8, and Windows 8.1 were 6.1, 6.2 and 6.3 respectively. In fact, even Windows 10 was initially given a version of NT 6.4 before Microsoft decided to number it 10.0 instead.

However, this isn’t because the core kernel of Windows has changed immensely. However different they might have been in appearance, behaviour and performance, Windows 7, 8, and 8.1 internally represented themselves as minor point updates to Windows Vista (6.0) to signal to apps that the OS was compatible with Vista.

Microsoft knew that Windows 7 and 8 were fully capable of running Windows Vista applications, so they in a way lied to these applications so these applications would run despite being written at a time when these new OSs were not even released. So does Windows 10 signal a break in compatibility? Not really.

Evolution and Compatibility

Compatibility with previous versions of Windows is a very important aspect of Windows. Over time Windows has added and removed features, but has always tried to keep compatibility wherever possible and feasible. For instance, 32-bit versions of Windows 10 still support applications developed for 16bit versions of Windows and DOS! 64-bit versions of Windows meanwhile haven’t been able to support 16-bit applications since as far back as XP.

You can right click and set compatibility settings for any application.

If those applications (written for the Windows 3.1 era) are compiled into a 32-bit version, they will still run on Windows 10! The main reason for this is that Windows has become quite good at lying about its version number to suit the app running on it. For a long time Windows has had the capability of rep- resenting itself as an older version for compatibility with old applications.

Windows mostly tried to be good at detecting if an application is written for a previous version of Windows, and then running it in compatibility mode. If you encounter an app that worked on a previous version of Windows, but no longer works in the latest release, you can right click it and select compatibility settings.

This includes not only lying about the Windows version to trick the application into thinking it is running on a compatible version of Windows, but also reducing the colour mode and resolution to make it work.

Since Windows already has a framework in place to do behave like older versions of Windows and lie about its version number to run older apps, does it really matter what the correct number is? Might as well go for something that makes more sense. So in Windows 10, compatible applications will get Windows 10 as the version number while older apps will get the version number that they are most comfortable working under. Windows 10 will keep changing over its lifetime and as such Microsoft has given developers tools to detect what features it supports, rather than guessing that from the version number.

The Microsoft Excel for phones is a UWA that can run on mobile and desktop.

     Thanks to the continuous efforts in not breaking compatibility, each version of Windows expands its ecosystem, and Windows 10 actually does this a lot more than previous versions. To make this possible though, Windows has gone through many architectural changes.

Architectural Changes

The earliest versions of Windows were essentially applications running on top of DOS rather than being full operating systems. It was Windows NT 3.1 that first got away from a DOS core and switched to the NT kernel that is still used today.

It introduced the Win32 API that still powers most Windows applications. Unfortunately, when Windows NT 3.1 was originally released it had unu- sually high system requirements, such as a recommended 16MB of RAM,! Shocking, we know. This among other reasons meant that Windows NT didn’t become viable for consumer versions of Windows until the release of Windows XP in 2001.

Windows also includes a compatibility troubleshooter that walks you through running an old program on the latest Windows release

That is when the consumer and workstation / server versions of Windows merged into a single family of operating systems. Another such historic merging came with Windows 8.

While we focused on desktop versions of Windows in the previous chapter, there were other operating systems that Microsoft created. Windows CE for instance was Microsoft’s OS for handheld devices and other consumer electronics. It is what powered mobile versions of Windows, such as Windows Mobile and later Windows Phone. Another historic merging came with Windows 8 and Windows Phone 8, which both used the same Windows NT core.

With Windows 8.1 they got even closer. Another device that joined the Windows family was the Xbox One, which now runs a Windows NT kernel. Microsoft earlier was using different OS core for Xbox 360, another for their Mobile devices and another for their desktops. Now all their devices are part of the Windows family and the Windows ecosystem. With Windows 10 Microsoft has converged the Windows 10 family even tighter.

As the Windows ecosystem expands to include new kinds of devices such as the Xbox One, the Raspberry Pi 2, and soon the HoloLens, the common bits of code that Windows is running on these devices has now expanded. Microsoft has identified the core bits of functionality that any device running Windows should have and has made them part of what it calls the Windows Core.

This is more than just the NT kernel, it includes common functionality such as support for input and output devices, that is common for all platforms.

The Universal Windows Platform

This is what Microsoft calls its Universal Windows Platform. It is the core functionality that developers can expect to find on any Windows device. This is something developers can rely on when making Windows apps.

An app that just uses the functionality presented by the Universal Windows Platform can run on all Windows 10 devices, even those that haven’t been invented yet. On top of this core Microsoft can extend the Windows experience based on the ‘device family’.

Microsoft intends to share the same core OS across as many hardware platforms as possible so that developers have an easier target.

For instance, embedded devices such as Raspberry Pi need bare minimum functionality, then come Mobile devices that need support for bluetooth, NFC etc. Then you have the PC family that includes tablets and convertibles that run the traditional Windows desktop UI experience and provide the traditional Win32 API as well. You also have the Surface Hub, Microsoft’s large 55-inch and above multi-touch interactive whiteboard solution for enterprises, that has its own set of features that developers can use.

Also soon you will have the HoloLens, which too will run Windows 10 while providing a completely different experience. This allows application developers to create applications that can run on any Windows device while using the same codebase, and in some cases even the same binary.

If an application uses only the features available in the Windows Core, then it will simply run on all devices since they all include the Windows Core. If it uses features present only in one platform, it can detect those features at runtime and adapt its functionality and interface accordingly.

Even for the UI, Microsoft has some support for adaptive interfaces which will let developers create interfaces that can run on all devices, from a 5-inch mobile to a 55-inch surface hub. Let’s look at some of these new entrants to the Windows ecosystem.

Windows 10 for IoT

For those hardware tinkerers with Raspberry Pis and other similar devices, Microsoft has released a new edition of Windows that can run on those devices. What’s more, Microsoft has made this edition available for free to play around with.

This edition of Windows is probably closest to the Windows 10 core, as it features no desktop mode, or even a CLI. You can however write applica- tions using the free Visual Studio Community edition and push them to a Raspberry Pi 2 running Windows 10 IoT. While the IoT edition doesn’t include many key features, it does include stuff like the speech recognition and synthesis technology behind Cortana (though not Cortana itself).

This means you can use applications on the Pi 2 that can recognise speech commands, and speak out text on the Raspberry Pi 2 device. The IoT versions also include support for other kinds of input, for instance you can connect a keyboard, mouse or even a touchscreen and use that on your device. It also includes the handwriting recognition capabilities that ship with Windows.

Windows Holographic

Windows IoT running a demo application on a Raspberry Pi 2.

Microsoft has touted its new holographic technologies a lot, but are as yet not commercially available. However, the holographic version of Windows is once again just Windows 10 at the core with all the functionality that would be required for a holographic device layered on top of it. This device will be able to run the same Windows apps as any other Windows device, but with the added holographic support. This is some-thing Windows apps will be able to detect and accordingly adapt their UI to. There isn’t too much known about Windows Holographic yet, but given that it is Windows 10, we can assume that it will have all the features of Windows Core.

Windows as a Service

Another major change to the Windows ecosystem is that eventually it will consist only of Windows 10. Currently the only Windows version of importance is Windows 7. Win- dows XP is declining and it won’t be too long before it entirely disappears. Windows Vista is already a blip in the statistics. Even now Windows 8 and 8.1 make up only around 15% of OS installs; not much more than XP.

Windows 8 was considered a flop and with Windows 10 out, it is unlikely that people will go out of their way to purchase it. What this leaves us with are two operating systems, Windows 7, and Windows 10. If Microsoft’s free upgrade ploy works well, at least some of the current Windows 7 users will move to Windows 10.

Even otherwise mainstream support for Windows 7 has already ended, and extended sup- port will end in another 5 years. Windows 10 of course will still be around then, and it will still be the latest release of Windows available. Eventually, Windows 10 will be all that is left giving developers a single platform to base their applications on. The Windows 10 core will upgrade over time, and include new features that will reach all supported Windows platforms.

Windows’ design is more modular now, so these updates can be asynchronous. What this means is that unlike before, where the release of Internet Explorer, or heck even something as trivial as Notepad was tied to the release of a new Windows version, now Windows apps can keep updating like regular third-party apps via the Windows Store. The version of Edge doesn’t even matter now (its 20.10240 as of this writing) as it will keep updating, and all you will notice occasionally is that it has new features. Just like any other browser.

This is where Microsoft’s version of a Windows-as-a-service comes in. It’s not a traditional service model where you pay monthly or yearly for a service, but one where you pay a one-time fee for a ‘lifetime’ of updates. Like anyone offering a lifetime subscription, it’s important to read the fine print. In this case it boils down to the following: 1. Updates are mandatory 2. Upgrades are mandatory 3. Devices that don’t upgrade wont be supported 4.

Upgrades are cumulative 5. If an upgrade isn’t supported by the hardware it wont be installed Let’s explore what these really mean and how they can interact with each other in ways you might not like. First of all, mandatory updates are a GOOD thing. Here by updates we mean security patches and bug fixes.

These fixes make Windows more secure and that has an effect on not only individual devices, but the entire ecosystem. In the field of immunology there is a concept called “herd immunity”. If a person vaccinates themselves against a disease, they are safer against it. However, sometimes some vaccines don’t work on some people. Other people might be allergic to a vaccine, and as such unable to get a shot. So not everyone can be vaccinated, and not everyone who is vaccinated is immune to the disease. However, if enough people get vaccinated, then the chances of the disease spreading are greatly reduced.

This has the effect of protecting even those people for whom the vaccine didn’t work, or those who couldn’t take it. Software patches, especially security patches are quite similar. A patch might not work for eve- ryone, everyone might not install it, and for some people it might actually cause problems. However, if enough people install the patch the overall security of the Windows ecosystem improves, and the chances of malware spreading are reduced. So yes, updates are good, mandatory updates are good, even if in a few cases they might cause people problems.

These kind of updates are mandatory for all users, even those using Windows 10 Pro. Then come upgrades. Windows 10 will occasionally release updates that bring new features and functionality to Windows. While this is great for people who want it, it isn’t generally what people expect from their OS. If people bought Windows 7, and were one day pushed a build of Windows 8, because that’s the direction Microsoft wanted to go in, then they would be rightly upset.

They would be even more upset if they had no control over this decision. Of course Microsoft has put systems in place that prevent such a thing from happening. They have something called the Insider track which we shall talk about shortly. A lot has been said about how only Windows 10 Home users are forced to install upgrades, but this isn’t entirely accurate. Windows 10 Pro users can choose to delay upgrades, but eventually, in a few months they will be forced to upgrade Windows. Of course there will be tools available to block updates and upgrades.

To make sure that there is a better sync between Microsoft and its customer base, Microsoft now has as constant pool of beta testers who have access to upcoming features before release. Microsoft calls this their Insider program, and we’ll talk about it in more detail shortly. However here is where the kicker comes in, blocking updates makes your OS unsupported, and that might not be a desirable option for everybody. As we mentioned upgrades are also cumulative.

This might be obvious, but each upgrade will build on the previous one, which means you cannot install a newer upgrade without installing the previous one. Again this is quite obvious, but it has a negative effect as will become clear. The final point is that when Microsoft says that Windows 10 upgrades will be free for the lifetime of a device, it’s really important to understand what they mean by lifetime.

If you install Windows 10 on a device, and over the course of a few years Microsoft releases an upgrade that brings changes to Windows that increase its system requirements, or changes that conflict with your hardware, then your system cannot upgrade. Since updates are cumulative, you might be locked out of not only future upgrades to Windows, but also future security patches. At this point of time your device has reached the end of its ‘lifetime’ of support.

Windows Insider

With new upgrades to Windows coming out constantly Microsoft needs some way to get user feedback and real-world data about upcoming builds of Windows before they are delivered to the general audience. For this purpose, they have the Windows Insider program. Microsoft has always had some kind of beta program for people to test out its upcoming operating systems.

Delaying upgrades is just that, delaying the inevitable, unless you are fine with an unsupported, unpatched Windows.

Even with the very first release of Windows NT 3.1 Microsoft had beta versions of its OS available for select audiences. Over time this audience has expanded significantly, to the point that now the only requirement to be a Windows beta tester is that you want to be one. Anyone can sign up to be a Windows Insider, and in Windows 10 you can turn switch on beta updates with a few clicks.

What Microsoft is doing with Windows 10 upgrades is similar to what has been happing with browsers for a while now. Firefox and Chrome both have multiple builds available. You have Firefox Nightly and Chrome Canary that both release unstable, minimally tested builds very regularly (nightly in Firefox’s case). Then you have a better tested, but still quite frequently updated track: Firefox Aurora / Developer Edition and Chrome Developer.

Then both browsers have a Beta track, and finally you have a release track. For enterprise users, both browsers also have editions that are updated less frequently. The Windows 10 insider sign up process is quite simple. All they want to know is if you are really sure about using untested builds that might blow your computer to bits. In Windows 10, an option is to join the Insider program, and then select the ‘Fast’ option for how often you want upgrades.

Then you have the ‘Slow’ option, which still delivers beta builds but less frequently, after they are more tested. Then you have the regular release track that Windows 10 Home users are locked into, unless they want to get even faster updates in the Insider track. Windows 10 Pro and Enterprise users can use an option to defer updates, which keeps security updates coming, but delays Windows 10 upgrades a few months till they have already been tested by Insiders, and regular customers who can’t or haven’t delayed upgrades.