艾巴生活网

您现在的位置是:主页>科技 >内容

科技

从纯粹软件技术的角度看Windows(CE)

2023-09-08 13:47:01科技帅气的蚂蚁
备注:本文摘自简介本书《Windows CE工程实践完全解析》(李大为主编),第1版,中国电力出版社,2008年。我们认为作者对Windows CE的看法

从纯粹软件技术的角度看Windows(CE)

备注:本文摘自简介本书《Windows CE工程实践完全解析》(李大为主编),第1版,中国电力出版社,2008年。我们认为作者对Windows CE的看法深刻而贴切,与我们对Windows CE操作系统的看法非常接近。所以这里转载节选,供用户参考。在此,谨向本文作者致敬。

1、从纯软件技术的角度看Windows CE

从纯软件技术的角度来看Windows CE,可以说Windows CE是嵌入式Windows。虽然Windows CE不是微软唯一的嵌入式操作系统产品,但无疑是最具代表性的一款。从纯技术上来说,Windows CE和嵌入式Linux、VxWorks等各种嵌入式操作系统没有本质区别。包括windows CE在内的所有类型的嵌入式操作系统在最本质的特征上都不同于桌面操作系统,即它们是可裁剪和可移植的。嵌入式操作系统的这两个本质特征是由运行嵌入式操作系统的嵌入式硬件的特性决定的。首先,由于成本的限制,嵌入式硬件平台的硬件资源是稀缺的,因此基于这种硬件平台的嵌入式操作系统不得不谨慎使用硬件资源。根据嵌入式电子产品专业化应用功能的特点,按需选择嵌入式操作系统实现不同功能的组件,即某一特定产品需要的功能会留下,不需要的不会留下,这就是裁剪。裁剪后的嵌入式操作系统不仅意味着占用更少的存储空间,而且由于软件运行负载小,对目标嵌入式系统的启动速度和运行速度都有很大的好处。如果说Windows CE在技术上优于其他嵌入式操作系统,那么几乎可以得出结论,——Windows操作系统在桌面操作系统上的技术优势,其实就是Windows CE在嵌入式操作系统上的技术优势。下面将Windows CE与嵌入式Linux进行对比,从四个方面说明Windows CE操作系统的技术优势。(1)Windows CE可以保证操作系统的软件产品质量。毕竟Windows CE是世界上最著名的软件厂商设计开发的操作系统,质量相对有保证。相比之下,Linux主要是由一群所谓的黑客组织松散。负责组织和管理Linux开源项目的GNU组织希望打破软件厂商对操作系统源代码的垄断。在他们看来,这不利于软件技术的推广和交流,因此鼓励以开源代码的形式开发和使用嵌入式系统。虽然这样的目标在我们的时代还不够务实,但它仍然是崇高的。但是对于大部分通过互联网连接,做基础工作的Linux开源项目开发者来说,除了纯粹的兴趣,他们为Linux做事的主要目的就是出名。没有人付钱给他们,他们也不会。不需要对软件的质量负责,所以不可避免地要关注开发而忽视测试。此外,还有一个问题是,由于组织松散,开源项目之间缺乏协调。比如某个版本的Linux内核只能或者不能用一个或者某些版本的GCC工具编译,否则就会出错。这种现象给Linux用户带来了很多麻烦。这些问题对于Linux操作系统的嵌入式版本来说尤其严重,嵌入式版本有很多版本,没有被充分利用,有助于提高开发者的知名度。我亲身经历过,从Linux官网下载的源代码,一个字都不改就无法编译。(2)Windows CE有大量的嵌入式应用软件和操作系统功能供用户灵活选择。任何计算机系统总是依赖应用软件为用户提供使用价值。除了由用户自己或第三方开发,桌面操作系统厂商会随操作系统一起向用户提供一些常用的应用程序和操作系统特性。前者主要包括网页浏览器、媒体播放器、办公软件等。而后者则以网络协议栈、文件系统、多语言支持库、音文章多媒体编解码器为代表。Windows CE是一款嵌入式操作系统,微软随其向用户提供了大量的这两类软件,并给它们起了一个更时尚更抽象的名字3354用户体验。

操作系统厂商无疑是想通过这些用户体验为用户提供最大的开发和使用便利,从而吸引客户。应用软件可以取代用户自己开发或者花钱再买一个,操作系统特性可以在用户自己或者第三方开发应用软件的时候提供强有力的支持。客观来说,Linux操作系统并不缺乏丰富的应用软件和操作系统特性,但与Windows CE相比,它缺乏的是这种嵌入式处理。很多软件在功能和性能上也是非常不错的,但遗憾的是,没有一个简化版可供嵌入式Linux的用户直接使用。Linux用户如果想自己做精简工作,只能一行一行或者最多一个功能一个功能的开源代码,工作量可想而知。什么此外,对原始代码的改动越大,引入新错误的可能性就越大。唯一的解决方案是进行大量的测试,这进一步增加了所需的工作量。它并不是GNU项目的组织者和开发者考虑不周。他们的兴趣和目标只在软件技术上。对于任何开源项目,他们只需要实现功能。至于是应用桌面环境还是嵌入式环境,那就是带有商业色彩的产品运营问题了。那这不是他们需要考虑的。(3)微软可以帮助Windows CE的用户解决技术专利的问题,主要集中在音文章多媒体方面,如MP3、 MPEG-2、 MPEG-4等。就我的经验来看,嵌入式电子产品的厂商可以不管他们多小心,都不能百分百放心技术专利的问题。它通常是一种技术,许多公司或组织声称拥有它的专利。比如MP3同时有Thomson和Sysvel对它的专利,而MPEG-2和MPEG-4就比较复杂。比这更麻烦的是,随着一项多媒体技术的应用范围不断扩大,受欢迎程度不断上升,不断有厂商冒出来为其申请专利。虽然微软可以微软承诺不帮助用户解决所有的技术专利问题,用户不会不必担心在Windows CE开发工具中以操作系统功能的形式提供给用户的任何多媒体编解码器。如果用户在这里遇到法律纠纷,微软可以出面帮助客户打官司。微软有专门的部门和资金负责这件事。(4)Windows CE有一个简单易用的集成开发环境,集开发和调试于一体。微软正确认识到,原本只有高校、科研院所专业技术人员使用的操作系统,要进入普通人的工作、学习、生活,其稳定性并不是很重要。安全性也可以先放在一边,操作简单,使用方便的特点对于非专业人士来说是压倒性的优势。因此,Windows甚至赢得了傻瓜操作系统。这是微软的远见他们成功地抓住了这一点。操作简单、易于使用的特点在所有微软年代较晚的产品。虽然Windows CE的开发工具主要由专业技术人员使用,但操作简单、易于使用的特点,加上集开发和调试于一体的集成开发环境,仍然可以帮助用户提高开发效率,减少学习如何使用的时间。这里需要指出的是,Linux的完全免费开源并不是绝对无条件的。默认情况下,所有使用Linux开源项目源代码的人都接受了一个名为GPL:all users 使用GNU开源项目源代码的自有软件项目也必须是自由和开源的。GNU组织不以收费赚钱为目的,以弘扬开源精神为目的。对于以利润为导向的嵌入式电子产品厂商来说,这样的条款无论如何都是无法接受的。不知名的小厂商可能会不管,尤其是目前在国内,但那种做法的后果可能没有用盗版Windows CE严重,但性质是一样的。

2、Windows CE和软件工程

技术优势明显,接下来就是Windows CE的用户如何开发的问题,或者说开发模式的问题。这里所说的开发主要是指Windows CE操作系统的底层驱动软件和上层应用软件的开发,这是一种需要用户自己编写代码的开发活动,它们占据了Windows CE所有开发工作的大部分工作量。让让我们看看嵌入式Linux环境下的软件开发模式,它代表了传统的通用软件开发模式。以BootLoader为例。如果我们正在为嵌入式Linux系统开发一个可以引导和加载操作系统的BootLoader,那么我们只需要为开发人员提出一些限制性的条件来表达特性化的应用需求:从哪里以及如何获取操作系统的镜像文件;如何解析这个镜像文件的内容获得操作系统的运行数据;在内存中放置最终操作系统运行时映像的位置。至于如何实现的技术细节,可以留给开发者自由发挥。这样的软件开发活动就像考试中的论述题,评分相当自由、灵活、随意、主观。对应嵌入式Linux,我把Windows CE的开发模式命名为填空发展模式。以BootLoader的开发为例。Windows CE用户不会我没有这么多自由。微软提供了一个支持库,用于为Windows CE的BootLoader提供一个与硬件无关的软件框架。它提取代码实现中与硬件无关但具有通用性的内容,形成标准函数库。与具体硬件相关的BootLoader代码,不具有普遍意义,比如从负责下载操作系统镜像的外设端口读写数据,由微软提前定义为标准的功能接口和功能定位,Windows CE的用户负责开发和实现。这样的软件开发活动对开发者来说不再是免费的,而是在有限的软件框架下的标准行为。开发者的自由受限于如何实现每个单独的预定义功能的功能。这种开发模式有什么好处?如果读者是一个普通的软件技术开发人员,他(她)的第一反应可能是这种模式可以减少开发工作量。那没错!当然,考试填空比做论述题容易。涉及到厂商,涉及到盈利企业,发展模式就不再只有技术意义了!Windows CE的上述开发模式是通过技术手段来保证软件开发的纪律性、过程性和系统性,它是麦当劳模式软件开发。另一方面,上述嵌入式Linux环境下的软件开发活动是无规程、无过程、无系统的代表,是中国餐馆模式。现在,可以得出结论,评价填空Windows CE的开发模式简单地由好或者坏。只能说这种开发模式对使用Windows CE的嵌入式电子产品的厂商是最有利的。

3、Windows CE和嵌入式产品制造商

企业是以营利为目的的商业组织。然而,当高科技研发成为现实时。d成分加入到以赚钱为目的的企业活动中,企业中的很多人,尤其是企业中的一些专业技术人员,下意识地停止赚钱,转向高科技研发& amp产品研发。d高科技企业中的活动不是企业的目的,而是手段。赚钱是目的。以手段为目的是本末倒置。产品研发的本质;高科技企业中的d活动与大学和国家研究机构中的d活动完全不同。大学和科研机构的科研是一个探索未知知识的过程。科研是允许失败的,失败的概率是相当大的。但是,不管是失败还是成功,都是科研的结果,因为失败的科研是对科学假设的一种反证。科学研究是一种社会活动,一般由国家投入,科研成果由全社会共享。产品研发;高新技术企业的活动是一个将已知知识转化为产品使用价值,进而转化为市场财富的过程。R & ampd不允许失败,一个失败的R & ampd是企业决策和管理的一个失误。高科技企业之所以采用高科技作为主要的赚钱手段,是因为高科技可以带来高利润,而高利润往往伴随着高风险。高新技术产品给企业带来的高风险主要在于三个方面:高新技术产品研发失败,产品没有做出来;产品做出来了,但是质量不好,导致销量不好;产品做出来了,质量也不错,但是没有市场或者有市场但是没有卖得不好。前两个技术层面的风险使得高技术企业的决策者和管理者严格管理R & amp产品的d,就是要做好两个方面:一是尽快把产品做出来;二是尽可能把产品质量做好。显然,微软凭借自身Windows CE操作系统的软件质量优势和先进的软件开发模式带来的管理优势,可以保证目标产品的质量;此外,Windows CE的质量优势和开发模式优势也可以在一定程度上保证电子厂商能够顺利快速的做出产品。想象一下,消费电子产品制造商使用嵌入式Linux操作系统来开发他们的产品会是什么样子。切掉操作系统内核,开发底层驱动软件并不难。一两个技术专家就能解决所有的问题,但是哪里能得到消费电子产品所需要的丰富多彩的用户体验呢?也许所有GNU的开源项目都能为Linux找到嵌入式产品所需的应用软件和操作系统特性。抛开GPL的限制,我想问的是嵌入式简化的工作谁来做?开发所有这些软件需要多长时间?产品出来,黄花菜凉了。那些黑客,那些软件高手,无论个人多么熟练,面对这样的任务也只能束手无策。对于大多数制造商来说,研发;d的目标是做得好除了做得好。要达到这两点,管理良好的高科技企业常用的方法是尽量减少新产品中的新技术成分不要做你不熟悉的事情和只做你最擅长的事情。换句话说,从企业管理的角度来看,高科技给企业带来的高风险并非来自于高产品技术,而是从新科技的发展。新这里不是相对于整个社会,而是指企业以前没有用过的技术。根据国外高科技企业研发的经验;新产品的d,如果新技术在产品中的比例超过三分之一,就是高风险项目,失败概率很大。也就是说,一方面要控制高科技产品的高风险,另一方面又不能失去有利的商机,所以在必要的时候,他们一般会选择寻找合作伙伴或者成熟可靠的技术进行互补的优点;所以对于嵌入式领域,微软甚至它提供的嵌入式Windows CE操作系统都是最好的c