Win7版本7600.16385的由來(lái) 為何不是7777

2010/1/22 8:08:31    編輯:Win7china.COM     字體:【

Win7之家www.afsion.com.cn):Win7版本7600.16385的由來(lái) 為何不是7777

感謝 花舞 投遞

所有的事情都是有原因的,Win7版本 7600.16384和7600.16385也是有出處的。

首先7600這個(gè)build number是怎么來(lái)的。

第一點(diǎn)自然是要被100整除, 這個(gè)是自從xp 2600開(kāi)始的慣例。 關(guān)于這個(gè)慣例,還是有段故事的, 因?yàn)閤p之前, build number都是1個(gè)1個(gè)加上去的, 從來(lái)沒(méi)有跳過(guò),但是xp的時(shí)期從exchange來(lái)了個(gè)老大到Windows部門, 于是就把被100整除的這個(gè)慣例帶到windows了。 這一點(diǎn)沒(méi)有什么技術(shù)原因,純粹為了好聽(tīng)。

那么為何不是7300呢? 這里有個(gè)技術(shù)原因。 最后的build number必須要能被16整除。這個(gè)是為了做service pack用的, QFE team預(yù)留了build number的最后4個(gè)bit用來(lái)作為service pack的number (當(dāng)然這個(gè)是Vista開(kāi)始才出來(lái)的要求了)。 比如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,考慮到未來(lái)n年的需求,這里不能隨意的亂跳build number,要不然再過(guò)幾個(gè)release, build number就用完了, 到時(shí)候就麻煩了。

最后說(shuō)說(shuō)minor build number, 也就是QFE version, 為什么是16384。 這個(gè)主要也是QFE的需求, RTM的minor number的第14個(gè)bit必須為1,這個(gè)是hotfix用來(lái)判斷的一個(gè)依據(jù), 這樣的話滿足條件的最小的minor number就是2^14=16384。 Vista rtm的第一個(gè)build也是16384,后來(lái)出了點(diǎn)問(wèn)題才變成16386的。 這個(gè)和能不能被什么整除倒是沒(méi)有關(guān)系。

順便提到一個(gè)問(wèn)題, 就是n年后當(dāng)Windows的build number到了10000之后, 很多軟件就會(huì)出問(wèn)題, 類似y2k問(wèn)題。