Windows Kernel Version Bumped To 10.0
jones_supa writes: In Windows, the kernel version number is once again in sync with the product version. Build 9888 of Windows 10 Technical Preview is making the rounds in a private channel and the kernel version has indeed been bumped from 6.4 to 10.0. Version 6.x has been in use since Windows Vista. Neowin speculates that this large jump in version number is likely related to the massive overhaul of the underlying components of the OS to make it the core for all of Microsoft's products. The company is working to consolidate all of its platforms into what's called OneCore, which, as the name implies, will be the one core for all of Microsoft's operating systems. It will be interesting to see if this causes any software compatibility issues with legacy applications.
Neowin speculates that this large jump in version number is likely related to the massive overhaul of the underlying components of the OS to make it the core for all of Microsoft's products.
Really?
I think "make the version number match what the marketing dept wants" is the more likely reason.
It's Windows 8.1 with a start menu. They didn't rewrite the kernel from scratch so that puts it into 6.4 - 6.99999 range. It's an arbitrary, meaningless number and it's in an OS that they named 10 for no logical reason. They're trying to assign meaning to that?
Are you sure the major version of the kernel wasn't increased to allow breaking changes to the device driver ABI? That's what changed from XP (NT 5.1) to Vista (NT 6) and what didn't change from Vista to 8.1 (both NT 6.x).
It will be interesting to see if this causes any software comparability issues with legacy applications.
Of course there will be - in any large pool of people of any calling there's going to be morons - the sort of morons that sniff the OS version string for things like "Windows 9" and then assume it's Windows 95 or 98 and refuse to work; instead of using the proper channels to query for the OS version number.
As a PHP programmer I can testify that morons can indeed program. I'm one of them.
The reason Microsoft never bumped the version number is because of backwards compatibility. Whether intentionally or unintentionally, many programmers have misused the old Windows APIs that check version numbers in a way that breaks compatibility of their apps going forward. That is, they're checking against future version of Windows rather than previous versions, and as such, their programs would refuse to run if the internal version number had been bumped from 6 to 7 (or 8). Whenever that sort of thing happens, people inevitably blame the OS rather than the application that had the bug in the first place, and as such Microsoft has resorted to some rather extraordinary measures to preserve backward compatibility, even going so far as to intentionally replicate bugs in special program-specific compatibility modes.
The GetWindowsVersionEx() API function is overly-complicated and notoriously easy to accidentally misuse. It appears that Microsoft finally had enough of that, and depreciated it. It will now actually only report accurately up to Windows 8.1, even in future operating systems, to ensure people can't accidentally or intentionally misuse them. They've been replaced with a set of "too simple to possibly misuse" functions that look like the following:
IsWindowsXPSP2OrGreater()
IsWindows7OrGreater()
IsWindows8Point1OrGreater()
There's one function for each major OS version + service pack, and it only checks in an equal-to-or-greater fashion, as you almost always want to do for broad compatibility checks. Notice also how you can't even check against future Windows versions until new API functions are released. I think now that MS has this safer API in place and enough time has passed since the initial problems were detected, they can get the internal version number back in sync with the more visible public number.
There's probably some marketing push in there, because I've seen people (wrongly) claim that since it was just a minor version bump in previous versions, it proved that there were only minor changes to the kernel, blah, blah... Maybe it bothered some particularly anal developers, but I doubt many really cared. It's just an arbitrary number to check at the end of the day, and we're sort of used to dealing with those.
Irony: Agile development has too much intertia to be abandoned now.