首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

可靠性要求非常高的主控制系统能用Linux吗?会有什么隐患吗?

这段时间以来,有好几个朋友跟我反馈,他们的工业物联网项目或者是自动化控制的项目出了很多问题。比如去年冬天,寒潮来临,气温突然下降到负10度以下,有个朋友的工业路由器出现了大批量的开不了机或者死机的情况。有的是设备在连续跑了两三个月后,出现了开不了机或者反复重启的情况。问了一下具体情况,发现他们的产品都跑的是Linux操作系统,而且CPU的主频都很高。看来就非常有必要发表一下看法了。

首先介绍一下我们手机、电脑、路由器、网关等等这些由芯片控制的设备都是由软件或者程序控制工作的。像我们手机、电脑,都是要先安装一个操作系统,然后再在这个系统上安装不同的软件或者APP,就能实现各种各样的功能,比如看片、听歌、炒股、聊微信、导航等等。这种类型的操作系统我们叫做分时操作系统。电脑最常见的window和linux操作系统,手机常见的是安卓、苹果,最近华为还推出了鸿蒙操作系统,为华为点赞。这些系统呢,好的方面呢是可以让很多公司和个人开发者在上面做非常多的应用开发,开发难度低速度快,迅速满足各种需求,而不用管底层硬件、通信、数据库等等大量非常专业的软件开发。这种系统是多任务的分时系统,可以让多个任务同时执行,每个任务又分时执行。你在看碟的同时,可能还在修图,还在挂着QQ,还在下东西,你感觉是在同步进行的,其实是分时执行的,只是切换太快了,人感觉不出来。这种系统最大的问题是系统非常复杂,有非常多的进程和线程,大家都去抢电脑资源,万一打架,很容会造成应用软件死掉或者闪退,更厉害会造成系统死机,要重启。一般分时系统应用在对可靠性要求低的场合,哪怕出问题,也不会造成生命财产损失。

接下来就是实时操作系统。这类操作系统知道的人很少,都是工业、航空航天、车载这类对可靠性要求非常高的场合。最常见的产品就是PLC、DCS这类工业控制器,他们用来控制发电站、化工厂、自动化设备、电梯等等要求极高的场合。我们的智能网关就是用自己开发的实时系统,基本不会出现问题,哪怕出现,在千分之二三秒就会完成重启。

还有一种可靠性更高的方法就是跑裸机。什么是跑裸机,也就是什么操作系统都不用,直接去控制设备,这种可靠性非常高。很多航空、航天程序都是跑裸机的,比如卫星、飞船。

总结一下。现在很多工业物联网产品或者自动控制产品在linux系统上进行二次开发的。为什么用linux呢?我认为主要原因有下面这几点。首先它是开源免费的,规避了版权的问题,费用能省不少。第二呢,它是多任务系统,非常适合做很多复杂应用的开发,同时有很多第三方的库,很多功能拿来就用,实现起来非常快而且简单。第三,就是不用做很多底层的开发,开发难度大幅下降。还有其它原因就不一一列举了。

事物总有两面性的,要享受它的好,就必须接受它的不好。首先,对硬件要求非常高。他们的CPU都是1G以上的,有些还是4核,内存2G,有些4G,FLASH都在16G以上。这样硬件成本就很高了,而且CPU主频非常高,温度过低容易死机。第二,开发用到大量第三方库,很多体积超过了3、4G,不可控,库也没有经过充放验证,可靠性差。第三,linux虽然说是开源的,但是太大,太复杂了。真正能读懂,吃透linux的公司屈指可数,哪怕有这样的公司,人员的费用也是惊人的,也就一两个顶级公司能负担得起。出了问题后,很多公司来说就束手无策了,唯一能做的就是重启。万一重启还解决不了问题或者就重启不了,那就非常可怕了,尤其是一些会造成生命财产损失的场合。

我们一般是把最核心,最关键的底层控制交给由实时系统或者跑裸机设备,它们可靠性极高,哪怕出问题了,我们还能从根源上找到问题发生的原因,从而解决。像文件存储,数据库,图形化显示,人机界面,路由控制,大数据计算等等,这些就交由跑多任务的分时系统处理,毕竟这种系统更擅长做这些。如果用linux去做对可靠性要求极高控制,我们是不敢的,或许有些公司极牛,他们敢的。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210827A06PCJ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券