操作系统编译时间

Posted

技术标签:

【中文标题】操作系统编译时间【英文标题】:Operating System compile time 【发布时间】:2010-09-18 14:08:51 【问题描述】:

这只是一个一般性问题 - 我正在等待编译一些软件(我们在这里使用 Incredibuild,但仍可能需要 10/15 分钟),这让我想知道,有谁知道需要多长时间才能编译编译Windows XP或Vista?

我做了一些谷歌搜索,但没有真正找到任何有用的信息

【问题讨论】:

您为什么要担心构建时间?更长的构建时间是way more fun。 【参考方案1】:

12-24 小时或过夜的答案几乎肯定是正确的。

很久以前,当我在 Microsoft 时,从那以后我每次听到它,他们都会“每晚”构建。 (我曾经相当定期地加载 NT 的每日构建。如果我记得正确的话,他们每周进行一次“检查构建”或类似的。)

版本末尾的那些数字是(或至少是)这些每日构建增量:

我的 Windows 8.1: C:\WINDOWS\system32 > 版本 Microsoft Windows [版本 6.3.9600]

将 9600 除以 365 得出大约 26 年的每日构建时间,或者从 2013 年发布 8.1/2012-R2 开始,到 1987 年左右开始在 NT 上进行开发,Windows NT 3.1 于 1993 年发布。

【讨论】:

【参考方案2】:

OP 正在询问 Windows

"没有其他软件项目 像这样,”Lucovsky 说,“但是 一件事保持不变 [多年来] 需要多长时间 构建 [Windows]。 无论哪个 生成产品,需要 12 编译和链接系统的时间。" 即使处理量增加 多年来,Windows 拥有 成长以匹配,和发展 过程变得更加 复杂,以至于微软做到了 更多代码分析作为 每日构建。 “构建中的 CPU 实验室持续固定 12 小时,”他说。“我们已经调整了 自 Windows 2000 以来的过程。现在,我们 将源 [code] 树分解为 独立的源代码树,并使用 新的构建环境。它是 多机环境,让我们 更快地转动曲柄。但由于 所有新的代码分析,它仍然 需要 12 小时。”

SOURCE

另请参阅 Mark Lucovsky 经典 presentation 关于开发 Windows NT/2000。

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

【讨论】:

真的很有趣...虽然我印象深刻的是only 需要 12 小时。 显然,Windows 10 大约需要 16 个小时:twitter.com/DawidFerenczy/status/543171331328864257【参考方案3】:

Ales Holecek,Windows 团队开发副总裁 said 表示构建 Windows 10 需要大约 16 小时。而且它每天晚上都会自动构建。

当然,它不是使用单机构建的,而是使用一些构建农场。

【讨论】:

【参考方案4】:

我不知道编译 XP 需要多长时间,但 10/15 分钟一点也不大。 我们的项目将 Linux 内核作为组件之一(不是最大的)编译大约需要一个小时。我们通过使用ccache 对此进行了改进,现在只需几分钟。

不完全是您问题的答案,但我认为它可能是相关/有用的。

【讨论】:

【参考方案5】:

需要多长时间实际上取决于构建设置,我真的怀疑 Vista 工程师需要一天来构建代码,即使在一台机器上需要一天。

我从事类似规模的项目,直到最近,在共享的多处理器 sun 服务器上构建可能需要长达 12 个小时。由于我们已切换到基于 Linux 的构建场,因此可以在不到一小时的时间内完成干净的构建,并在几分钟内完成重建。

想知道 Vista 的人正在使用什么设置会很有趣,基于 Linux 的构建农场似乎不太可能......那么也许是基于 Windows 的构建农场 :)

【讨论】:

【参考方案6】:

我记得听说 Vista 花了一天多的时间来构建(不过现在找不到参考资料,唉)。它在50 million lines of code 附近的某个地方。

【讨论】:

【参考方案7】:

我掌握的第三手信息是,完成一个 Windows 构建大约需要一天时间。这或多或少符合尝试从头开始构建您喜欢的 OSS 操作系统。

构建现代操作系统是一项复杂而艰巨的任务。不需要更长时间的唯一原因是因为像微软这样的公司已经设置了构建环境来帮助自动化集成测试。因此,与大多数 OSS 构建相比,他们可以用更少的人工来构建系统。

如果您想了解构建操作系统需要什么,我可以推荐免费的电子书:Linux from Scratch

如需更自动化的构建,请尝试Gentoo。这两个选项都应该让您更好地了解操作系统构建过程。

【讨论】:

我记得看过一个视频,其中 XP 花了大约 12 个小时在他们的构建农场上,所以一天的 Vista 并没有让我感到震惊。当然,当他们谈论构建操作系统时,他们谈论的是在光盘上构建每个二进制文件,然后为 QA 组创建光盘映像等。大工作! :)【参考方案8】:

好吧,自己尝试一下:获取一个 Gentoo(或其他 Linux)发行版或尝试 Microsoft Research 的 Singularity 项目。另一个有趣的替代方案是 ReactOS 项目。单独编译内核大约需要(取决于机器)等待程序的 15 分钟。编译整个系统需要相当更长的时间!

【讨论】:

以上是关于操作系统编译时间的主要内容,如果未能解决你的问题,请参考以下文章

Android系统编译与测试

您是不是必须为新的操作系统构建新的编译器?

创建系统调用的编译器优化?

堆栈由编译器或操作系统/架构创建

交叉编译工具与操作系统的关系

针对 iPhone 3.0 操作系统编译时 UIActionSheets 出现奇怪错误