Windows的build版本:chk和fre的区别

最近Windows8好像在造势吧,炒得还比较火,由于工作需要,我今天也去公司内部下载Win8的Beta版来作为Guest放到Xen中进行测试,我下载其ISO之时,我看到同一个版本号又有两种不同标识,我就被chk和fre这两种标识搞糊涂了,不确定下载哪一个。Google之后才发现,是Windows build中惯用的两个术语,所以忍不住在这里转载一下别人写的关于chk(Checked)和fre(Free)的区别。常年在Linux下工作,不是Windows专家,所以只能转载了,^_^

如下内容来自:“Checked”和“Free”是怎么来的?

另,可参考英文原文:http://blogs.msdn.com/b/larryosterman/archive/2005/08/31/458572.aspx

对微软技术比较了解的可能知道Windows的同一个版本号的build经常被分为chk和fre,chk表示Checked,fre表示Free。主要的区别在于,checked build有traces和asserts,而free build没有。

但是,checked和free是怎么出现的呢?因为传统的用词一般是debug和retail(或者release)。

当Windows NT还处在开发阶段的时候,开发组的人还在用“debug”和“retail”。Debug和Retail的不同在于编译时的选项:

  1. Compiler Optimization:开、关
  2. Debug Traces:开、关
  3. Assertions:开、关
  4. Sanity checks:开、关

传统来说,Debug是“Optimization:关,Traces:开,Assertions:开”Retail是“O:开,T:关,A: 关”。后来,NT团队加入了Sanity checks的选项。本来,Sanity check在内部版本中有,在发布的时候会移除掉。

于是,NT的团队就有了“O:开,T:开,A:开,S:开”,“O:开,T:关,A:关,S:开”和“O:开,T:关,A:关,S:关”三种Build。

最后一种是传统的“retail” build。那么,前两种叫什么build呢?第一种Optimization是开着的,所以不是传统的“debug”,后一种Sanity check是开着的,所以不是传统的“retail”。

为了区别这些build的不同。讨论以后,NT团队决定用“checked”表示“O:开,T:开,A:开,S:开”“Free”表示“O:开,T:关,A:关,S:开”。Checked是因为所以的check都打开了,Free是因为“check free”。

后来,随着NT 3.1项目进展,团队认识到:

  1. 他们其实根本就不会去测试“retail” build,
  2. 他们对free build进行了性能测试,结果发现它能够满足性能要求。

于是,团队把free build作为最终版本发布。

master

Stay hungry, stay foolish.

One Comment

发表评论

邮箱地址不会被公开。 必填项已用*标注

*