内部版本实验室
实验室或 VBL(虚拟内部版本实验室,Virtual Build Lab),通常是指在 Windows 操作系统的一部分或团队处理的源代码分支上工作的团队。最初,内部版本实验室是一个房间,机器定期生产 Windows NT 的正式版本。起初,整个项目只有一个内部版本实验室,但是,随着开发人员数量的增加,在操作系统的不同部分工作的团队被分配了自己的虚拟内部版本实验室,其中包括项目代码的一个分支,以及构建代码的基础设施。这延续到源仓库分支名称,这导致此术语也用于团队本身和分支。分支名称构成内部版本字符串的一部分,版本字符串是 Windows 编译的唯一标识符。
基于内部版本实验室本身的定义,在民间,内部版本实验室也被直接称作“分支”或“编译分支”。
不是由内部版本实验室计算机构建,而是由单个 Microsoft 员工编译的版本称为专用版本。通过在可执行文件的版本信息中设置 VS_FF_PRIVATEBUILD
文件标志并在版本字符串的分支部分中包含启动版本的个人或服务的帐户名来标识它们。[a][b]
实验室
自 Windows XP 开发开始以来,Microsoft 已经使用了多个分支系统,这些分支系统在实验室层次结构和命名方案上有所不同。但是,大多数方案都有一些共同的细节,例如存在最顶层的主分支,或者为重要的发展里程碑使用的特殊分支。
Whistler 和 Longhorn 重置前版本
最顶级的分支(有时称为“主干(trunk)”)称为 main,它集成了来自所有实验室的更改。在它下面有几个编号的实验室,每个实验室都在 Windows 的一个单独部分工作,例如:[c]
这些实验室还有一个“_N”分支,用作主分支和实际分支之间的缓冲区分支。例如,来自 main 的更改将首先集成到 Lab06_N 中,然后再通过称为前向集成的过程集成到 Lab06 中。这同样适用于反向集成,其中实验室将首先将更改集成到其 N 分支中,然后再将它们集成到 main 中。
同样还有 idx(内部开发工作站/服务器,internal development workstation/server)分支,这些分支通常是针对 TAP/OEM 合作伙伴的重新编译。但是,它们偶尔也会发布用于公开测试,例如 Windows Longhorn Build 4074 或 Windows XP Build 2257。
在 Windows XP 发布之前,主干被分叉到 xpclient 分支中,而主分支则继续跟踪 Windows Server 2003 的开发。发布最终版本后,为更新、修补程序和服务包开发创建了新分支。同样,dnsrv 分支[e]在 Windows Server 2003 发布之前是从主干分叉的。
自 Longhorn 重置起
在 Longhorn 的开发重置后,实验室层次结构进行了大修,以解决困扰大部分重置前时期的缺陷。引入了一个具有更多功能分支的新分层模型,这有助于减少为分支反向集成的代码量,而不是让少量的常规虚拟生成实验室都专注于不同的 Windows 功能常规范围。Microsoft 还为将实验室的更改反向集成到主干中设定了更严格的标准,此时主干已更名为 winmain。
主干分支后来在 Windows 10 发布后的某个时候更名为 rsmain,然后在 Windows 源存储库转换为 Git 后更名为 rsmaster,这可能符合将最顶层分支称为 master
分支的 Git 约定。在 2021 年 2 月之后的某个时候,[2]此分支被重新命名回 main。这样做可能是为了效仿其他 Microsoft 项目,[3]因为 master/slave 术语在 2020 年因涉嫌奴隶制内涵而成为争议的主题。[4]
功能分支前缀
随着时间的推移,Microsoft 使用了多个前缀来引用功能分支:
- vbl(Virtual Build Lab)——Windows Vista
- fbl(Feature Branch Level)——Windows 7 至 Windows 10(原始版本)
- rs(RedStone)——Windows 10 创意者更新至今
- fs(FireSteel)——Windows 11(原始版本)[f]
Windows 10 11 月更新和 Windows 10 周年更新使用各自的功能分支前缀 - 分别是 th2 和 rs1。
发布分支前缀
与以前的系统类似,主分支在发布之前分叉从而包含更新开发。以下是已知前缀的列表:
- vista、longhorn、lh——Windows Vista、Windows Server 2008
- win7——Windows 7、Windows Server 2008 R2
- win8——Windows 8、Windows Server 2012
- winblue——Windows 8.1、Windows Server 2012 R2
- th1——Windows 10(原始版本)
- th2——Windows 10 11 月更新
- rs1——Windows 10 周年更新、Windows Server 2016
- rs2——Windows 10 创意者更新
- rs3——Windows 10 秋季创意者更新
- rs4——Windows 10 2018 年 4 月更新
- rs5——Windows 10 2018 年 10 月更新、Windows Server 2019
- 19h1——Windows 10 2019 年 5 月更新、Windows 10 2019 年 11 月更新
- vb(Vibranium)——Windows 10 2020 年 5 月更新及更高版本的累积更新
- mn(Manganese)
- fe(Iron)——Windows Server 2022
- co(Cobalt)——Windows 11(原始版本)
- ni(Nickel)——Windows 11 2022 年更新、Windows 11 2023 年更新
- zn(Zinc)——Azure Stack HCI v23H2、Windows Server v23H2,在客户端无对应版本
- ge(Germanium)——Windows 11 2024 年更新、Windows Server 2025
其他团队使用的分支前缀
一些使用 Windows 代码库但正式独立于 Windows 版本的团队也使用自己的分支前缀:
- rd(Red Dog)——Azure
- oc——OneCore
- xb——Xbox
另请参阅
注
- ↑ 例如,Build
6.0.4067.private/lddm_dev_tech(davidmo).040212-1646
是由用户davidmo
发起的私有版本。 - ↑ 某些版本(如
6.0.4002.0.Lab06_N(ntvbl06).030108-1926
和6.1.6469.1.fbl_find_dev(wexbuild).071002-1531
被编译为私有版本,但却由官方内部版本实验室计算机帐户构建。 - ↑ 最初,
ntvbl
前缀用于实验室,尽管后来在 Windows XP 开发之初改为Lab
。 - ↑ 此实验室仍编译客户端版本,即使它适用于服务器组件,因为在版本构建的过程不会区分客户端和服务器 SKU。
- ↑ 为“Windows .NET Server”的缩写
- ↑
fs
分支与rs
分支并行使用。
引用资料
- ↑ Raymond Chen. The importance of having a review panel of twelve-year-old boys, episode 2, The Old New Thing. 2013 年 4 月 11 日.
- ↑ Windows 10 Build 21298 (rsmaster)
- ↑ Shelby Brown. Microsoft 的 GitHub 正在删除“master”和“slave”等编码术语, CNET. 2020 年 7 月 27 日.
- ↑ 关于 Git 和分支命名, Software Freedom Conservancy. 2020 年 6 月 23 日.