Win7之家( afsion.com.cn):Win7版本7600.16385的由來 為何不是7777
感謝 花舞 投遞
所有的事情都是有原因的,Win7版本 7600.16384和7600.16385也是有出處的。
首先7600這個(gè)build number是怎么來的。
第一點(diǎn)自然是要被100整除, 這個(gè)是自從xp 2600開始的慣例。 關(guān)于這個(gè)慣例,還是有段故事的, 因?yàn)閤p之前, build number都是1個(gè)1個(gè)加上去的, 從來沒有跳過,但是xp的時(shí)期從exchange來了個(gè)老大到Windows部門, 于是就把被100整除的這個(gè)慣例帶到windows了。 這一點(diǎn)沒有什么技術(shù)原因,純粹為了好聽。
那么為何不是7300呢? 這里有個(gè)技術(shù)原因。 最后的build number必須要能被16整除。這個(gè)是為了做service pack用的, QFE team預(yù)留了build number的最后4個(gè)bit用來作為service pack的number (當(dāng)然這個(gè)是Vista開始才出來的要求了)。 比如Vista的6000, sp1就是6001, sp2就是6002,最多能做16個(gè)sp。 因此win7的初始rtm build號(hào)也必須被16整除。 那么因?yàn)橹白詈笠粋(gè)build已經(jīng)是7271了,最近的一個(gè)即能被100整除,又能被16整除的數(shù)字就是7600了, sp1就是7601。 7777雖然是個(gè)好數(shù)字,但是并不符合條件。
再下一個(gè)符合條件的就是8000了,那么為什么不是8000呢? 這里的原因是build number也是一種有限的資源, windows API GetVersion最大能支持的build number是16383,考慮到未來n年的需求,這里不能隨意的亂跳build number,要不然再過幾個(gè)release, build number就用完了, 到時(shí)候就麻煩了。
最后說說minor build number, 也就是QFE version, 為什么是16384。 這個(gè)主要也是QFE的需求, RTM的minor number的第14個(gè)bit必須為1,這個(gè)是hotfix用來判斷的一個(gè)依據(jù), 這樣的話滿足條件的最小的minor number就是2^14=16384。 Vista rtm的第一個(gè)build也是16384,后來出了點(diǎn)問題才變成16386的。 這個(gè)和能不能被什么整除倒是沒有關(guān)系。
順便提到一個(gè)問題, 就是n年后當(dāng)Windows的build number到了10000之后, 很多軟件就會(huì)出問題, 類似y2k問題。
評(píng)論列表
查看所有 條評(píng)論