Hacker News new | ask | show | jobs
by asveikau 2152 days ago
Yeah, in early prerelease they had 7 report as 7.0.

But the story goes there was buggy code out there that said:

    if (major == 6)
    {
       // Do the thing that works on Vista
    }
    else
    {
       // Do the thing that only worked on XP and earlier
    }
And they wanted Win7 to hit the Vista-ready code. So they kept major at 6 for a long time. I guess they stopped caring for Win10.
2 comments

Even more to the point, the kernel major version number represented an implicit ABI compatibility for drivers.

Windows 4.9 could load drivers for 4.0. 5.2 could load drivers for 5.0. 6.3 could load drivers for 6.0...

Windows 10... can still load 6.x drivers, but it bumped the internal version number to 10.0. It is worked around because without an explicit "I'm Windows 10-compatible!" manifest, the OS just lies and reports an internal version of 6.3, along with the ProductName string remaining "Windows 8.1"

Makes sense, but they also had pretty aggressive detection of when compatibility mode would be helpful, so solving for the bugs with that seems like it could've worked. But I always like a good major version skip, e.g. Winamp (no 4, because they combined 2 and 3 to make 5), PHP (no 6, because... reasons), and nobody so much as thinks about IPv5.