搜了些文章,先看看,了解下嵌入式操作系统。
http://lycn81.blog.163.com/blog/static/26282084200982511326717/
到目前为止接触过QNX、RTLinux、uC/OS-II、Nucleus Plus、VRTX、VxWorks、eCos,总结下来有以下特点:
1:QNX的可靠性很好,协议栈、各种外设驱动稳定,只是运行所需资源有些多,需要MMU。如果需要高可靠性应用,QNX可能是最好的选择,本人公司现在就是基于QNX开发RTOS的。
2:RTLinux的实时性与其它RTOS相比有些差。但是,因为好多Linux资源可以利用,是RTLinux的优点。但是运行所需资源比QNX还多,也是需要MMU。可以选用开源的RTLinux或内容新的商用RTLinux。
3:uC/OS-II比较小巧,移植容易,网上资源很多,核心可以做得很小。但不是免费的,并且驱动需要自己编写,协议栈、图形驱动都要另外加。
4:Nucleus Plus比uC/OS-II庞大,另外提供了文件系统、协议栈、图形界面等许多东西。当然也是分开卖的,不是免费的东西。使用起来比较容易上手。
5:VRTX是一款比较早的RTOS,现在使用的人已经很少。运行还是比较可靠。配套的文件、协议栈等模块很少。
6:VxWorks是RTOS中的大牛,国内外用的人很多,开发工具功能强大,使用方便,但是价格昂贵。也有基于MMU的高可靠性的产品。所需资源比QNX小,比uC/OS、eCos多。对于一些私企或者好似小公司来说,可用性值得商榷。
7:eCos是开源的RTOS。针对不同的CPU已经做了许多现成的移植。代码尺寸比Nucleus的略大。如果不用USB host等,并且不想花费太多的金钱,应该是不错的选择。
http://243633.blog.51cto.com/233633/392034
vxworks | linux | |
内核结构 | 微内核,内核只提供了基本的服务,如:任务管理,内存管理,中断处理等 | 宏内核,除了基本的服务,内核还包括文件系统,网络协议等 |
运行模式 | 应用程序运行在“实模式”下,无用户模式和内核模式之分 | 采用“保护模式”,用户进程、线程运行在用户模式下,内核线程运行于内核模式 |
内存访问和内存保护 | 内核采用实存储管理方式,所有任务运行于同一物理地址空间,用户程序直接操作物理地址,不能直接地提供内存保护,不能防止错误蔓延 | 内核采用虚拟存储管理方式,用户具有独立的地址空间,用户进程只能访问本进程的虚拟空间,提供了内存保护,可以防止错误蔓延 |
执行单元 | 任务 | 进程、线程 |
请求内核服务方式 | 函数调用,更快 | 系统调用,更安全 |
实时性 | 硬实时 | 软实时 |
发行版 | windriver vxworks | Motivista Linux、Lineo Embedix、Bluecat Linux |
较之Vxworks系统,因为我先前的工作主要是基于Vxworks的,所以在此对Linux系统和Vxworks系统做一个简单的比较,这个比较并非完全技术层面,而我对于Linux的了解也仅仅是“刚刚上路”,所以就是代表我的一家之言,仅供参考。 Linux和Vxworks相比,技术上有两个比较吸引人的特点,第一是内存管理,使得用户进程之间地址空间独立,从而可以避免应用程序漏洞导致系统崩溃的问题,而在基于Vxworks的系统中,内存操作相关问题,在系统致命问题中占有很高的比例。第二是应用程序动态执行,这极大的提升系统扩展性能,减小现网运行设备的升级维护压力,电信级设备中,这应该是一项重要的性能指标。当然,理论上Vxworks系统也能实现。 下面的表格是两者的综合比较。 |