- 积分
- 35003
- 最后登录
- 2023-1-18
- 精华
- 0
- 阅读权限
- 255
- 主题
- 961
- UID
- 1027683
- 帖子
- 79767
- PB币
- 10051
- 威望
- 516
- 贡献
- 1
- 技术
- 888
- 活跃
- 10811
- UID
- 1027683
- 帖子
- 79767
- PB币
- 10051
- 贡献
- 1
- 技术
- 888
- 活跃
- 10811
|
发表于 2012-7-27 09:32:44
IP属地上海
|显示全部楼层
啊哈哈 版本号为什么是酱紫的 版本号是如何设置的 远景早就有童鞋为大家解答过了 贴过来分享一下
原文出自:
7600.16384的由来,以及为何不是7777之类BY timchenyx
以下是引用内容:
所有的事情都是有原因的, 7600.16384也是有出处的.
首先7600这个build number是怎么来的. 第一点自然是要被100整除, 这个是自从xp 2600开始的惯例. 关于这个惯例,还是有段故事的, 因为xp之前, build number都是1个1个加上去的, 从来没有跳过, 但是xp的时期从exchange来了个老大到windows部门, 于是就把被100整除的这个惯例带到windows了. 这一点没有什么技术原因,纯粹为了好听.
那么为何不是7300呢? 这里有个技术原因. 最后的build number必须要能被16整除. 这个是为了做service pack用的, QFE team预留了build number的最后4个bit用来作为service pack的number (当然这个是vista开始才出来的要求了). 比如vista的6000, sp1就是6001, sp2就是6002,最多能做16个sp. 因此win7的初始rtm build号也必须被16整除. 那么因为之前最后一个build已经是7271了,最近的一个即能被100整除,又能被16整除的数字就是7600了, sp1就是7601. 7777虽然是个好数字,但是并不符合条件.
再下一个符合条件的就是8000了,那么为什么不是8000呢? 这里的原因是build number也是一种有限的资源, windows API GetVersion最大能支持的build number是16383, 考虑到未来n年的需求, 这里不能随意的乱跳build number, 要不然再过几个release, build number就用完了, 到时候就麻烦了.
最后说说minor build number, 也就是QFE version, 为什么是16384. 这个主要也是QFE的需求, RTM的minor number的第14个bit必须为1,这个是hotfix用来判断的一个依据, 这样的话满足条件的最小的minor number就是2^14=16384. vista rtm的第一个build也是16384,后来出了点问题才变成16386的. 这个和能不能被什么整除倒是没有关系.
顺便提到一个问题, 就是n年后当windows的build number到了10000之后, 很多软件就会出问题, 类似y2k问题.
帮大家整理了一下上面那个帖子里的各种回答内容,有兴趣的童鞋看看咯
下面有同学又要问啦:这么说windows 10出来时又会引发一场危机?和千年虫、ipv4地址用尽的问题一样?!
Ans: 肯定会出现类似问题的,因为目前很多程序/脚本都误以为build号必然是4位数字...
有童鞋果断预言:这么一来,是否可以预测Windows 8的RTM是8800.16384?
可惜被MS忽悠了 哈哈哈
也有童鞋有疑问:唯一的问题是最后一段说:当windows的build number到了10000之后……
和前文貌似是矛盾的。照前文看,应该是到了16483之后~~
Q:10000以后就会出问题,因为有些程序以为版本号只有4位数字. Q:既然最大的GetVersion是16383,为什么会有16384, 385?
A:这个限制的是major version最大16383, 就是7600那个部分. 后面的是minor version, 没有这个限制. 有精油补充知识:
Y2K是Year 2000的缩写, 千禧危机, 千年虫, 千年问题 (千年问题可以追溯到二十世纪六十年代. 当时计算器内存非常宝贵, 故而编程人员一直借助使用 MM/DD/YY 或 DD/MM/YY 即月月/日日/年年或日日/月月/年年的方式来显示年份, 但是当年序来到公元2000年的1月1日, 系统却无法自动辨识00/01/01究竟代表1900年的1月1日,还是2000年的1月 1日, 所有的软硬件都可能因为日期的混淆而产生资料流失、系统死机、程序紊乱、控制失灵等问题, 如此所造成的损失以及灾难是无法估计想像的.
由于系统日期的年份皆以公元年份的末两位设定,故公元二千年时会出现「00」,使计算机误认为1900年,而倒退一百年,对社会产生伤害,例如铁、公路交通管制错乱,飞机飞行错乱、发电厂管理错乱、金融系统错乱、生产线错乱、电信错乱….等。
|
-
3
查看全部评分
-
|