解读Windows 8
夏昆冈 于 2012.11.04 11:11:00 | 源自:www.soomal.com | 版权:原创 | 平均/总评分:10.00/70

随着Windows 8以及Windows Phone8、Surface等软硬件的发布,包括Windows RT在内的各个版本的Win8已经展现在大家面前,这些操作系统有什么异同,有什么可共享资源,是很多读者所关心的。这篇文章尝试用简单的语言来阐述它们的结构和相互关系。

  • 相对老版本的Windows,8最大的变化就是将开始菜单换成了开始屏幕,而开始屏幕上的方块[微软称为“磁贴”]组成的“方阵”让人印象深刻,而在这些磁贴背后,是Windows系统自全面更换为NT架构以来一次最大的变动,不仅仅是形式上的变化,其引起的争议也是相当激烈,甚至升华到了Windows、微软的兴衰存亡的高度。

    Windows 8 的开发结构

  • 我们先简单的说说老的Windows应用程序的开发模式,微软提供了一套叫做Win32的API集,程序员可以通过Win32 APIs实现各种功能,而我们现在在电脑中使用的Photoshop、Office、QQ 2013、包括本站开发的Soomal煲箱软件等等,都是基于Win32 APIs开发的程序,这类程序有着标准的窗口界面,微软称之为Desktop APP,即桌面程序,也有媒体称之为经典模式。当然,Windows系统中不只是Win32 APIs可以用,还有.NET、DirectX等,基于这些开发的,同样也属于桌面程序。

    再来看看Windows 8 有何不同。这种磁贴风格的应用程序,最初叫Metro,第一次是出现在Zune HD播放器上,后移植到了Windows Phone 7上。而Windows 8 也引入了Metro。但Metro这个名字可能涉及侵权,Metro也一度更名为其他,最后确定的名称为Windows UI,为了行文方便,我们将之缩写为WUI。

    WUI背后是一个全新的中间层,理解这点非常重要。它将Windows各种APIs重新整合成了一个全新的APIs,叫做Windows Runtime APIs,通过这个统一的APIs,可以进行有别于以往的开发,在开发语言上,也比旧APIs要更加灵活,甚至支持HTML+CSS作为开发语言。这个中间层可以运行于Windows CE/NT核心之上,也可以对X64/X86/ARM核心兼容。基本可以这么认为,WUI程序有着与系统无关的特性,它可以运行于基于ARM的WP手机之上,也可以运行于台式机的X64/X86的Windows8系统当中。

    简而言之:Windows 8 包含两套界面[APIs]系统,WUI可以实现跨平台,而桌面可以兼容老的程序。

    Windows UI的优缺点

    对于开发者而言,开发WUI的应用程序的入门门槛变低了,而且适用手段更加丰富,可以说是节约了开发成本,提高了效率。但WUI也有着负面的一面,它受到的监管更多,触及底层操作的代码相对难以实现,曾经就有知名软件公司抱怨WUI管得太多。关于“管得太多”,我们的观点也由开放变得保守,看看Android上的流氓程序的横行,就能明白趋紧的监管有利于提高用户体验。

    WUI[Metro]程序界面对触摸进行优化,使用起来比键鼠更加方便,但它同时也挑战了Windows用户的传统使用习惯,这也是其被人诟病的最大原因。WUI的界面特点还导致了一些其他的问题,由于为触摸优化,在设计大型软件时,密集的菜单很难得到合适的处理,而这正是桌面程序所擅长的。在WUI界面下,诞生大型软件的可能性并不高,因此也可以认为,WUI并不具备取代桌面程序的潜力,两者会长期并存。

    简而言之:Windows UI虽然适合触摸,但受监管以及不易开发大型程序的不足,它无法取代传统桌面,而是形成两者互补的形式。

    Windows RT

  • 前些时候,我们入手了一台基于Windows RT的Surface。当我们启动Surface后,发现Windows RT也有桌面模式,这很有意思。

    Surface采用的ARM处理器,而Surface有桌面模式,这颠覆了一些固有的看法,不少人认为桌面模式是X64/X86 才有的,但ARM版的Windows上也出现了,不用问元芳,也知道其中必有蹊跷。

    Windows RT的桌面模式与标准版的Windows没有任何区别,也提供了硬件管理、任务管理、资源管理等等,也可以运行桌面程序,内置的Office 2013、IE等等都是桌面程序,Win32 APIs应该移植到了RT当中。是不是意味着Windows RT可以运行第三方的桌面程序?答案是否定的,X64/X86的桌面程序无法在RT上执行。既然有Win32 APIs,那么移植应该很简单,理论上是这样,但微软并没有公开提供适用于RT的编译器,到目前为止,RT下的桌面程序全部都是微软自家的,也意味着微软在独占RT的桌面开发环境。

    没有编译器,就意味着基于Win32 APIs的开发在RT上开发变得不现实,至少目前是这样。唯一的路子就是开发基于Windows Runtime APIs的WUI程序。RT其实就是Runtime的缩写,这其中似乎透露出了微软不开放RT 桌面模式编程的决心。

    为什么不开放桌面模式的开发?这其中应该有很多原因,RT是针对平板开发的系统,桌面程序不太适合触摸,因此微软阻断了桌面程序的开发,同时也可以让开发者全力投入WUI程序的设计当中。平板也不同于台式机,它不适合折腾,如果开放桌面程序,可能会导致程序失去监管,在X64/X86的Windows环境下,已经有太多流氓软件,如果在平板中重现,将是一场灾难。如果开放RT的桌面编程,对intel的冲击也将是巨大的。

    Windows 8 系的异同

    Windows 8/Windows RT/Windows Phone 8 都基于NT核心,但相互之间并不是全兼容,微软通过控制两种界面模式来进行细分。

    • Windows8 提供完整的WUI和桌面程序支持,用户可以成为系统管理员。
      Windows RT提供完整的WUI支持以及有限的桌面程序支持,用户拥有系统管理员权限。
      Windows Phone 8提供完整的WUI支持,用户可能无法获得高级管理员的权限。

    可以看出,它们之间的交集只有WUI以及NT核心,所谓兼容,是不包含桌面程序的。WUI担当起了跨系统平台跨硬件平台共享资源的大任,通过控制桌面程序和用户账号权限的方式,来实现系统的差异化和目标用户设定。

    新Windows时代?

  • 从2009年的Zune HD试验Metro,到2012年全面采用Metro并更名为Windows UI,微软花了4年的时间,而这4年,正是智能设备大爆发的年代,微软却错过了。有媒体喜欢用“何时重建辉煌”等句子来拷问微软。其实微软依然还是那个微软,还是那个桌面霸主。而如今搬出的Windows 8 阵型,目的显然不是桌面系统,而是移动设备,这其中有几个看点。

    • 基于Windows 8或RT的Surface 是平板化的笔记本,iPad是平板化的掌机,就功能来说,Surface更全面,但iPad易用性更好。用户会如何抉择?
      程序数量和质量决定成败,WUI程序何时能达到对数量不敏感的规模?
      微软Office展现的移动办公理念是否对用户真的有吸引力?
      DX和XBOX Live能否助WP8在游戏应用上展现特别魅力?
      用户会不会更喜欢Windows更方便的联网和共享方式?
      用户会不会对Windows RT更好的扩展性动心?
      ……

    从目前来看,微软走的是差异化竞争路线,它确实能够高质量的实现竞争对手不方便做的事情,但也有面对竞争对手长处明显落败的短处,所以,任何断言微软会成功或者会失败的言论都是图一时嘴快。我们不敢肯定新Windows时代会到来,但我们做好了迎接新Windows的准备,未来我们将持续的关注Window RT以及Windows Phone 8相关的技术、硬件、资料,也将持续发表一些与之相关的文章,欢迎大家关注。