操作系统编译时间

33

这只是一个普通问题 - 我坐在那里等待软件编译(我们使用Incredibuild,但仍可能需要10/15分钟),这让我想知道,有人知道编译Windows XP或Vista要多久吗?

我找了一些资料,但没有找到有用的信息。


2
你为什么要担心构建时间呢?更长的构建时间会更有趣 - Branan
8个回答

47

OP问关于Windows:

"没有其他软件项目与此类似,"Lucovsky说道,"但是这个唯一不变的事实[多年来]是构建[Windows]需要多长时间。不论是哪一代产品,编译和链接系统都需要12小时。"尽管多年来处理器性能有所提高,Windows也已经发展到匹配,并且开发过程已经变得更加复杂,以至于微软现在作为日常构建的一部分进行了更多代码分析。 "构建实验室中的CPU连续24小时都会飙升,"他说。 "从Windows 2000开始,我们已经调整了这个流程。现在,我们将源代码树分解成独立的源代码树,并使用新的构建环境。这是一个允许我们更快地转动曲柄的多机环境。但是由于所有新的代码分析,仍然需要12小时。"

来源

还可以看看马克·卢科夫斯基(Mark Lucovsky)经典的演讲,讲述关于开发Windows NT/2000的内容。

我不在微软工作,所以我不确定...


真的很有趣...虽然我对它只需要12小时感到印象深刻。 - helpermethod
2
显然,Windows 10 大约需要 16 小时:https://twitter.com/DawidFerenczy/status/543171331328864257 - Peter

6
我所了解的第三手信息是,完成一个Windows构建需要大约一天时间。这与尝试从头开始构建您最喜欢的OSS操作系统大致相同。
构建现代操作系统是一项复杂而困难的任务。之所以不需要更长时间,是因为像Microsoft这样的公司已经设置了构建环境来帮助自动化集成测试。因此,他们可以用比大多数OSS构建涉及的较少的手动工作来构建系统。
如果您想了解构建操作系统需要什么,我可以推荐免费电子书:Linux from Scratch 要进行更自动化的构建,请尝试Gentoo。这两个选项都应该让您更好地了解操作系统构建过程。

1
我记得看过一个视频,XP在他们的构建农场上花了大约12个小时,所以Vista一天的时间对我来说并不让人震惊。当然,当他们谈论构建操作系统时,他们是指构建光盘上的每个二进制文件,然后为QA组创建一个光盘映像等等。这是一项巨大的工作! :) - John Rudy

5
艾尔斯·霍莱切克,Windows团队开发副总裁表示,构建Windows 10需要约16小时。而且每天晚上自动构建。
当然,它不是使用单个计算机构建的,而是使用一些构建工厂。

4
那些回答12-24小时或隔夜的答案几乎肯定是正确的。
很久以前,当我在微软时,以及此后每次听到它们都是“每天晚上”构建的。(我经常加载NT的日常构建。如果我记得正确,他们每周做一次“检查构建”)。版本末尾的那些数字是(或者至少曾经是)这些日常构建的增量:
我的Windows 8.1:
C:\WINDOWS\system32 > ver Microsoft Windows [Version 6.3.9600]
将9600除以365大约得到26年的日常构建,或者从2013年8.1/2012-R2发布开始往回推,约为1987年开始开发NT,Windows NT 3.1在1993年发布。

3

好的,你可以自己试试看:获取 Gentoo(或其他 Linux)发行版,或尝试来自微软研究的 Singularity 项目。另一个有趣的选择是 ReactOS 项目。仅编译内核需要(根据机器性能)约15分钟的等待时间。编译整个系统需要相当长的时间


2

我记得听说Vista花费了超过一天的时间来构建(虽然现在找不到参考资料,啊)。它大约有5000万行代码


2
实际所需时间取决于构建设置,我真的怀疑Vista工程师们需要一天时间来构建代码,即使在单台机器上也需要一天时间。我正在处理一个类似规模的项目,直到最近,构建可能需要在共享多处理器sun服务器上花费长达12个小时的时间。自从我们切换到基于Linux的构建农场后,干净的构建可以在不到一个小时的时间内完成,重建只需要几分钟。很有趣的是想知道Vista团队使用的是什么设置,基于Linux的构建农场似乎不太可能......那么可能是基于Windows的构建农场 :)

1

我不知道编译XP需要多长时间,但10/15分钟并不算太长。我们的项目包括Linux内核作为其中一个组件(不是最大的),需要大约一个小时才能编译完成。我们使用ccache进行了改进,现在只需要几分钟就可以完成。

这可能不是你问题的确切答案,但我认为它可能是相关/有用的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接