首页>>科技 >>内容

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

发布时间:2024-01-03 20:30:20编辑:温柔的背包来源:

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

很多朋友对从纯粹软件技术的角度看Windows,CE不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

注:本文摘自中国电力出版社2008年第一版《Windows CE工程实践全解析》(李大伟主编)一书的“引言”,我们相信作者对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是一个嵌入式操作系统,微软也为用户提供了大量的这两类软件,并给他们起了一个更时尚、更抽象的名字——用户体验(user experience)。操作系统厂商无疑希望通过这些用户体验来为用户提供开发和使用上最大的便利来吸引客户。应用软件可以由用户根据需要自行开发或单独购买,而操作系统功能可以由用户自己或第三方软件开发。在第三方开发应用软件时提供强有力的支持。客观地说,Linux操作系统并不缺乏丰富的应用软件和操作系统功能,但与Windows CE相比,它缺少的是嵌入式处理。很多软件在功能和性能上也都非常优秀,但遗憾的是并没有一个可供嵌入式Linux用户直接使用的精简版本。 Linux用户如果想自己做精简工作,最多只能对开源代码进行一行一行的裁剪,或者一个函数一个函数的裁剪。工作量可想而知。更严重的是,对原有代码的改动越大,引入新错误的可能性就越大。唯一的解决办法就是做大量的测试,这进一步增加了所需的工作量。这并不是因为GNU项目的组织者和开发者没有深思熟虑。他们的兴趣和目标只在于软件技术。对于任何开源项目来说,它们只是实现功能。至于是桌面环境还是嵌入式环境,那是带有商业色彩的产品的运行问题,不是他们需要考虑的。 (3)微软可以帮助Windows CE用户解决技术专利问题。技术专利问题主要集中在音视频多媒体方面,如MP3、MPEG-2、MPEG-4等。以我的经验来看,无论嵌入式电子产品制造商在技术专利方面多么小心谨慎,永远不能100% 放心。通常一项技术会有多个公司或组织声称拥有其专利,例如MP3 Thomson 和Sysvel 同时拥有该技术的专利,而MPEG-2 和MPEG-4 的情况则更为复杂。比这更麻烦的是,随着多媒体技术的应用范围不断扩大,普及度不断提高,声称拥有该技术专利的厂商不断涌现。尽管微软无法帮助客户解决所有技术专利问题,但微软承诺用户不必担心Windows CE开发工具中以操作系统功能的形式向用户提供的任何多媒体编解码器。如果用户在这里遇到这个问题,如果产生法律纠纷,微软可以出面帮助客户打官司。微软有专门的部门和资金负责此事。

(4)Windows CE具有易于使用的集成开发环境,集开发和调试于一体。微软正确地认识到,原本仅供大学和科研单位专业技术人员使用的操作系统将进入普通人的工作、学习和生活。稳定性并不是很重要,安全性也可以先放在一边,操作简单、易用性对于非专业人士来说才是压倒性的优势。 Windows甚至因为这样的良好声誉获得了“傻瓜操作系统”的称号。这是微软领导者的先见之明,他们成功地抓住了这一点。操作简单、易用的特点在微软后续的所有产品中都得到了保持。虽然Windows CE的开发工具主要是专业技术人员使用的,但其简单的操作和易用性加上集开发、调试于一体的集成开发环境,仍然可以帮助用户提高开发效率,减少学习如何使用的时间。时间。这里需要指出的是,Linux的完全免费开源并不是绝对无条件的。每个使用Linux开源项目源代码的人都默认接受了一个名为GPL的许可协议:任何使用GNU开源项目源代码的人对于用户自己的软件项目来说,其源代码也必须是免费和开放的来源。 GNU组织的目的并不是通过收费来赚钱,而是为了弘扬开源精神。对于以利润为导向的嵌入式电子产品制造商来说,这样的条款无论如何都是不能接受的。不知名的小厂商也许可以忽略不计,特别是目前在中国,但这样的做法造成的后果可能不像使用盗版Windows CE那么严重,但本质是一样的。

2、Windows CE与软件工程

具有显着的技术优势,接下来的问题就是Windows CE用户如何开发,或者说什么是开发模式。这里所说的开发主要是指Windows CE操作系统底层驱动软件和上层应用软件的开发。这是一项需要用户编写自己的代码的开发活动。它们占据了Windows CE开发工作总工作量的绝大多数。我们首先看一下嵌入式Linux环境下的软件开发方法,它代表了传统的、通用的软件开发模式。以BootLoader为例,如果您正在开发一个作为嵌入式Linux系统的引导加载程序操作系统的BootLoader,您只需要向开发人员提出一些限制,表达具体的应用需求:在哪里以及如何获取映像操作系统的文件。如何解析这个镜像文件的内容来获取操作系统的运行数据;以及最终操作系统运行时映像在内存中的放置位置。至于如何实现的技术细节,可以交给开发者去解决。此类软件开发活动就像考试中的问答题。它们相当自由灵活,但也相当随意,评分也相当主观。对应于嵌入式Linux,我将Windows CE的开发模式命名为“填空”开发模式。我们以BootLoader的开发为例。 Windows CE 用户没有那么大的自由。 Microsoft提供了一个支持库,为Windows CE的BootLoader提供了独立于特定硬件的软件框架。它提取代码实现中与硬件无关但通用的内容,形成标准函数。图书馆。与具体硬件相关、不具有普遍意义的BootLoader代码,例如负责下载操作系统镜像的外设端口读写数据,具有微软预先定义的标准功能接口和功能定位,并确定由Windows CE 用户。具体负责制定和实施。这样的软件开发活动不再是开发者可以随意进行的,而是在有限的软件框架内的标准行为。开发者的自由度仅限于如何实现每个预定义函数的功能。这种发展模式有什么好处呢?如果读者是一名普通的软件技术开发人员,他或她的第一反应可能是“这种模式可以减少开发的工作量”。这是正确的!考试中做填空题肯定比做问答题更容易。对于以盈利为目的的厂商和企业来说,开发模式不再仅仅具有技术意义!前面提到的Windows CE开发模式是利用技术手段来保证软件开发工作的纪律、程序和制度。这是软件开发的“麦当劳模式”。相比之下,上述嵌入式Linux环境下的软件开发活动,就是无纪律、无流程、无制度的软件开发“中餐馆模式”的代表。现在我们可以得出这样的结论:单纯用“好”或“坏”来评价Windows CE的“填空式”开发模式是没有意义的。只能说这种开发模式有利于Windows CE的使用。嵌入式电子产品制造商最有优势。

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

企业是以营利为目的的商业组织。然而,当以赚钱为目的的企业活动中加入了高科技研发元素后,公司里的很多人,尤其是公司里的一些专业技术人员,下意识地就不再以赚钱为目的,而是把注意力集中在高科技上。技术研究与开发。以科技研发为目的。高新技术企业的产品研发活动不是企业的目的,而只是一种手段。赚钱才是目的。手段为目的就是本末倒置。高新技术企业的产品研发活动性质与大学、国家科研机构的科研活动完全不同。高校和科研机构的科学研究是探索未知知识的过程。科学研究是允许失败的,而且失败的概率相当高。然而,无论失败还是成功,都是科学研究的结果,因为失败的科学研究是一种科学假设。反证。科学研究活动属于社会活动,一般由国家投入,科研成果由全社会共享。高新技术企业的产品研发活动是将已知知识转化为产品使用价值,进而转化为市场财富的过程。不允许研发失败。研发失败是企业决策和管理的失误。高科技公司之所以以高科技作为主要赚钱手段,是因为高科技可以带来高回报,而高回报往往伴随着高风险。高新技术产品给企业带来的高风险主要体现在三个方面:高新技术产品研发失败,产品无法生产; 产品生产出来了,但质量不好,导致销量不佳; 产品生产出来了,质量也很好,但是没有市场或者有市场但是销量不好。前两种技术层面的风险,需要高科技企业的决策者和管理者严格管理产品研发,即做好两件事:一是尽快把产品做出来;二是要做好产品研发。其次,让产品尽可能高效。质量很好。显然,微软凭借Windows CE操作系统自身的软件质量优势和先进的软件开发模式带来的管理优势,能够保证其目标产品的质量;此外,Windows CE的质量优势和开发模式优势也能在一定程度上保证电子制造商能够成功、快速地生产产品。想象一下消费电子产品制造商使用嵌入式Linux 操作系统来开发他们的产品会是什么样子。操作系统内核的裁剪和底层驱动软件的开发并不难。一两个技术专家就可以解决所有问题。但消费电子产品所需的丰富用户体验从哪里获得呢?也许嵌入式产品所需的适合Linux的应用软件和操作系统特性可以在GNU开源项目中找到。暂时抛开GPL的限制,我想问的是,嵌入式产品的精简工作由谁来做?开发所有这些软件花了多长时间?当产品发布时,黄花菜已经冷了。那些黑客,那些软件高手,无论个人技术多么高超,面对这样的任务也只能无能为力。对于大多数厂商来说,研发除了确保“做出来”之外,还有“做好”的目标。要实现这两点,管理良好的高科技企业的常用方法是尽量减少新产品中的新技术成分,“不做不熟悉的事”和“只做自己最擅长的事” 。也就是说,从企业管理的角度来看,高科技给企业带来的高风险并非来自于产品技术的“高”,而是来自于技术的“新”。这里的“新”不是指整个社会,而是指企业以前没有使用过的技术。

根据国外高科技公司开发新产品的经验,当一个产品中新技术的比例超过三分之一时,就是一个高风险项目,失败的概率很高。也就是说,一方面要控制高科技产品的高风险,另一方面又不能失去有利的商机。因此,在必要的时候,他们一般会选择寻找合作伙伴或者成熟可靠的技术来补充自己的优势;那么对于嵌入式领域来说,微软甚至其提供的嵌入式Windows CE操作系统都是最好的选择。

以上知识分享希望能够帮助到大家!