NT version 6.4 Featured

After seeing a note on an MSDN article, we are assuming that the change in the Windows 10’s kernel version number of 10.0 is, indeed, real. I learned of this through Neowin’s post. Basically, until now, the NT kernel version number of Windows 10 was 6.4. Now, Microsoft is changing it to 10.0. Here’s why I think this is the case.

First, let’s review the version numbers for various previous Windows releases:

  • Windows NT 3.1 = Version 3.1
  • Windows NT 4.0 = Version 4.0
  • Windows 2000 (formerly Windows NT 5.0) = Version 5.0
  • Windows XP = Version 5.1
  • Windows Vista = Version 6.0
  • Windows 7 = Version 6.1
  • Windows 8 = Version 6.2
  • Windows 8.1 = Version 6.3
  • Windows 10 Technical Preview (until now) = Version 6.4
  • Windows 10 = Version 10.0

The NT version number represents both a major and a minor version. The number on the left of the decimal is the major version number while the number on the right of the decimal number is the minor version number. For instance, Windows XP has a major version number of 5 and a minor version number of 1.

With the release of Windows Vista, the NT Kernel saw an increase in its major version from 5 to 6. This caused some compatibility problems with applications, many of which inappropriately used version checks. To avoid a similar problem, Microsoft only increased the minor version numbers for Windows 7, 8, and 8.1. Thus, even though Windows 8 is a major upgrade from Windows 7, it is still under version 6.x.

Since Windows 7, Microsoft has made significant changes to its APIs to prevent problems with application compatibility. According to Peter Bright, With Windows 8.1, Microsoft has essentially solved the application compatibility issue that major version number change can present. I encourage you to read the juicy technical details on Mr. Bright’s article.

Why Windows 10 isn’t version 6 any more and why it will probably work

So, why is Microsoft going to NT kernel version 10.0 rather than sticking to 6.4 for Windows 10? Many believe that this is only for PR reasons to make it “seem” like Windows 10 is a big upgrade. I don’t think that is the case. I think the reason is more technical than that. Let me explain.

With Windows 10, Microsoft wants one OS for Tablets, PCs, Phones, and the Xbox. Today, only tablets and PCs run the exact same version of Windows. Windows Phone and Xbox runs the core kernel of Windows 8 with a subset of its APIs and technology. That is, while a Windows 8 tablet and PC is the exact same version of Windows, Windows Phone is essentially a completely different OS, one that is derived from the core technologies of Windows 8.

I think that with Windows Phone 10, Microsoft aims to have the phone OS to run the exact version of Windows as its tablet and PC counterparts. Only the UI be optimized for a smaller screen. For the app model, Microsoft plans to use the Windows Runtime (WinRT) to allow developers to make universal apps for both the phone, tablet, PCs, and Xbox. This complete unity likely requires a consistent version number. Currently, the Tablet/PC, Phone, and Xbox versions of Windows have different kernel versions.

Windows 8.1 for tablets and PCs has the version number of 6.3. Windows Phone 8.1 has the version number of 8.1, and Xbox OS has the Windows kernel version number of 6.2. If we were to write apps for all these OSes, we will fare better with the same version numbers across, not different ones.

So, this means, that for Windows 10, the phone, tablet, PC, and Xbox versions of the OS will have to have the same version number. If Microsoft were to stick to version 6.4, then Windows Phone 10 would have the version 6.4, and so would the PC/tablet, and Xbox variants. This would be a problem.

According to Raymond Chen of Microsoft in his “Windows Confidential: Numerology of the build“, Windows cannot upgrade from a higher build number to a lower build number. I am guessing this would also be true for NT kernel version numbers. Since Windows Phone 8.1 has a version number of 8.1, it would be a potential problem to have Windows Phone 10 to be version 6.4. This would mean that one would need to upgrade to a lower kernel version number.

This means that Microsoft would need to go for a kernel version number higher than 8.1 to upgrade Windows Phones properly. Combine with the compatibility updates detailed by Peter Bright and because Microsoft likely wants all Windows variants to have the same version, Microsoft took this opportunity to set the version number to 10.0 to match Windows 10’s name. Version 10.0 is higher than 8.1, can be consistent across all Windows variants, and also matches the name of the OS. It is a win-win situation (no pun intended).

So this is my speculation of why we are seeing Windows 10 to be version 10.0 rather than 6.0. I may be completely wrong on this, as I do not have insider knowledge. What are your thoughts?