打印

转一个帖子:迎接“全员编程,广泛嵌入”的时代(二)

[复制链接]
995|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
从头到脚|  楼主 | 2015-5-6 18:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    本文转帖自  www。djyos。com/bbs
    在“全员编程,广泛嵌入,全面智联”的时代,恨不得把地球上的每一粒沙子连起来的时代,我们要怎样去设计这个时代的操作系统呢,现有的RTOS能否满足需求呢?
      在上世纪8、9十年代的时候,当时的嵌入式CPU速度很慢,内存等资源也很少,很少有MMU和CACHE的。嵌入式系统编程,汇编是主流,C次之,RTOS只有在高端产品中才会用到,可供选择的RTOS也很少,发展RTOS,要解决的是有无的问题,当时发展操作系统的阻力,比现在要小得多,几乎是做出一个内核就可以了。所以当时出现的RTOS,无论从今天看来是多么简陋,无一例外地获得了相当多的用户。看官注意了,RTOS发展初期出现的操作系统,在一个企业内来看,它只在高端产品中使用,应用场景是比较单一的,而且,任何企业的高端产品,都属于高附加值高利润的产品,企业舍得,也有条件为之配备最高端的人才。当时发展起来的RTOS,由于产品单一,不需要考虑跨界问题,配备的都是高端人才,不需要考虑很多易用性问题。它们“裸露”出大量的线程(有些还支持进程)控制函数,“裸露”出OS运行的各种状态,要求程序员自己控制一切。在帮助应用程序控制复杂的应用方面,只是提供了一些同步、互斥、并行这些基础手段,并无进一步的考虑。及后来,2000年代发展的RTOS,也延续了这种思维模式,无非就是因为有前人肩膀可以踩踏,研发速度快了些,少走了些弯路,并在细节上做了些优化,仅此而已。这让许多操作系统爱好者,认为RTOS没什么“玩头”了,个个拿过来都大同小异,最大的区别,就是函数和变量的命名,参数的顺序,学一通百。
    那么,RTOS真的没有创新空间了么?市场现有的RTOS,真的可以满足新时代下的嵌入式系统需求么?
    得益于硬件和需求的发展,能够运行且有必要运行RTOS的情境大大增加,企业不再只有高端产品需要运行RTOS,RTOS也不再高高在上,完全平民化了。企业内的产品布局,也是多元化的,既有复杂的嵌入式系统,又有简单的嵌入式控制器,还有移动计算产品。在过去,根据CPU性能和所提供内存大小,必须使用三种操作系统,来满足这三类典型需求,目前并无一个操作系统时跨界的。
1. 简单嵌入式控制器,以ucosii为代表。
2. 高性能复杂嵌入式实时系统,以vxworks、threadx为代表。
3. 通用移动计算平台,以嵌入式linux,windows mobile为代表。
    在RTOS发展初期,企业内使用RTOS的产品比较单一,这样限制是没有问题的。但在今天,在广泛嵌入的时代,情况完全不一样了,一个企业同时拥有这三类产品并都使用操作系统开发的情况,比比皆是。不同的操作系统,系统特征、开发工具、开发方法,都是完全不一样的。从业者掌握的技能几乎完全不通用,掌握了其中一类的研发技术后,要想研发另一类产品,几乎要从头学起。这限制了人才的流动,客观地也提高了企业的人才招聘和培养的成本。研发生产多元化的产品的企业,其产品间必然有很多联系,硬件平台中,也必然有许多相同的设备,产品功能中,也会有许多相通之处,可能会有许多相同或相似的功能模块。如果使用其他操作系统,三类产品使用三种操作系统的话,相同的外设,须编写三种driver;相同的功能,也要开发和维护三份代码。
    行业在呼唤,呼唤一种操作系统,能够以极大的弹性,通过简单的裁剪和配置,能够同时满足三类产品的开发。
    1、可以需要专业的BSP工程师来编写设备驱动,但必须能让应用工程师裁剪和添加驱动,不允许要求他们修改BSP代码。
    2、应用工程师能够用简单的方法添加或裁剪驱动和功能组件。
    3、添加或裁剪驱动、功能组件后,不能要求重新编译操作系统。这样的话众多的产品,就会有众多的二进制版本需要管理,产品研发和工程配置时,很容易搞错的。
    4、三类产品必须使用相同的开发平台。
    5、三类产品**能相同或相似的模块,必须能够共享代码。
    6、三来产品必须能够无缝互联通信。

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

5

帖子

0

粉丝