`
paofan
  • 浏览: 380943 次
社区版块
存档分类
最新评论

eCos历史(转)

    博客分类:
  • eCos
阅读更多
作者:yansm  
  时间:2002.12.7  
          近来学习eCos,会陆续写一些学习总结。今天先聊一下他的可配置机制。  
  eCos是Cygnus(现为redhat嵌入部门)的嵌入式可配置操作系统,很小,而且支持多种平台。在消费电子等深嵌入应用领域还是很有前途的。  
  主要参考文献:eCos联机文档  
  1.什么是可配置  
  以前的嵌入式系统开发是开发人员改变调整应用来适应底下的操作系统,现在的情况是eCos提供了大范围的可选项供开发人员配置操作系统,以最好地匹配应用 的需求,这样就变成了调整操作系统来适应应用。典型的配置选项包括调度器的类型和任务优先级别数目等。当前,eCos具有200多个配置选项。  
  因为嵌入式应用中代码和数据的体积是必须考虑的因素,因此可配置能力必须保证不会带来任何这方面的开销。一些配置能力可以通过连结来实现,但为了最大化的 利益,大多数配置在编译阶段进行。如果合适的话,一个配置项只影响单行代码是可能的。另一方面,单个配置项或许会决定着整个tcp/ip栈的取舍。对于用 C或C++写的系统代码来说,采用的主要机制就是C预处理表达式#ifdef。  
  用#ifdef来提供一些可配置选项,这种想法当然不是什么原创性的工作。关键在于,配置项并不是互相独立的,例如:改变一个内核选项可能会影响到C库还 能否提供线程安全的例程。在eCos中关键的创新是配置项被视为带有依赖描述的数据条目(data   items)。有一个图形配置工具使用户可以方便地操纵各种选项,理解各种相互作用,并能够检查配置结果的有效性。  
  这一配置框架还把系统构件化为不同的包(packages),包括内核,C库和数学库。可以选择要不要整个包,也可以改变这些包里面的配置项。还可以向系 统添加新包,比如添加一个TCP/IP桟。关键是这些新加的包可以指明其对系统其他部分的依赖关系,例如TCP/IP桟可以指明它需要每线程数据支持 (per-thread   data   support)。我们期望eCos包的数量随着时间不断扩充,现在已有一些开发者打算把他们现有的软件做成eCos包的形式。  
  eCos配置系统不影响你开发自己的应用程序的方式。没有必要采用任何特定的语言,没有必要在自己的代码中提供大量配置项,也没有必要使用专门的开发环境。配置系统的主要输出是一个要与你的应用代码连接的库。  
  2.eCos不支持存储管理  
          eCos是一个单进程多线程的操作环境,因而不需要内存管理功能,在存在内存管理硬件的平台上,为了提高性能,相关功能也许会被用到,比如在基于PowerPC的平台上,内存管理被用于使能cache操作。  
          eCos不存在独立地址空间的概念。所有线程共享同一地址空间和访问权限。值得指出的是3G   Lab做了一些实验性工作,他们为StrongARM   SA1110提供保护地址空间。  
  3.eCos的历史渊源  
          这本来应该在第一篇讲的,可是当时找不到相关的资料,在这里算是补缺吧。  
  Cygnus   Solutions于1989年成立,创始人为Michael   Tiemann,David   Henkel-Wallace,和John   Gilmore。这个公司的商业模型是提供高质量的开源软件支持和开发。就是说他们主要是为客户做工程技术支持工作,后来的发展证明这种商业模式是很成功 的——他们接到了大量的单子(虽然我还是在校学生已经感受到it业冬天的寒冷,那么,今天我们能否借鉴一下这种商业模式呢?即以我们的专业的优秀技术进行 相关的技术咨询支持工作或者说与帮助客户进行项目的开发,通过这种行为来盈利。有兴趣的兄弟可以与我联系。)。但是,因为项目是各种各样的,他们为了这些 单子所付出的工作是很繁重的。所以,Cyguus不得不把注意力缩小,他们决定通过改进GNU的gcc、gdb并把他们集成在一起销售来盈利。通过努力, 终于有了成果——就是今天的GNUPro开发工具包,也就是eCos的开发工具。  
          为了向市场提供一个高效的、高质量的嵌入式软件方案,eCos的开发于1997年被提到了日程上。eCos将和GNUPro相辅相成,扩大Cygnus的 产品线。eCos一开始就考虑到了嵌入式系统中内存资源的限制以及嵌入式硬件平台的多样性。它提供了硬件平台的抽象机制,并且具有高度的可配置能力,这使 得它能适用于各种硬件以及不同级别的硬件配置。eCos强大的配置工具可以显著缩短产品开发周期。另外关键一点在于它是开放源码的(开发工具和操作系 统),这样可以降低系统成本——这是嵌入式系统中一个非常重要的因素。用户可以自由使用eCos,但是对eCos的改动应该公布出来,这是为了提高或促进 eCos发展的一种措施。当然,用户的应用程序不必公开。  
          后来,Cygnus   Solution被RedHat收购,作为RedHat嵌入式部门继续eCos的开发。现在最新版本是2.0。不过,Cygnus   Solution原来的员工2002年有些人被RedHat解雇了,在一定程度上影响了人们对eCos的信心。不过,RedHat随即宣称将继续支持 eCos的发展,相信凭借RedHat的技术后盾以及广大eCos用户的积极参与,eCos肯定会得到更大的发展,并获得越来越广泛的注意。  
  4.eCos的核心组件  
          实时嵌入操作系统包含一些标准的功能,例如中断和异常处理,线程同步机制,调度器和驱动程序等,这些也构成了eCos的核心组件。具体包括:  
  硬件抽象层(HAL):用来来向上层提供统一的硬件视图,屏蔽硬件的差异  
  内核:   包括异常处理,线程同步支持,调度器,定时器,计数器  
  ISO   C和数学库:标准C函数库  
  设备驱动程序:标准串口,以太网卡,Flash   ROM等  
  GDB支持:使得目标机上可以和主机通讯进行交叉调试    
   
  5.   支持的平台  
  eCos支持很多种平台,包括ARM,Hitachi,SuperH,NEC,PPC,MIPS,SPARC等等。具体列表见http: //sources.redhat.com/ecos/hardware.html。针对新的体系结构,只需要移植eCos的HAL层,上层应用基本上可 以不必或稍加改动。  
   
  6.LICENSE:RHEPL和GPL  
  1.3.1版本遵循RHEPL,2.0遵循GPL。其实他们基本上是遵循GPL开放源码的。这意味着要求你把你对eCos操作系统代码的改动开放给别人, 但你的应用程序不必开放。但是,GPL这个LICENSE你要是真的违反了,他们也拿你没辙。现在很多LINUX上的东西就是这样。详细信息见   http://sources.redhat.com/fom-serv/ecos/cache/4.html  
   
分享到:
评论

相关推荐

    ecos 3.0 源代码

    eCOS由Redhat推出的小型即时操作系统(Real-Time operating system),最低编译核心可小至10K的级别,适合用于作bootloader增强,微小型系统。 此系统和嵌入式Linux系统的差异是他将操作系统做成静态连结(static ...

    ecos系统内存管理

    ecos 内存管理相关文档,很实用。 ecos 内存管理相关文档,很实用。 ecos 内存管理相关文档,很实用。 ecos 内存管理相关文档,很实用。

    eCos Native C API

    ecos 的API接口函数,可以快速查询

    eCos reference

    eCos Reference documentation for eCos packages.学习eCos操作系统必备的参考手册。有详细的使用说明及例程详解

    如何构建eCos嵌入式系统

    如何构建eCos嵌入式系统 讲解怎样构建ecos嵌入式实时系统

    eCos 系统 分析 比较

    eCos系统分析 比较 嵌入式 uclinux

    ecos抢占式调度

    用实验的方法解释了ecos线程调度的原理和现象,本文档是了解ecos线程调度的最佳文档。

    ecos3.0 linux 源代码

    eCOS由Redhat推出的小型即时操作系统(Real-Time operating system) ,最低编译核心可小至10K的级别,适合用于作bootloader增强,微小型系统。 此系统和嵌入式Linux系统的差异是他将操作系统做成静态连结(static ...

    eCos User guide-eCos操作系统的使用及开发环境的搭建

    eCos User guide-eCos操作系统的使用及开发环境的搭建

    ecos20 compiler for mips

    ecos20 compiler for mips

    UCGUI for ecos

    UCGUI3.94版本移植到ecos,ucgui for ecos

    ecos 3.0 linux 源代码

    eCOS由Redhat推出的小型即时操作系统(Real-Time operating system) ,最低编译核心可小至10K的级别,适合用于作bootloader增强,微小型系统。 此系统和嵌入式Linux系统的差异是他将操作系统做成静态连结(static ...

    ECOS3.0用户指南

    ECOS3.0官方的用户指南。对ECOS的内核和开发有详细介绍。

    Embedded Software Development with eCos

    嵌入式操作系统eCos经典书籍Embedded Software Development with eCos英文原版高清

    eCos编译环境安装

    详细描述了嵌入式系统bootloader引导eCos开发环境的安装。

    ecos_driver 驱动编写

    ecos_driver 在ECOS下的驱动编写规范和例子。 比较详细,可做参考

    Cygwin-VMware-eCos-Redboot.rar_cygwin ecos_ecos_ecos redboot_ec

    我是偶然机会了解到eCos的用途,想在eCos环境下测试下一些命令函数,后来却因为是首次接触eCos,结果导致找了大量的资料,花了三天的课余时间才搞定,鉴于网上没有比较完备的相关教程,所以在此自己根据自己的移植和...

    ecos设备驱动教程

    ecos设备驱动教程,以串口驱动程序为例

    Ecos开发介绍

    一些网友来信反映说ecos增值软件包的范例比较少,不太会用,希望增加详细的使用说明。其实很多关于ecos的书上都有使用方法的介绍,不过考虑到很多用户第一次使用ecos,我还是觉得有必要再给出一些详细的使用说明。...

    eCos reference manual

    eCos reference manual eCos参考手册,pdf版

Global site tag (gtag.js) - Google Analytics