公告:2024年4月15日起本站用户注册、新用户的前10个编辑需要审核,如果您的编辑没有立即显示,请等待管理员审核完毕。

讨论:Windows Codename "Cairo"

来自BetaWorld 百科
跳转到导航 跳转到搜索

关于 Cairo 的版本分类问题

目前关于 Cairo 的版本分类,各个社区都没有一个好的说法,到底哪个版本是 Cairo,哪个版本不是 Cairo,以什么标准来判断,这些问题都没有很好的解答。这里我想提出一个关于 Cairo 版本分类的思路,留给大家讨论。

首先我要说一下这个想法的背景。我认为 Windows 的 build 并没有一个线性的排序,也就是不能单纯按 build 号或编译时间给 build 排成一个从头到尾的顺序。Windows 的开发不是从头到尾一个版本一个版本开发,我们都知道 build 有 buildlab,buildlab 也就是分支,有分支的存在就说明 Windows 的 build 组成了一棵“树”。树有树干和树枝,同样,Windows 的 build 也有主干和分支。大家都能猜到 winmain (或其他类似的名字)是主干,其他 buildlab 是分支。但是大家很容易忽略的一点是,除了这些开发分支以外,还有发布分支。典型的发布分支的例子就是 vb_release 之于 rs_prerelease,在这里 vb_release 就相当于 rs_prerelease 的发布分支,因此我们看到 Redstone 3 和 Redstone 4 的时候,rs3_release 是 RS3 而 rs_prerelease 是 RS4,即使它们的版本号是相等的。我们在给版本排序的时候遇到过一个矛盾,就是版本的编译时间和它的版本号大小增长方向并不一致。典型的例子是 Windows 95 build 405、Windows Vista build 5712、Windows 7 build 7106、Windows 10 build 10108。这几个版本都比比它们版本号小的某个 build 编译时间早。这里就是开发分支和发布分支的区别了,Windows 95 build 347 是一个发布分支的版本,因此它版本号小,但编译时间比 build 405 晚;同理,Windows Vista build 5600 和 build 5712 也是如此,Windows 7 build 7100 和 build 7106 也是如此,Windows 10 build 10074 和 build 10108 还是如此。这些例子都证明了,开发分支和发布分支的存在。关于 Cairo 的版本分类,开发分支和发布分支的差异就是我这种分类方式的根本所在。

回到 Cairo 上。我们要先了解一下大致的背景。Cairo 是 Microsoft 对 Windows NT 3.1 的巨大改进,不仅引入了非常先进的对象文件系统(OFS)概念,同时还包括了新的用户界面(Cairo Shell)以及新的服务器特性(Active Directory)等。然而,由于饼画得太大,Cairo 没能完成开发,取而代之的是 Windows NT 4.0。从这个结果来看,我们可以得出结论,Cairo 结束时间在 Windows NT 4.0 之前。你可能觉得,这不是废话吗?对,就因为它是如此地显而易见,才能成为我这个猜测最有力的证据之一。既然知道了 Cairo 何时结束,那么它何时开始?这要说到 Windows 95,代号 Chicago,Microsoft 开发它的缘由就是给 Windows 3.1 加个 Cairo Shell,Chicago 这个代号也正是对应 Cairo。由此可见,Cairo 的开始时间一定比 Chicago 要早。Chicago 目前最早的版本 build 58s 编译于 1993 年 8 月,在这个时候 Windows NT 3.1 刚刚发布正式版不久。那么 Cairo 开始的时候,Windows NT 3.1 并没有开发完毕,这样一来,按照 Microsoft 当时的计划,Cairo 必定是 Windows NT 3.1 计划的下一代产品。Windows NT 3.1 是 Windows NT 的第一个版本,但却不是 Windows NT 1.0,而是 Windows NT 3.1,其中原因就在于和 Windows 3.1 对应。Chicago 早期有 Windows 4.0 之称,并且它也是 Windows 3.1 的下一代,如果按照这么对应的话,Windows NT 3.1 的下一代就是 Widnows NT 4.0,这和 Cairo 的版本是 4.0 完全吻合!总结一下,Cairo 是 Windows NT 3.1 的下一代产品,直接取代 Windows NT 3.1。

我们得出 Cairo 是 Windows NT 3.1 直接下一代的结论,是为了证明 Windows NT 3.5 / 3.51 是过渡产品。它们可能原来就在 Microsoft 的计划表上,也可能不在,但出现时间一定是在 Cairo 之后。关于这一点,我们还可以来看代号。Windows NT 3.5 代号 Daytona,是美国东南弗罗里达州的城市 Daytona Beach 的简称;Windows NT 3.51 代号 Tukwila,是 Microsoft 总部周边最近的机场所在的镇。在提及 Neptune 5111.6 的那个 Channel9 视频中有暗示,代号里面城市的远近和项目的大小是有关系的,Cairo 是一个大目标,Daytona 和 Tukwila 是两个小目标,从侧面证明了 Windows NT 3.5 / 3.51 是过渡产品,是用来填补 Windows NT 3.1 和 Windows NT 4.0 直接的空缺的。这样我们更加能够确信,Windows NT 3.5 / 3.51 是 Cairo 项目的副产物。再结合前面所说的开发分支和发布分支的理论。Windows NT 3.5 / 3.51 作为和 Cairo 并行开发的副产物项目,它必然是取自 Cairo,是 Cairo 的一部分。我们可以从 build 854 中找到证据。如果只是单纯地安装这个版本,你会发现,这就是一个普普通通的 Windows NT 3.51 早期版本,然而,它除了 Windows NT 3.51 本体以外,还有 Cairo Shell 和 OFS 组件,又证明它是 Cairo。这个 build 的来源是 Microsoft 内部的 IDW dump。我们可以推测,“IDW”是主线,而 Windows NT 3.51 是发布分支——也就是说,Windows NT 3.51 是 Cairo 分割而来!同样地,我们可以把范围扩大,Windows NT 3.5 / 3.51 都是 Cairo 分割而来,它们的“完整版”就是 Cairo。

用这样的想法,我们来看最为关键的部分:Windows NT 4.0。Windows NT 4.0 代号 Indy,是美国中部城市 Indianapolis 的简称,是个小项目,对不对?Cairo 取消是在 Indy 结束之前,那么 Indy 开始开发的时间点是在 Cairo 取消之前还是之后呢?从软件工程的角度来看,当项目有比较大的风险时,要有一个备份计划,也就是 Plan B,我认为这里 Indy 就是 Cairo 的 Plan B。在 Microsoft 认为 Cairo 可能无法完成的时候,马上准备了 Plan B,也就是 Indy,等到 Cairo 真的做不下去的时候 Indy 就取代了 Cairo 成为了真正的 Windows NT 4.0。也就是说,Indy 的开始时间在 Cairo 结束之前。这一段重合的时间,可以暗示我们,Indy 同样是从 Cairo 分割而来,就像 Daytona 和 Tukwila 一样。所以,每次 Cairo 在开发分支有一个新的 build,就有一个被去掉了 OFS 等新特性的 Indy 同时出现在发布分支,通过官方渠道发放给测试用户。Build 1175 的来源也是 IDW dump,也就是说,它也是开发分支的版本,并且也有和它对应的 Indy build 1175。这是事实。对比 Cairo build 1175 和 Indy build 1175,我们发现,Indy build 1175 完全是 Cairo build 1175 的子集,是后者的一部分。现在我们通过这种比较,进一步确认了 Windows NT 3.5 / 3.51 / 4.0(早期)都是 Cairo 的一部分这个事实。这就意味着,只要是没有被去掉 OFS、Cairo Shell 等 Cairo 特征组件的版本,就是 Cairo,而没有 OFS 也没有 Cairo Shell 的版本就是 Daytona / Tukwila / Indy。

至此,我分类 Cairo 和其他产品的依据就找到了。但我们还有一个问题:build 1381 Pre-RTM 是 IDW dump,有 OFS 相关组件,那么它是 Cairo 吗?先说我的回答,不是。在 Indy 结束之前很久,Cairo 就已经取消了,此时何来 Cairo?至于为什么会有 OFS 相关组件,我认为,既然 Indy 一开始就是 Cairo 切割而来,后来 Cairo 取消,虽然 Cairo 特征组件停止开发,但 Indy 开发组还保留了这个习惯,仍然采用自己的分支,从“Cairo”分割。从 Cairo 计划取消,到 Indy 结束,这段时间的包含 OFS 等 Cairo 特征组件的 IDW dump 版本,什么都不是。如果一定要归类,谁会同意把它们归为 Cairo 呢?

以上均为我个人看法,欢迎各位指出问题、发表意见。——th1r5bvn23 2020/5/8

Re: 强迫症对于 “从 Cairo 计划取消,到 Indy 结束,这段时间的包含 OFS 等 Cairo 特征组件的 IDW dump 版本” 的归类还是很在意。是否在 Windows NT 4.0 内新建 See also Page,以区分这些 Builds ? 烦请指教。

以及一句不合时宜的话:在 Mobile 上使用 PC 的 Wiki 界面时,用户子菜单似乎有问题。浏览器已切换,无用。--MacAdmin讨论) 2020年5月10日 (日) 17:24 (CST)