delphij's Chaos

选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……

21 Jan 2014

FreeBSD 10.0-RELEASE

这是我加入 FreeBSD Release Engineering Team (re@) 之后,我们发布的第一个主要(X.0)版本。

这个版本对整个系统进行了大量的改进。其中的重要变化包括在基本系统中用 clang 取代了 gcc(所有 Tier-1平台)、新增了 unbound(用于取代BIND的部分功能,后者十分复杂,且支持计划经常与 FreeBSD 的发生冲突)、基本系统中提供了转码API iconv(3) (我在2010年指导的 Summer of Code项目)、使用了 PkgNG 包管理工具、BHyVe虚拟机、对于虚拟化支持的大幅改进(virtio(4)以及 Hyper-V支持)、ZFS新增了TRIM支持、ZFS的LZ4完整支持(我在去年新增的功能),等等。

这个版本的发布工程过程将发布日期推迟了总共三次(从2013年11月18日推迟到了2014年1月15日,大约两个月的时间)。我认为有很多需要改进和汲取经验教训的地方。总结如下:

  • 对 KBI 冻结的时间沟通不足:X.0版本涉及 KBI/KPI 冻结,而初期 re@ 对此宣导不够。由此导致后期必须进行某些修改,而 KPI/KBI 冻结的事项实际并未严格实施。
  • 对于测试重点等事项的跟踪需要进行改进:初期测试主要是依赖 re@ 的测试,许多影响比较大的方面未能覆盖到。

由于这些问题,导致在 BETA2 之后增加了两个新的 BETA。RC1之后,开发节奏基本是按照计划进行的,但由于意外情况必须增加RC4(一个非常严重的 VM bug)。而此后又发现了一个 10.x 新引入的安全问题,因此不得不发布 RC5 以便对修正进行更充分的测试。这些延期导致的一项(我认为是好的)副作用是,原定 10.0-RELEASE 之后两周左右发布的一批安全公告的修正内容也在 10.0-RELEASE 之前得到修正和公布。

注意(此处大坑):由于之前 freebsd-update 的 bug (EN-13:04EN-13:05),在更新之前的版本可能无法直接通过二进制方式升级到 FreeBSD 10.0-RELEASE。这些版本的 FreeBSD 应首先用 freebsd-update 升级到 9.2-RELEASE-p2、 9.1-RELEASE-p9、 8.4-RELEASE-p6、 8.3-RELEASE-p13 或更高版本之后再使用 freebsd-update 进行升级。