目前嵌入式操作系统呈现多元话趋势,为了使大家更全面的了解嵌入式操作系统的种类,我将其整理如下:希望会对广大嵌入式开发爱好者有所帮助。
嵌入式开发 嵌入式操作系统 嵌入式系统
DOS
微软一开始选用了帕特森的Q-DOS QUICK AND DISK OPERATING SYSTEM 为基础然后再扩充功能而成 MS-DOS , 主要是采用由IBM 提供的使用8088 微处理器的计算机作开发平台, 它是以16 字节单人单工操作系统。
Windows CE
虽然微软 Windows 系统已经称霸了 PC Desktop 环境。但是对于嵌入式系统这块大饼,微软也是垂涎已久,桌上型的 Windows 桌业系统对于嵌入式系统来说自然是太过于肥大的产物,于是微软推出精简版的 Windows CE 作为进攻嵌入式系统的主力。目前主要应用于 PDA 上头,但是跟微软一系列 Windows 系统一般,Windows CE也承袭了原有的缺点:耗系统资源、不稳定、效率不佳..等等。毛病实在太多,后来将整个架构重新改写后推出 Windows CE 3.0 版,或称为 Pocket PC。改版之后的确改进了不少缺点。
Windows CE 可应用于 PDA 、WebPAD、Thin Client等等。
Palm
由 Palm Computing 公司的嵌入式操作系统,目前最大的应用在 PDA ,是市场占有率最高的 PDA 操作系统,Palm 操作系统架构非常简洁,因为少去了很多功能,如内存管理、多任务..等等,使得 Palm 可以非常不耗系统资源,硬件需求低,连带的整体耗电量便可压缩到非常低,因此采用 Palm 操作系统的 PDA 都有待机时间长的优点。
EPOC
由英国手持装置大厂 Psion 所开发,常用于 PDA 与手机结合的场合。最有名的例子 Nokia 9110 ( 附图 4 )系列手机,它就是采用 EPOC 系统。
著名的嵌入式实时系统
实时系统是嵌入式系统里头非常重要的一环,很多人都误以为实时系统执行速度非常快的系统,事实上不然,所谓实时代表的意义是『实时反应』,一般多人多任务操作系统如:Windows 、 UNIX ,在上面执行的软件都一起分享 CPU ,因为 CPU 速度快,所以我们感觉好像可以同时执行多支软件,其实在系统内部的同一时间内都只有一个程序在执行,每个软件都必须排队,而且规定只能用一小段时间后就要换下一位,但是因为 CPU 速度够快,很快又可以被执行到,所以人们感觉并不会很明显软件是一段一段在执行。这是一般所谓的非实时性的操作系统运作模式,而实时操作系统具有立即反应而且不能让出资源的特性,例如汽车的 ABS 煞车系统,如果不采用能够立即反应的实时系统,后果可就不堪设想。而这类的应用多半多属体积小、功能简单的地方,所以也算是嵌入式系统。 QNX 的 QNX OS 、WindRiver 的 VxWorks、Microware 的 OS9、pSOS 等等,都是有名的嵌入式实时系统公司。
Linux
Linux 不是都用来做服务器吗?不然就是 Cluster,怎么会跟嵌入式系统扯上关系?不要怀疑,Linux 除了对伺服工作应付自如外,嵌入式系统也难不倒 Linux。
那么究竟 Linux 有怎样独特的能耐,可以想变大就变大想缩小就缩小?又用 Linux 来发展嵌入式系统有什么优点?请看底下介绍。
开放原始码、模块化设计
linux 采用 GPL 授权,除了把原始码公开以外,任何人都可以自由使用、修改、散布,而 Linux 核心本身采模块化设计,让人很容易增减功能,例如我的平台并不需要蓝芽的功能,我只要不把这项功能加入,有需要就加入,不需要就删除,由于这样的高的弹性,我们可以调校出最适合我们硬件平台的核心出来。
相较于 Linux ,Windows 是走封闭原始码路线,所以我们完全无法得知或修改它的核心部份。另外因为是采用 GPL 授权自然就没有什么权利金或保密协议的约束。
稳定性够
Linux 不属于任何一家公司,但是它的开发人员却是全世界最多的,每天在全球都有无数的人参与 Linux Kernel 的改进、除错、测试,这样严苛的条件造就了稳定度高的 Linux 。
就因为如此,Linux 虽不是商业的产物但是质量却不逊于商业产品。
网络功能强大
Linux 的架构是参造 UNIX 系统而来,因此 Linux 也承袭了 UNIX 强大的网络功能。在这个每样事情都讲求网络的时代下,只能说是 Linux 大放异彩的年代。未来可能家里的电冰箱、冷气、电视机都会连上网络,如何增加这些家电的网络功能,Linux 可以替他们办到。
跨平台
Linux 一开始是基于 Intel 386 机器而设计,但是随着网络的散布,各式各样的需求涌现,因此就有许多工程师致力于各式平台的移植,造成了 Linux 可以在 x86、MIPS、ARM/StrongARM、PowerPC、Motorola 68k、Hitachi SH3/SH4、Transmeta..等等平台上运作的盛况。这些平台几乎涵盖了所有嵌入式系统所需的 CPU,因此选择 Linux 就可以把更多的硬件平台纳入考虑的范围。
嵌入式环境不如 x86 PC 那样单纯,嵌入式环境所采用的 CPU 架构之多,使用 Linux 作开发,就等于有更多硬件的选择,硬件成本是商业公司考虑的一大重点,选择多自然可以找到最合适的硬件,对于公司的竞争力是有极大的帮助。
应用软件众多
自由软件世界里有个很大的特色就是软件超级多,而且几乎都是符合 GPL 标准,换句话说,大家都可以自由取用,因为这些软件多半是由工程师业余空暇时间所发展,而且不以营利为性质,所以并不能担保这些软件完全没有 BUG ,但是仍旧有许多杀手级的软件出现,大家熟知的 KDE 与 GNOME 便是很好的证明,当然与嵌入式系统较为相关如:gcc 编译器、Kdevelop ( 附图 5 )整合式开发环境..等等。
通常我们都会先在 PC 端造出模拟出嵌入式的环境,并直接在上头开发,因此用的工具也都与开发一般 Desktop 软件类似,良好的工具能够增加开发的速度。
选择多样
如果公司有能力可以自己实作 Linux 嵌入式系统,因为程序代码全部都开放在那里,您可以随心所欲的设计出自己想要的 Embedded Linux 系统,但是有更多的公司的业务重点不在于此,这时候您也可以选择购买商业版的 Embedded Linux 系统,像是有名的 Redhat 公司、Lineo、MontaVista..等等,这些都是商业的 Linux 公司,购买他们的产品就可以得到完整的服务。因此商业或非商业全都在于您的需求。
自行开发系统
当然您也可以自行开发系统,严格控制硬件,但是相对的必须投注更大的成本在于研发系统上,原则上如果目标简单明确只是一些基本的 I/O 控制,例如:跑马灯。便适合自己开发,但是如果系统过于复杂则必须审慎评估自行研发的难度与时程的控管。