从版本宏定义谈 Windos 的版本(一)
你想知道 Windows 有哪些版本号码?如果你是开发人员,可以从微软的 SDK 中可以看出一些:
// // _WIN32_WINNT version constants // #define _WIN32_WINNT_NT4 0x0400 #define _WIN32_WINNT_WIN2K 0x0500 #define _WIN32_WINNT_WINXP 0x0501 #define _WIN32_WINNT_WS03 0x0502 #define _WIN32_WINNT_WIN6 0x0600 #define _WIN32_WINNT_VISTA 0x0600 #define _WIN32_WINNT_WS08 0x0600 #define _WIN32_WINNT_LONGHORN 0x0600 #define _WIN32_WINNT_WIN7 0x0601
上面的内容是摘自最新的 Win7 SDK 中的 sdkddkver.h 。
一、 WIN 32 位有哪些版本
我们可以看到, Windows 的版本从最开始的版本 4.0 发展到现在是 6.1 。每个版本的名称是:
- 4.0 版本的 Windows 被称作 Windows NT 4
- 5.0 的版本的 Windows 被称作 Windowns 2000
- 5.1 的 Windows 版本被称作 Windows XP
- 5.2 的 Windows 版本被称作是 Windows Server 2003
- 6.0 的 Windows 版本被称作是 Windows Vista 或者是 Windows Longhorn ,或者是 Windows Server 2008
- 6.1 的 Windows 版本被称作是 Windows 7.
二、 Win 7 的版本号为什么不是 7.0
比较奇怪的事情是,尽管 Windows 7 带有一个数字 7 ,可视它的版本号只是比上一个系统 Windows Vista 大一个次要版本号,是 6.1 。这是为什么,据微软官方博客的说法是:
“ Windows 2000 的代码版本号是 5.0 ,我们推出 Windows XP 时,用的是 5.1 ,尽管 XP 是一次重大升级,我们为了最大限度保持应用程序的兼容,仍然没有改变主要的版本号。后来,我们有了 Windows Vista, 就是 Windows 6.0 ,所以,作为我们另一个重大升级, Windows 下一版本号叫 Windows 7 是自然而然的事
在用 Windows 5.1 作为 XP 版本号的时候,我们是为了帮助开发者保持 API 的兼容,在 Windows Vista 版本改为 6.0 的时候,我们得到不少教训,因改变基本版本号而导致严重的兼容问题。所以,我们决定将 Windows 7 的版本号定为 Windows 6.1
......
有人会认为将 Windows 7 的版本号定为 6.1 是否意味着 Windows 7 是一次小的升级,并非如此。 Windows 7 是一次重大的革命性创新,我们使用 6.1 的唯一原因是必须保持应用程序的兼容。”
看到没有,官方的说法是为了保持应用程序的兼容性所以只改变了次要版本号。不过在我看来, Win 7 相对 Vista 来说改变并不是很大,改变一下次要版本也反应了 Win 7 的改变不是实质和核心的改变,最多是微软为了在 Vista 营销失败情况下修改自己错误而特意打出的一张牌,让我们这些用户忘记不愉快的 Vista ,痛痛快快扔掉 XP ,赶快掏钱,换成 Win7 。
三、 4.0 以前的版本在哪儿?
从我们在上边可以看到,起始的版本号是 4.0 ,难道 Windows 一出生就是大高个 4.0 ? 当然不是,之前还是有很多版本。微软也不能独立于客观事物发展变化的规律,一下子就能吃过胖子。最开始的 Windows 版本是 1.0 ,接着是 2.0 ,不过接触过当时这两个版本的人现在也不多了,原因很简单,一是 Windows 当时功能是相当简陋的,也很丑,另外是当时还有比 Windows 好看得多的 Apple 的 Macintosh , Windows2.0 努力模仿的就是它。
微软随后推出了著名的 Windows 3.0 ,这个“千呼万唤始出来”的操作系统一面世便在商业上取得惊人的成功,但是在 1994 年时被苹果公司控告侵权,展开了著名的 “Look and Feel ” 诉讼官司。
从 Windows 1.0 到 3.0 ,它们有一个共同点,那就是它们都属于 WIN 16 ,而在 4.0 以后都是 WIN 32 。