构建 NetBSD 用户空间和内核可能需要多长时间?

构建 NetBSD 用户空间和内核可能需要多长时间?

我有兴趣使用 NetBSD 作为我的服务器上的操作系统。我没有使用过由源代码执行安全更新的系统,但已经阅读了足够的指南,可以轻松地尝试它。不过,我不知道这个手术大概需要多长时间。

给定一个相当中等的服务器,例如 1 个处理器核心和 0.5 到 1.0 GB RAM,按照以下指示构建 x86_64 系统的用户区和内核预计需要多长时间第 33 章 从源更新现有系统在指南中?

另外,此操作需要多少本地磁盘空间?我在指南中没有看到提及这一点。

答案1

大约需要一天的时间构建 5 个左右不同的体系结构,作为完整的发布版本(也称为 tarball 和 ISO 映像)。我正在相对较低的内存 (512M) i386 虚拟机上构建,使用一个脚本来检查源代码,并且执行围绕 build.sh 的一系列设置。

如果您有多个处理器/核心,则可以通过将并发级别设置为处理器/核心的数量来加快速度,甚至可以将并发级别设置为处理器/核心数量的两倍(假设构建主要受 I/O 限制) 。

答案2

我建议任何像样的不太现代的 x86_64 true服务器应该能够在几个小时或更短的时间内完成完整的构建,包括 xsrc。

我的 NetBSD 当前构建服务器是 Xen domU,具有 8GB RAM 和 8 个 VCPU,运行在具有 32GB RAM 的 Dell PE2950 8 核 (Xeon E5440 @2.83GHz) 上,并在集成 PERC 6/i 上具有一组速度相当快的 SAS 磁盘控制器(构建输出进入 RAID-0 分区)。那台机器只花了我大约 650 美元,当然是二手的。它可以从 NetBSD-5/i386 构建所有内容到最终 ISO,所有内容都是静态链接的(即比动态链接构建需要更多的磁盘 IO 和链接器内存),来自另一个 domU 上的 NFS 安装源。同一服务器,不到 2 小时(使用 -j12)。重新启动后(没有缓存)内核构建(amd64 GENERIC)需要不到 5 分钟(使用 -j12)。

目前,我的/build分区已使用 102GB,包含三个当前版本(amd64、i386、evbarm)和两个 5.x 版本(amd64 和 i386)的对象、二进制文件和 ISO。请记住,这都是单独的静态链接的二进制文件——动态链接的构建要小得多。静态链接的完整安装(即带有 xsrc 和 comp 以及其他所有内容)大约需要 6.6 GB。

答案3

构建内核可能需要 90 多分钟。为了加快编译过程,我们需要使用 -j选项,例如,如果您有 2 个核心,您可以输入:

fakeroot make-kpkg..... -j 2

或者

make -j 2

您可以将编译过程加快X2(45分钟),(8核不到10分钟)

您也可以使用该CONCURRENCY_LEVEL变量,例如,如果您有 2 个核心,您可以键入:

export CONCURRENCY_LEVEL=3

一般来说:

export CONCURRENCY_LEVEL= the number of cores +1

答案4

作为参考,./build.sh -U -j 12 -O /Users/mbelleau/netbsd/obj_amd64 -m amd64 release在 MacBook Air i7 1.7GHz 8GB RAM、NetBSD-7.0 版本上(无 X11)大约需要 2 小时:

===> Summary of results:
     build.sh command:    ./build.sh -U -j 12 -O /Users/mbelleau/netbsd/obj_amd64 -m amd64 release
     build.sh started:    Thu May 26 23:51:30 EDT 2016
     NetBSD version:      7.0
     MACHINE:             amd64
     MACHINE_ARCH:        x86_64
     Build platform:      Darwin 15.4.0 x86_64
     HOST_SH:             /bin/sh
     No $TOOLDIR/bin/nbmake, needs building.
     Bootstrapping nbmake
     MAKECONF file:       /etc/mk.conf (File not found)
     TOOLDIR path:        /Users/mbelleau/netbsd/obj_amd64/tooldir.Darwin-15.4.0-x86_64
     DESTDIR path:        /Users/mbelleau/netbsd/obj_amd64/destdir.amd64
     RELEASEDIR path:     /Users/mbelleau/netbsd/obj_amd64/releasedir
     Created /Users/mbelleau/netbsd/obj_amd64/tooldir.Darwin-15.4.0-x86_64/bin/nbmake
     Updated makewrapper: /Users/mbelleau/netbsd/obj_amd64/tooldir.Darwin-15.4.0-x86_64/bin/nbmake-amd64
     Successful make release
     build.sh ended:      Fri May 27 01:43:58 EDT 2016
===> .

对于空间使用:

$ du -sh /Users/mbelleau/netbsd/*
129M    /Users/mbelleau/netbsd/gnusrc.tgz
3.7G    /Users/mbelleau/netbsd/obj_amd64
7.1M    /Users/mbelleau/netbsd/sharesrc.tgz
137M    /Users/mbelleau/netbsd/src.tgz
 48M    /Users/mbelleau/netbsd/syssrc.tgz
2.9G    /Users/mbelleau/netbsd/usr
158M    /Users/mbelleau/netbsd/xsrc.tgz

后续(更新)发布版本应该更快;我使用 CVS 更新到 7.0-stable 标签 (cvs update -r netbsd-7-0 -Pd) 并重建,大约花了一个小时:

===> Summary of results: 
     build.sh command:    ./build.sh -U -u -j 12 -O /Users/mbelleau/netbsd/obj_amd64 -m amd64 release
     build.sh started:    Fri May 27 09:08:10 EDT 2016
     NetBSD version:      7.0.1_PATCH
     MACHINE:             amd64
     MACHINE_ARCH:        x86_64
     Build platform:      Darwin 15.4.0 x86_64
     HOST_SH:             /bin/sh
     No $TOOLDIR/bin/nbmake, needs building.
     Bootstrapping nbmake
     MAKECONF file:       /etc/mk.conf (File not found)
     TOOLDIR path:        /Users/mbelleau/netbsd/obj_amd64/tooldir.Darwin-15.4.0-x86_64
     DESTDIR path:        /Users/mbelleau/netbsd/obj_amd64/destdir.amd64
     RELEASEDIR path:     /Users/mbelleau/netbsd/obj_amd64/releasedir
     Created /Users/mbelleau/netbsd/obj_amd64/tooldir.Darwin-15.4.0-x86_64/bin/nbmake
     Updated makewrapper: /Users/mbelleau/netbsd/obj_amd64/tooldir.Darwin-15.4.0-x86_64/bin/nbmake-amd64
     Successful make release
     build.sh ended:      Fri May 27 10:11:14 EDT 2016
===> .

相关内容