为什么微软没有Windows9?

“Windows 10将成为我们有史以来最全面的平台,叫它Windows 9不太合适……Windows One这名字不错,和XBox One、OneDrive、OneNote很协调,但是已经被前辈巨头们抢注了。”——微软操作系统部负责人Terry Myerson。

“它来了又走了”——微软总裁Satya Nadella。

“Windows 10不会是Windows 8.1的渐进式升级,Windows 10将是一个实质性的进步。我们正试图创建一个一个平台、一个生态系统,将从小型嵌入式物联网、平板电脑、手机、个人电脑,最终到Xbox等各种设备连接起来。”——Windows市场主管Tony Prophet

当你亲眼看到产品时,我想你会同意我们认为10比9更合适——微软发言人[1]

谣言:一位自称是微软开发人员的Reddit用户在已经删除的帖子中声称跳过Windows 9是因为使用这个名字会导致第三方程序不兼容。

事实:微软Windows 8.1时代已经默认开启版本号欺骗[2],旧程序读操作系统版本也只会读到Windows 8,除非用应用程序清单(manifest)声明自己支持某个操作系统版本,才能在这个操作系统版本中读到正确的版本号。网上流传的这段代码

if (osName.startsWith("windows 9")

看起来会出问题,但是这个osName是库作者从版本号翻译过来的,不是系统提供的。在Java.exe没有升级到支持Windows 10之前,osName的值会是Windows 8,在Java.exe升级之后,osName的值会是Windows NT (未知版本)[3]

                if (is_workstation) {
                    switch (minorVersion) {
                    case  2: sprops.os_name = "Windows 8";            break;
                    case  3: sprops.os_name = "Windows 8.1";          break;
                    default: sprops.os_name = "Windows NT (unknown)";
                    }
                } else {
                    switch (minorVersion) {
                    case  2: sprops.os_name = "Windows Server 2012";    break;
                    case  3: sprops.os_name = "Windows Server 2012 R2"; break;
                    default: sprops.os_name = "Windows NT (unknown)";
                    }
                }

没错,由于入门门槛低,Windows 平台上确实充斥着大量粗心开发者……但这充其量不过是个段子,与现实情况相去甚远。真粗心的开发者会完全不检测操作系统版本或者自己所需的其他依赖项以至于启动时报错。

编辑于 2026-05-16 · 著作权归作者所有