国产化实时操作系统研究之旅6-Linux与SylixOS 实时操作系统的诉求

本文主要根据本人在项目中的心得体会随笔谈谈为什么要研究SylixOS操作系统。开发嵌入式系统使用操作系统的优点,我想我不必多说了,开发过的人自然有体会。

我以前使用过的嵌入式操作系统也不少,从早期的ucOS、Linux、vxWorks,中间还使用过WinCE, Android做过项目。与PC端操作系统的统一局面,嵌入式市场设备量级远远大于PC端,而且嵌入式设备的应用场景不像PC那样统一,因此不管是厂商还是个人都想在嵌入式操作系统方面分一杯羹,于是现在的嵌入式操作系统市场真的是百家争鸣百花齐放。

由于本人开发面向的领域大部分是高可靠工业控制、轨道交通、军工等领域,因此对操作系统的使用逐渐统一为非硬实时场合使用Linux,高实时性场合采用vx。

我先说说为什么我做项目大部分用这两个操作系统,我早期做嵌入式开发也是从单片机、ARM7裸机开始,那个时候开发产品真的是得软硬通吃,原理图、PCB、接口软件、业务逻辑很多都是一个人搞定,放现在应该叫嵌入式全栈工程师吧,哈哈。所以早期开发项目的状态是接到项目先做硬件分析、绘制原理图、PCB写程序,这样说可能没啥体会,我就拿软件来说。写业务逻辑用的是前后台方式,就是一个主任务其他的全中断,各种置标识;写串口通信自己定协议;写存储自己计算扇区自己写存储驱动;写界面自己写绘制点线贴图,这样开发对于工程师来说是非常有成就感的,但可想而知项目开发效率和周期很难控制,而且应为项目没有标准,维护起来很难,与此同时你也很难开发出来什么智能化产品。

后来,随着ARM在国内流行,处理器性能也比提高了不少,国内逐渐流行了一股ARM加ucOS的技术热潮,这个当时最出名的还是周立功老师,推广做的真的不错。在这股热潮下,rtos逐渐运用在了嵌入式产品上。我也跟风研究了一阵子,并且做了几个产品,但总体感觉加入了rtos对于裸机代码而言只是多了多任务,写业务逻辑简单了一点产品好维护了一点,也没感觉有多好,我跟风纯粹是为了技术上的提升研究内核调度器原理。但随着时间的推移,在rtos上(比如ucOS)逐渐加入了文件系统,GUI, 串口协议栈,利用别人写好的库开发产品效率才真正意义上有了提高,这才感受出来有操作系统的好处。因此,一个好的操作系统,要想有前景最最重要的除了内核本身的技术最最重要的是生态。

技术在不断进步,ARM9、PPC这些高性能处理器的流程,突然间内存管理、网络协议栈、USB协议、文件存储、数据库这些技术都快速运用于产品开发中,以前的那种前后台开发真的是很不上时代了,于是Linux等操作系统逐渐流行起来。为什么Linux会流行,我的体会主要有以下几点:

  1. 接口标准,开发软件不论在什么平台上都用的是那几个函数
  2. 内核生态好,很多SOC原厂新出的处理器都会给Linux提供补丁,而且补丁基本都把处理器中使用的外设涵盖完了
  3. 软件生态好,Linux内核集成稳定的TCP协议栈、文件系统,应用层软件数据库、GUI、通信都有成熟的开源软件解决方案
  4. 内核开源

但Linux的缺点也很明显,Linux不能达到硬实时,虽然也有RT补丁或者其他解决方案,但这些解决方案在很多场合都不适用。

在这里谈下自己的看法,Linux默认的调度器为CFS,普通进程采用的是时间的轮转方式,Linux线程中其实也有实时概念,采用SCHED_FIFO,SCHED_RR调度的线程其性能是向实时性靠拢的,但是Linux内核本身不可剥夺的特性造就了实时性,具体如下图。假如系统中A任务为低优先级任务,低优先级任务在调用操作系统服务功能的过程中,如果没有主动放弃CPU的使用权,即使期间产生中断使更高优先级的任务B进入就绪态,任务B也得等待A系统调用完成之后才能运行。如果任务A在执行系统调用过程中尤其是运行某个驱动过程中如果时间过长,那么高优先级的任务没有办法及时运行。

国产化实时操作系统研究之旅6-Linux与SylixOS 实时操作系统的诉求

 

当然,在自己做项目的时候也通过各种各样的技术解决过这些问题,但毕竟不是什么通用的技术。

那么在绝对需要硬实时的场合下只能选用实时操作系统,但实时操作系统的生态一直都是问题,问题主要有以下几点:

  1. 对处理支持不够完善,很多内核支持的处理器有限,还需要自己移植甚至BSP
  2. 操作系统具有自己的API接口,还得重新学习
  3. 软件生态不完善,因为操作系统API独立,软件移植有问题无法与其他系统通用软件
  4. 有的源码不开放影响了BSP的升级
  5. 还有很多自主研发的操作系统仅限于某个小圈子

因此在实时操作系统领域一直没有合适的操作系统作为大一统,vx因为有厂商维护一直被选为实时操作系统的首选。直到最近两三年,国内越来越重视自主开发,实时操作系统环境才慢慢好起来,同时也出现了很多优秀的实时操作系统,我是机缘巧合下遇到了SylixOS, 系统最吸引我的是开源和兼容POSIX,最起码生态不错,因此花些时间研究一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值