微软布局术:三大操作系统为何分裂如何统一?
扫描二维码
随时随地手机看文章
Windows,WindowsRT,WindowsPhone,微软这三个操作系统品牌之间是什么关系?微软为什么维持三个面向消费者的操作系统?它们未来会不会走向统一?阻碍系统融合的障碍是什么?
目前,微软有多个面向客户的Windows衍生品牌,如:32位(x86)和64位(x64)个人电脑上使用的Windows8.1,ARM平板上使用的WindowsRT,以及智能手机使用的WindowsPhone。据Canalys公司的调查分析,三个操作系统中至少有一个是多余的。而WindowsPhone和WindowsRT这两个系统被定位为“具有相似的开发人员和客户”,更是令人感到困惑。既然两个操作系统都能应用到智能设备,那就出现一个问题——为什么智能设备上要有两个操作系统?
Canalys的报告不过是事后诸葛。就在上周,微软设备与音像工程组的组长朱丽.拉尔森-格林在一个瑞银投资会议上就表示微软未来“不会继续拥有三个操作系统”。拉尔森-格林还简要描述了两种操作系统的不同需求—灵活处理不同的任务,一个锁定以移动,另一个追求高性能。
从某些方面来讲,令人高兴的是这可以说明WindowsRT系统确信将被封杀。来自玛丽乔弗里的传言似乎证实了这一点:WindowsPhone系统功能将会扩展。这种扩展首先是在2014上半年WindowsPhone发布的8.1版本中,然后是在2015年上半年发布的更新版本中。WindowsPhone的这种扩展将会使它的API(应用程序编程接口)与WindowsRT的相同,应用程序可同时应用于手机和平板电脑。因此,WindowsRT的市场将会被挤掉。
可以推测依然会有不同的系统扮演不同的角色。
然而,这些都没有得到官方证实。微软公司也没有提供专门的导向和路线图。这就依赖于你如何理解格林的话——微软已经不再拥有三个操作系统还是将会一直有三个或者更多操作系统。
针对不同CPU,本质是同一系统(Windows/WindowsRT)
从某些方面来讲,微软说是三个操作系统,这其实是一种误导。微软实际上没有三个客户操作系统,而是三个品牌。WindowsRT系统和与英特尔处理器兼容的Windows系统实际上并不是两个完全不同的系统。从性能上来讲,它们其实是一个操作系统“Windows”为两个不同的处理器架构而编译的。
ARMWindows系统比32位的Windows系统具有更严格的安全限制。WindowsRT(WindowsonARM)官方仅支持支持用新版的WinRTAPI编写的第三方软件。但是WindowsRT发布后,开发者很快发现如果破解掉额外的安全限制,就可以运行Win32API编写的所有Windows软件,当然需要为ARM重新编译。因为该系统的所有组件都是Windows系统现成的,只不过一些部分被重新封装,所以看起来该系统整个就像是一个Windows用户界面。
WindowsRT还造成两个不相关的影响。第一个是使用ARM处理器。第二个是默认的的软件环境。这两个问题都难以解决。得益于最新发布的Atom处理器,未来英特尔处理器似乎也可能广泛应用于智能手机上(在过去这绝无可能);然而毫无疑问所有平板电脑和手机所采用的系统仍将坚定地支持ARM芯片(而不是英特尔)。
拉尔森-格林明确表示,微软将继续拥有一个为移动平台锁定式的环境。这样看来,RT系统严格的限制性是其一个永久的枷锁。所以即使其品牌烙印会慢慢褪去,但是其影响依然存在。
Windows和WindowsRT并非微软已经首次开发可以被多处理器架构编译的操作系统。有时WindowsNT也在AlphaAXP,MIPSR4000和PowerPC604处理器上运行。而且不同版本之间也不是普遍的二进制兼容,例如可以在PowerPC上执行的未必可以在32位系统上运行,即使两者都可运行WindowsNT——这是一个特例,因为32位的软件可以利用一个系统集成的32位模拟器在Alpha系统上运行。但可能是由于人们购买(或者更多时候根本不买)这些WindowsNT系统的多样性,微软而没有意识到有必要给这些系统专门命名。
然而对于针对普通消费者的操作系统而言,就不能如上述那样模糊处理。精确传达不同品牌的兼容性非常重要。问题一目了然:微软目前所做的努力是否真的能让消费者分清x86Windows和WindowsRT?WindowsRT貌似可以运行32位Windows系统的程序,但事实上这并不可能。虽然它看起来确实像32位Windows系统,甚至还拥有同一个桌面、IE浏览器和Office办公软件。这令消费者十分困惑,难以去分清这两个品牌的真正区别。
这似乎像是鸡蛋里挑骨头,但从发展的成效和轨迹上来看却绝非如此。微软并不是在Windows和WindowsRT之间开发两个相互竞争的、不兼容的、不统一的平台,而是在做同一个操作系统并且对之进行二次编译。在WindowsRT上运行的软件也能在Windows8上运行,最好的情况是无需更改任何代码(针对用.NET、HTML/JavaScript语言编写的软件),最坏的情况是需要进行重新编译(针对用C++语言编写的软件)。
不同的API,WindowsPhone是孤立的系统
与它们差别最大的是WindowsPhone系统。WindowsPhone7以WindowsCE为内核(WindowsCE是微软公司最轻量级、可定制、嵌入式操作系统),当时它是微软公司唯一与ARM兼容的操作系统。微软在把WindowsCE应用到智能手机上拥有丰富经验(WindowsMobile系统也是WinCE的一个变种)。因此WindowsPhone7采用WinCE看起来似乎是一个明智的决定。第三方应用程序使用改版的Silverlight开发,该版本是一个附加了很多特定Phone系统组块的.NET工作环境。
到了WindowsPhone8,微软却选择了用NT作为内核。NT功能更为强大并且微软公司为之投入了绝大多数的研发力量,所以微软选择NT作为WindowsPhone8内核也在情理之中(不过这对消费者是不是好事就另说了)。WindowsRT的开发意味着Windows也可以在ARM架构上运行,所以没有任何理由再坚持使用WindowsCE。WindowsPhone8和Windows8系统共用了很多主要部件,因而两个操作系统的底层组件诸如网络堆栈和安全架构等有诸多共同之处。
为了支持已有的WindowsPhone7的应用程序,WindowsPhone8基本上包含了Phone7上相同的Silverlight工作环境。然而,WindowsPhone8新的应用程序却不能使用该环境。开发者有两个选择,其一是一个与旧的Silverlight环境相似的新.NET环境(虽然是完整的.Net运行环境,但是却缺乏Silverlight体系所支持的XNA3D图形API);其二是采用带Direct3D支持(微软公司的3D绘图接口)C++原生代码。
值得注意的是,WindowsPhone应用程序不仅不能使用Win32的API,而且也不能使用大部分新WinRT的API。
如果开发人员想在平板和手机应用间共享代码,也并非全无可能。这不是没有可能,因为有可能编写出一种同时适用于手机和普通Windows系统的功能共享的.NET代码,开发者称之为“便携类库”(PortableClassLibraries)。而且,WindowsPhone8系统将允许C++语言的开发者访问WinRTAPI(有时我们也称之为WinPRT)的受限子集和Direct3D的大部分功能。来自T.保罗的消息说,在手机和非手机操作系统之间大约有33%的相似度。
这使得WindowsPhone8系统成为一个奇怪的孤立系统。WindowsPhone8与Windows、WindowsRT之间共同的API很少。所以苹果的iOS系统和安卓系统的手机应用程序可以同时使用在平板电脑上,WindowsPhone的应用程序却依旧被限制仅在手机上运行。