微软在操作系统领域共有3大分支,其中之一是已经成为历史的DOS/Win9X,而另一分支则是正在桌面环境上发光发热的NT架构,最新一代产品为Vista,而CE这一分支算是微软针对个人计算机以外的产品所开发的操作系统家族统称,使用在PDA或智能型手机上的就称为Windows Mobile,要使用这个名称必需要通过微软认证,而应用在其它用途,如机上盒、VoIP电话、收银机等则维持Windows CE的名称,不需通过认证,但是在授权费用方面则是有所不同。基本上,不同名称只是在于启用元件的不同而已,基本核心都完全一样。而我们将在这篇所讨论的,就是基于CE架构之下的行动装置操作系统架构。
图说:Windows CE的发展历程。
手持式智能型装置市场动态
目前占较大比例的Windows嵌入式应用,仍在行动装置方面,根据Gartner最新的调查显示,虽然2006年全年的智能型手机及PDA的销售量,相较起2005年将会有超过75%的成长,成长力道大多集中于智能型手机上,PDA方面没有明显的增长。而根据IDC的调查,2006年第三季的手持式智能装置的销售量却呈现减少的趋势,IDC将其归咎于缺乏新产品线,使得厂商在营销上缺乏动力,比如说,占销售比例最大的依然是Palm,约有4成左右,但是其热销的机种已经有超过1年以上的年龄,算起来已经是垂垂老矣,其次便是Windows CE 架构的产品,HP、Dell以及MIO这三家总和起来约有4成5左右,但是由于微软的操作系统迟未更新,在使用观感大致不变的情况之下,新机种的推出并未给消费者带来太多新鲜感,因此也都各自有程度不等的衰退。
Windows CE 5.0的特性与应用趋势
Windows CE是微软在嵌入式系统的重头戏,相关的发展历程已经超过十个年头,虽然依照惯例,初期贫弱的效能与菜单现,曾经一度被业界当作笑话看,但是凭借著微软雄厚的财力以及多变的商业手法,到后来已经在嵌入式应用占据了一片山头,软硬件的发展不仅带动了相关产业的进步,许多厂商也因此而崛起或者是没落,而自从Windows CE 5.0推出以来,由于系统核心架构上的限制,虽然在资料安全性方面获得了加强,但是换来的代价却是效能的低落,硬件厂商也被迫不得不在某些重视即时反应的应用中,采用较为高阶的硬件,以弥补因为操作系统本身的设计问题而造成的效能减损,甚至某些厂商就采取不升级到Windows CE 5.0,而是采用旧版的4.0(2003/2003se),虽然在某些情况之下资料会有遗失的风险,但是在效能表现上明显好上许多,相关原因后述。
即便如此,Windows CE 5.0的推出仍使得微软在嵌入式应用中又前进了一步,因为就商业经营来说,Windows CE 5.0是一款非常成功的产品,虽然偏弱的性能表现广为使用者诟病,但是其广泛的应用程序支持及多媒体表现却又让它成为消费者的最爱。Windows CE 5.0与前一版操作系统的差别主要是在储存能力以及档案系统方面的改进。对于OEM制造厂商来说,Windows CE 5.0最占优势的一项改进,就是QFE快速修复功能的增强,透过QFE机制,装置需要进行功能更新或者是除错时,就只需要下载特定部分的组件进行更新即可,厂商无须释放出新版的完整ROM档,除了降低更新的麻烦以外,也减少了因为存储器常驻更新而导致潜在资料丧失危险的问题。
图说:Windows CE 5.0的存储器管理模型。
至于在针对行动式智能装置的Windows Mobile 5.0中,则是增加了几个重大的更新,其中之一就是加入了3G网络的支持,虽然3G的推广受到应用不足以及价格高昂的阻碍,到目前还不算相当普及,但是其可进行高速网络传输的能力,对特定商务或消费端领域仍有相当大的帮助,因此未来潜力仍不可小看。Windows Mobile 5.0另一个最大的改变之处,就是为了档案保全的问题,而采用了不同于以往的档案储存以及执行方式。将原先仅设计来作为储存之用的ROM也拿来供给程序执行使用,所有包含记忆卡、内部存储器等可供储存的区块都将会被加载视为单独的实体,程序执行阶段可以直接在ROM部分进行,因此资料的储存就不需要在耗用额外的电力去维持,除了省电以外,也可以确保当系统突然断电时,资料仍可以完整被保留住而不会凭空消失。
但世事难两全,确保了资料的安全性,却带来了性能的极大耗损,由于智能型装置所使用的ROM是属于读取快但是写入慢的存储器,在执行阶段就已经可以看出效能较旧版Windows Mobile为差,但相差幅度还不算大,可是只要当Windows Mobile 5.0要进行分页动作,或者是要将快取中的资料写回ROM中时,此时装置就会表现出明显的呆滞状况,不仅无法回应使用者的操作,程序的执行有时也会被迫中断。虽然这部分可以藉由加大分页大小来取得改善,但是加大分页大小,就等于减少了可用随机存取存储器的大小,同时间所能执行的程序数量就会减少,甚至有些存储器需求量大的程序就会无法执行。由于Windows Mobile 5.0有释出部分的程序原始码给制造商自行修改设定,每一个别厂商在这方面的考量点不同,因此不同厂商所制造出来的硬件虽然在规格上相近,却可能会有截然不同的性能或稳定性表现等类似情况发生。
微软逐渐抛开封闭心态采用开放原始码
微软在推广这一版操作系统时,其中一个主打的卖点就是开放原始码,不过Windows CE 5.0版中只有约开放56%的原始码,其它部分仍属于微软的业务机密,这也在Windows CE 5.0刚推出时造成了一阵争议,只开放一半的原始码,使得微软与竞争对手比较起来,诚意明显不足。不过相较起过去微软的表现,已经算是相当大的让步了。而拜此所赐,虽然WM5的产品效能表现比起采用其它操作系统的产品要稍嫌不如,但是在厂商努力最佳化的情况之下,使得差距不至于被拉的太大,稳定性也要远胜于过去旧版本的产品。
透过微软的分享原始码管理计画(Microsoft Shared Source Directive),开发者能够在这些开放的原始码中任意变更自己所需要的关键功能,添加自订的功能或者是修正错误等等,而拜微软封闭所赐,每家厂商所自行修改的程序码可以不必如嵌入式Linux般必须遵照GPL规范释放出来,在可藏私的的情况之下,厂商的支持也越趋热烈,这也是开放原始码社群所始料未及的一点。而专属开发工具Platform Builder不仅弹性大,规范也定义的相当明确,因此厂商也很容易在第一时间整合进自家专属的功能或硬件元件,以提升市场竞争力。举例来说,5.0版原先架构并不支持802.11i、802.11n 以及WPA2等标准,但是厂商仍然可以自行改写推出支持的Windows CE 5.0产品,以技术优势和市场上其它类似产品做出明显区隔。
Windows CE 5.0的其它重要功能
装置的智能化也是Window CE 5.0的另一项主打,除了透过针对UPnP标准的强化支持,使其无线网络应用可以更为灵活而且傻瓜化,这有助于类似Location Free产品及DLNA标准的整合与推广。而另外一个重要功能则是之前也有提过的,就是整合了DirectX的子集合,Windows CE 5.0平台可以提供完整的DirectX8 DirectX3D的硬件加速能力,这对于特定娱乐应用的硬件来说,是非常有利的一点,而就目前的产品设计趋势来说,许多手持装置也已经逐渐迈入3D显示的领域,不仅是应用于导航、应用程序界面,或者是游戏娱乐等,导入Direct3D的支持,也能让产品更具未来性。虽然截至目前为止,采用这项3D功能的商业应用仍相当少,但是随著开发环境益发成熟的Windows CE 6.0发布以后,以其更为杰出的系统架构与整体效率,相信采用者也会随之增加,
Windows CE 5.0集旧有大成 6.0版核心变革带来性能大跃进
图说:Windows CE 6.0的存储器管理模型。
虽然Windows CE 5.0引进了许多更为杰出的新设计,但是明显需要依靠更高性能的硬件来改善其执行效能,也成了制造商诟病的对象,因此在市面上的手持式产品中,除了高阶机种以外,甚少见到具备低阶硬件产品中采用Windows CE 5.0,大多是采用其它如Symbian等效率表现较佳的作业程序取而代之。不过这样的情况在Windows CE 6.0发表之后,可望会有相当大幅度的逆转,对于硬件端设计来说,Windows CE 6.0的架构可以更为有效的利用总体运算以及其它硬件资源,
首先从核心架构来谈,Windows CE 3.0到5.0使用的虽然是重新架构过的核心,以支持更为关键的即时应用,但是其核心构成基础仍有很大一部分是从更旧版产品中延伸应用而来,因此许多在存储器管理以及执行绪处理方面仍有许多积弊未除。而由于Windows CE 是一款32位元的操作系统,因此系统平时是执行于4GB的虚拟定址存储器中,但是从Windows CE 1.0版到5.0版,都是采用分层保留的方式来进行这4GB虚拟空间的管理,其中2GB会被系统核心所保留,而较低层的2GB空间则是被分配作为存储器分页使用,每个执行中的程序则是可以各自分配到32MB的虚拟记忆”槽”,这些程序有很大部分是属于核心或系统的服务方面,包含了硬件装置的管理、视窗绘图以及事件子系统、档案系统等等。
图说:Windows CE 6.0的系统架构。
Windows CE 6.0大幅改变了核心定址以及资源分配的机制,旧版CE同时间只能有32个程序执行于各自分配的32MB虚拟存储器空间中,6.0版则是大幅放宽了限制,最大可同时执行32,000个程序,而且每个程序可拥有独立分配的2GB虚拟存储器,在此同时,核心服务、硬件装置的驱动程序、视窗绘图以及事件子系统、档案系统等服务都被转移到系统核心保留空间中。不过这样的改变也会带给使用者疑虑,毕竟过去NT 4.0就曾经上演过类似的戏码,将驱动程序从使用者模式转移到核心模式,虽然可以大幅改进应用的速度,但是一个体质不良的驱动程序,可能就会拖垮整个系统,因此在硬件驱动程序的开发上,就必需要有个有效标准来规范,最好还要导入如WHQL之类的驱动程序验证服务,以避免影响整个系统的稳定性。
Windows CE6.0的新变革
Windows CE 6.0依旧把眼光投注在ARM架构中,新的BSP与编译器也都支持了ARM的最新体系,但是其它嵌入式处理器的支持也没有被忽视,威盛公司最新的处理器也在不久前宣称支持了Windows CE 6.0操作系统。而6.0版也是微软首个导入次世代档案系统ExFAT的操作系统,虽然到目前为止其细节还不明了,但是根据已有的信息指出,ExFAT在Windows CE 6.0中,担当了总管所有外接储存媒体的中界层的角色,广为产业界所称赞的是,这能够解除过去传统FAT档案系统的32GB单一容量限制。ExFAT同样也解除了单一档案只能在2GB以下的限制,这对于硬件厂商以Windows CE发展大容量储存管理伺服架构,有著相当大的帮助。加上一些安全机制,我们可以把ExFAT视为Windows CE 6.0上的NTFS加强版。
VoIP也是Windows CE 6.0另一个持续加强的重点,除了在应用程序层的整合更进一步以外,操作系统核心也具备直接支持的能力,因此硬件开发上可以更容易的在Windows CE环境上进行各种网络的语音通讯服务。而因应这样的趋势,6.0版自然也把过去5.0版的缺失补正过来,在网络堆叠协定方面,直接支持了802.11i、WAP2、802.11e(无线QoS)、蓝牙A2DP/AVRCP的AES加密等等,为无线通讯建立了一个稳定、安全以及可靠的应用环境。
而从使用者观点来看,Windows CE 6.0扩展了超越以往版本总和的承诺,这些功能包括了最新的多媒体能力,诸如Windows Media 10/11的支持、,对于网络多媒体装置的原生整合能力,在Platform Builder开发工具中,甚至也加入了行动媒体中心的支持,可以藉由Windows Media Connect 2.0大幅强化多媒体应用的支持能力,并且可以与其它微软的操作系统或硬件装置做同步统合的动作。这些功能包含了以下项目:
TIFF编解码器的支持HD-DVD的解码器支持MPEG-2解码器更多的影音编码与格式支持UDF 2.5格式的支持虚拟环绕声道的支持多轨音效的支持强化DirectDraw,可支持电视使用的交错显示模式USB OTG功能加入,可作为USB的控制端
虽然在核心部分做出这么大的更新,但是Windows CE 6.0的储存上并没有如微软其它操作系统般的飞涨(Vista甚至需要超过10GB的初始储存安装空间!),相较起5.0版,6.0在体积上也不过增加了5%左右,虽然这对嵌入式系统产业来说是理所当然,但对于微软可以说是另一项奇迹。
Windows CE 6.0带给开发者的好处
图说:Windows CE的模拟器。
在开放原始码的历史中,微软要写下另一个新的里程碑,100%对产品开发者释放出原始码,且可允许厂商进行自订的变更或订做,而无须释放出经过修改的程序码,虽然在广义上并不能视为真正开放,但是为这些喜欢藏私留一手的厂商来说,无疑是增加竞争力的最佳手段之一。而作为开发工具的Visual Studio 2005 PRO将会作为Windows CE 6.0的整体套件之一,内建的许多开发工具与定义对于开发者来说相对便利许多。
Windows CE 6.0支持了Windows .NET Compact Framework 2.0作为应用程序管理开发以及Win32、 MFC、 ATL、 WTL和STL等程序开发界面提供给开发原生应用程序的开发者使用。具备了如此势力庞大以及完整的开发环境作为支持,开发者与制造商也可确保后续的支持不虞匮乏。
而在硬件方面,根据微软方面的说法,在不变更原有的硬件架构之下,导入Windows CE 6.0可以大幅改善原有程序的执行效率,并且也容许同时间有更多程序同步执行,由于每个程序都具备有独立的执行空间,特定程序当掉,也不会影响到其它应用程序或系统执行,提供给使用者比起以往旧版系统更强的稳固性与更大的弹性。而目前逐渐风行的多核心处理架构上,Windows CE 6.0也可以在不变更程序开发者原有程序模型的状况之下,提供最佳化的核心工作自动分配与指定,当然,如果有需求的话,程序开发者依然可以自行决定指定核心的方式。
市场上的实际应用与结论
图说:Windows CE 6.0的开发平台。(资料来源:Freescale)
截至目前为止,台湾已经有研华科技在针对物流、仓储管理、公共服务以及领域维护方面的应用,进行基于Windows CE 6.0操作系统下的工业级掌上型终端机的开发,而精技计算机则是开发了可应用于搜集资料、RFID、BarCode管理的垂直市场PDA,采用Windows CE 6.0中的cell core元件,缩短GPRS端的资料传输设计时程。而各大手持式智能装置的开发者也都已经在着手导入Windows CE 6.0,实际产品预计将会于2007年第二季之后逐渐浮现台面。
100%开放原始码的创举对于微软来说是个相当大的突破,虽然这有一大部分是因为嵌入式Linux所带来的竞争挑战所致,但是鹬蚌相争的结果,带给开发伙伴的好处也远大于过去采用封闭模式的流程,而延续过去Windows CE 5.0的成果,Windows CE 6.0也将会继续在嵌入式应用、行动装置、GPS、智能型手机等市场继续攻城掠地,不过在面对市场上诸多对手的竞争,微软仍须做出更多的改进。比如在修正漏洞方面可以更快速的反应、并且提供给开发者更大的支持力度等等,当开发者甜头吃的够多,自然也会对Windows CEWindows CE架构更为忠诚,出现在市面上的产品自然也会更为成熟。