Windows Internals – 1.1 概念与工具之Windows版本

转载请注明出处:https://cyc.wiki/index.php/2017/07/09/windows-internals-1-1/


本文表格图片均出自《Windows Internals, Seventh Edition, Part 1》,侵删。
All tables and figures are copyrighted by Windows Internals, Seventh Edition, Part 1. Please contact me to delete if there’s any violation.


Windows 版本号

第一章开头主要讲解了Windows操作系统的版本更迭以及未来的更新计划。

下面的表格列出了Windows操作系统发布的产品名称以及其对应的内部版本号:

Product Name Internal Version Number Release Date
Windows NT 3.1 3.1 Jul 1993
Windows NT 3.5 3.5 Sep 1994
Windows NT 3.51 3.51 May 1995
Windows NT 4.0 4.0 Jul 1996
Windows 2000 5.0 Dec 1999
Windows XP 5.1 Aug 2001
Windows Server 2003 5.2 Mar 2003
Windows Server 2003 R2 5.2 Dec 2005
Windows Vista 6.0 Jan 2007
Windows Server 2008 6.0 (SP1) Mar 2008
Windows 7 6.1 Oct 2009
Windows Server 2008 R2 6.1 Oct 2009
Windows 8 6.2 Oct 2012
Windows Server 2012 6.2 Oct 2012
Windows 8.1 6.3 Oct 2013
Windows Server 2012 R2 6.3 Oct 2013
Windows 10 10.0.10240 Jul 2015
Windows 10 version 1511 10.0.10586 Nov 2015
Windows 10 version 1607 10.0.14393 Jul 2016
Windows Server 2016 10.0.14393 Oct 2016

发现规律没?
在Windows 7以前,Windows的产品名称和内部版本号是对应的,NT时代的系统命名很直接,就是Windows NT x.y(其中4.0就是大名鼎鼎的Windows 95);到了Windows 2000,XP,Vista,也基本上是按照架构的更迭去更新大版本号或小版本号。
但是Windows 7为什么还叫做6.1,后面的也都不再更新大版本号,直到Windows 10发布呢?作者告诉我们,原来是因为Windows XP太火了,有大量的软件为Windows XP平台设计而开发,其中检测操作系统版本的条件很多都是大版本号>=5且小版本号>=1,于是Vista的版本号升至6.0时,有大量的XP系统上开发的软件无法运行,成为了Vista这个背锅王背的其中一个锅。为了避免这类事情再次发生,Windows就再也不敢随便改版本号了,每次就在小版本号上加一点就好了。
这个局面一直持续到了Windows 10发布。至于Windows 10为什么叫10不叫9,有人说是因为判断Windows 9x系统的版本条件是匹配字段以”Windows 9″开头,于是就会跟Windows 9重复,其实看了上面这个表你就明白这就是一个段子而已,真正的程序员都是读NT的版本的。

Windows 10

说说我跟Windows 10的结缘吧。我在2015年夏天进入微软实习,加入操作系统工程院,那时候正好是Windows 10发布和升级的时候。有一天我就发现,电梯口对着的那间会议室被装扮成了这个模样:

经常可以看到一些大佬们在里边开会,还有投影幕布上跳动的数字。亲身处在这个环境中,心情还是有点激动的。出了升级失败的bug之后,也会跟着担心这个bug啥时候能解决。虽然我的实习内容跟这个没什么关系,但是能感受到这样紧张的氛围。

等我正式入职微软以后,确实就在参与Windows 10操作系统的开发工作了。每天来到公司,点下测试机的系统升级的重启按钮,pull下最新代码敲下编译命令,然后出去泡杯咖啡,就这样开始每天的工作。以前觉得重装系统费事,现在每天重装一遍,美滋滋。

书上提到了Windows 10两个重要特点:

Windows as a service

在PC时代,软件迭代的速度比较慢,人们学习和接受新的软件功能的速度也比较慢,传统软件工程的迭代周期会比较长,以前Windows大概两年左右出一个新版本。有点像是攒气憋大招,当然也有空大的状况(又说你了,Vista)。
后来进入互联网时代了,软件都往云上部署,想上什么新功能直接就上线,过两天出bug了马上又能撤回来。Windows这种步伐已经完全赶不上用户的需求,于是从Windows 10开始,Windows将不再开发全新的版本,而是直接在Windows 10上进行迭代更新,目前是每年有两次大的更新。其实就是在向互联网产品看齐,将Windows作为一种服务,通过云端更灵活地进行更新迭代和个人定制(Office 365就是传统软件上云的一个成功例子)。
所以为啥Windows 10刚出来的时候bug这么多,还不是你们逼的(手动滑稽)。另外插句题外话,Windows Update劝大家还是打开吧,很多我们搞的bug都得在Update里面修。。

我自己画了个表列了一下目前Windows 10的版本和内部代号:

产品版本号 内部代号
Windows 10 TH1
Windows 10 Version 1511 TH2
Windows 10 Version 1607: Anniversary Update RS1
Windows 10 Version 1703: Creator Update RS2

OneCore

能够谈这个问题的公司估计目前只有微软一个。Windows基本覆盖了我们日常生活中使用到的大部分电子设备,PC、平板、手机(这个虽然没人用但是可以有)、游戏主机Xbox、混合现实设备HoloLens,还有地铁上、公交上、自动售货机上偶尔能看到的蓝屏。它们都是Windows,但是应用却不能通用。
从Windows 8开始,Windows开始了它的内核一体化进程。Windows 8和Windows Phone 8实现了同一套内核共享。Windows 8.1和Windows Phone 8.1实现了同一套WinRT API共享。到了Windows 10,真正实现了OneCore平台,实现了在PC、手机、Xbox、HoloLens、IoT设备上共享同一个操作系统平台。Windows 10上的Univeral Windows Apps就是这个共享平台的产物,它可以在所有的Windows 10设备上运行。
那OneCore的进程是不是就结束了?当然没有,实现了共享之后下一步就是把非共享的部分清除出去,这样才能真正的实现纯的OneCore Windows。最新发布在Surface Laptop上的Windows 10 S就是这样一个纯OneCore的Windows(这么描述其实还不够准确,系统本身的OneCore化就没有完全),只能运行UWP应用。经典桌面应用中这种粗犷的运行方式具有太多的问题,安全性不好,系统文件容易被损坏,兼容性也存在问题。未来终将是UWP应用的天下,只是改革历程会持续比较长的时间。

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

You are commenting using your WordPress.com account. Log Out /  更改 )

Google photo

You are commenting using your Google account. Log Out /  更改 )

Twitter picture

You are commenting using your Twitter account. Log Out /  更改 )

Facebook photo

You are commenting using your Facebook account. Log Out /  更改 )

Connecting to %s