eCos(embedded Configurable operating system),中文翻译为嵌入式可配置操作系统或嵌入式可配置实时操作系统。
简介
eCos是一种嵌入式可配置
实时操作系统,适合于深度嵌入式应用,主要应用对象包括消费电子、电信、车载设备、手持设备以及其他一些低成本和便携式应用。eCos是一种开放源代码软件,无任何版权费用。eCos具有很强的可配置能力,而且它的代码量很小,通常为几十到几百KB。它的最小配置形式是它的
硬件抽象层HAL所提供的引导程序Redboot,可以支持很大范围内许多不同的处理器和平台。它的最大配置形式是一个完整的实时操作系统,所提供的服务和支持能与其他大多数商用实时操作系统相媲美。eCos为开发人员提供了一个能涵盖大范围内各种嵌入式产品的公共软件基础结构,使得嵌入式软件开发人员可以集中精力去开发更好的嵌入式产品,而不是停留在对实时操作系统的开发、维护和配置上。
eCos在嵌入式系统软件方面最具创新意义的贡献是可配置组件框架。eCos可配置组件框架使得开发人员可选择那些能满足需求的组件,同时对其中一些组件进行配置,从而满足实现特定应用的需求,这意味着对于eCos中的一个组件来说,可以使用或者禁止它的某个特性,或者为它选择一种特定实现。一个例子是关于eCos调度器组件的配置,它为开发人员提供了一些配置选项,如线程优先级的数目、是否使用时间片等。通过对这些选项进行配置,与开发人员需求无关的任何代码都可从最后的映像文件中被去掉。
eCos的这种可配置性使得公司能够在内部建立起一个可重用的组件库,库中的每个组件都包含其实现的源代码。由于这些组件具有较好的可移植性和广泛的可适用性,因此通过使用它们,公司就能大大地缩短产品的开发时间和上市时间。eCos的组件框架还鼓励通过第三方的开发来扩展核心组件的功能和特性。随着越来越多的开发人员在开发的产品中不断地扩展组件的功能,并且把这样的组件贡献给eCos项目,eCos的功能就会不断地完善和提高。另外,如果是eCos中还没有提供的功能,有了eCos的源代码,我们自己也可以实现它。
起源与历史
eCos最初起源于Cygnus公司。Cygnus创建于1989年,创始人为Michael Tiemanm、David Henkel-Wallace和John Gilmore,其目的是为开源软件提供高质量的开发和支持。经过几年的艰苦努力,最后推出了今天被人们广泛使用的GNUPro开发工具包,包括GCC(ANSI-C编译器)、G++(C++编译器)、GDB(源码级和汇编级调试工具)、GAS(GNU汇编器)、LD(GNU链接器)、Cygwin(Windows下的UNIX环境)、Insight(GDB图形界面GUI)等。
Cygnus对eCos的设计始于1997年春季,其主要目的是为市场提供一种低成本、高效率、高质量的嵌入式软件解决方案,同时要求该软件所占系统资源极少。eCos和GNUPro相辅相成,扩大了Cygnus的产品线。eCos从设计之初就考虑到了嵌入式系统中的内存资源的限制以及嵌入式硬件平台的多样性。通过与其他许多半导体公司的协作,Cygnus成功构造了一个可以对硬件层进行抽象的
实时操作系统(RTOS),并且具有高度可配置性。这些特性使得RTOS可以适合于各种各样的嵌入式系统,这种RTOS就是eCos。eCos的高度可配置性可以显著缩短嵌入式产品的开发周期。
Cygnus对eCos的另一个设计目标是降低嵌入式产品的成本。低成本是
嵌入式系统开发中必须考虑的一个重要因素。通过使用
开放源代码的形式,eCos基本上不需要任何费用。它是一种完全免费的软件,任何公司和个人都可以直接从Internet上下载其源代码和相应的开发工具,并且可以自由地进行修改和扩展,eCos产品的发布也无需交纳任何版权费用。用户可以自由使用eCos,但是要求公布对eCos的改动,这是为了提供或促进eCos发展的一种措施。当然,用户的应用程序不必公开。
1998年11月,Cygnus发布第一个eCos版本(eCos 1.1)。
1999年5月,发布eCos 1.2.1。
1999年11月,Red Hat收购Cygnus。
2000年3月,Red Hat发布eCos 1.3.1。
2000年8月,增加Redboot支持。
2002年,Red Hat裁剪eCos开发团队,原eCos团队组建eCosCentric公司。
2003年5月,eCosCentric发布eCos 2.0。
2004年1月,Red Hat宣布将eCos版权转移给自由软件基金会(Free Software Foundation)。
2008年11月,增加Cortex-M架构支持。
2009年3月,eCosCentric发布eCos 3.0。
2013年8月,增加单精度浮点数学库以支持Cortex-M4F的硬件浮点处理器。
特点
内核可配置
eCos最大的特点是内核可配置。它出生于1997年,相对其他的系统来说是非常年轻的,但是也正是因为出身的晚,所以在设计理念上面是比较新颖的。其全部代码使用
C++编写。 eCos可以说是嵌入式领域的一颗新星,全称是Embedded Configurable Operating System。绝大多数代码使用C++写作完成。最早是 Cygnus公司开发,不久被RedHat收购,RedHat由于财务上的原因放弃了eCos项目,解雇了eCos的开发人员,将eCos源代码捐给了
自由软件基金会(Free Software Foundation),随后eCos开发人员组建了eCosCentric公司为eCos提供商业支持。 eCos最大的特点是模块化,内核可配置。如果说嵌入式Linux太庞大了,那么eCos可能就能够满足要求。它是一个针对16位、32位和64位处理器的可移植
开放源代码的
嵌入式RTOS。和嵌入式Linux不同,它是由专门设计
嵌入式系统的工作组设计的。eCos具有相当丰富的特性和一个配置工具,后者能够让你选取你所需要的特性。Linux兼容的嵌入式系统在
内核裁减后编译出来的
二进制代码大小在500k字节以上,这还只包含最简单的内核模块,几乎没有加载任何其他的驱动与协议栈。但是eCos最小版本只有几百K字节,一般,一个完整的网路应用,其二进制的代码也就100K字节左右。而且更为重要的是,eCos提供的Linux兼容的API能让开发人员轻松的将Linux应用移植到eCos(这点和
RTEMS很相似),与此同时,应用程序不用跑在Linux复杂的内核机制上(这套机制,对于大型服务器也许还凑合,但是对于短小精悍的嵌入式应用,太浪费了),大大节省了你的时钟和RAM。
组态配置
eCos具有可
组态配置的特性,可针对精确性应用的需求而进行客制化,加上数百种的选项功效,使其能用最少的硬件资源获得最大可能的执行效能。
针对小内存
eCos是针对RAM存储资源只有「数十KB至数百KB」间的装置而设计,同时也是针对实时运作而设计,它可以用在
存储器不足以支援嵌入式Linux执行的应用场合,因为就一般而言嵌入式Linux至少要2MB左右的RAM内存空间才能执行,且还不包含应用程序及服务程序等的内存需求。
执行平台
eCos可以在各种硬件平台上执行,包括
ARM、 CalmRISC16/32、 Coldfire、
Cortex-M、 Fujitsu fr30/fr50/fr60 、 Fujitsu FR-V、 Hitachi H8、
IA-32、 Motorola 68000、 Matsushita AM3x、
MIPS、 NEC V8xx、
OpenRISC、
PowerPC、
SPARC、
Sunplus SPCE、
SuperH、
Nios II等。
嵌入系统
嵌入式操作系统的种类较多,其中比较流行的有
VxWorks、
Windows CE、
pSOS、
Palm OS、uC/OS、嵌入式Linux等。这些嵌入式操作系统在开放性、实用性以及性能等方面各有千秋,但大多数为商用产品。除了商用产品外,还有一些免费的嵌入式操作系统,
uClinux是其中比较流行的,而eCos则是另一个选择。嵌入式可配置操作系统eCos(Embedded Configureable Operating System)的特点是可配置性、可裁减性、可移植性和实时性。它的一个主要技术特色就是功能强大的配置系统,可以在源码级实现对系统的配置和裁减。与Linux的配置和裁减相比,eCos的配置方法更清晰、更方便;且系统层次也比Linux清晰明了,移植和增加
驱动模块更加容易。正是由于这些特性,eCos引起了越来越多的关注,同时也吸引越来越多的厂家使用eCos开发其新一代
嵌入式产品。如凌阳SPCE3200处理器。
国内社区
eCos技术网是一个专注于eCos技术的社区网站,致力于开源免费的专为嵌入式系统设计的嵌入式可配置操作系统eCos在中国的应用、推广、社区服务和相应的产品技术方案。