实时操作系统:鲜为人知的大角色
2014-12-27安琳
每部智能手机其实都运行着两个操作系统,在我们熟悉的Android和iOS之下,还有另外一个管理通信功能的底层操作系统,它储存在固件中,运行在基带处理器上,称为实时操作系统。
运行在美国高通公司的高通基带处理器上的实时操作系统叫做A M S S(Advanced Mobile Subscriber Software,先进的移动用户软件),采用的是高通自己的REX内核,而业内非常流行的MTK(中国台湾联发科技股份有限公司的简称,全称叫MediaTek)平台,则主要使用一种名为Nucleus的第三方实时操作系统。实际上,实时操作系统的用途非常广泛,在路由器、智能电视、机顶盒、卫星、飞机等固件中都有它的身影,是鲜为人知的“大角色”。
时限要求高
实时操作系统是相对于分时操作系统的概念。在分时操作系统中,计算机资源平均分配给系统内所有工作,系统对各项任务完成需要花费的时间并无特别要求。
常见的三大桌面操作系统Windows、Unix、Linux均属于分时操作系统,对它们来说,功能强大和界面友好是非常重要的方面。而实时操作系统的主要任务是调度好CPU的时间,保证处理器的运行效率和稳定可靠,最关注的是每个任务的进度和在多长时间内可以完成,对“时限”的要求很高。
根据对时限要求的“刚性”和“柔性”程度,实时操作系统又分为“硬”实时和“软”实时两种。硬实时系统有一个刚性的、不可改变的时间限制,不允许任何超出时限的错误。软实时系统的时限是一个柔性灵活的统计时间限制,操作系统可以容忍偶然的超时错误。
改变嵌入式工业
在实时操作系统诞生之前,面向嵌入式软件开发必须要面向处理器直接编写,系统软件和应用软件分不开。一旦更换了硬件环境,软件应用就无法运行了,这极大的限制了嵌入式软件的知识创新和产品化。实时操作系统将CPU时间、中断、I/O等资源打包之后,向用户提供标准的应用程序开发接口,这就实现了应用程序开发与硬件环境的相互独立,解决了嵌入式软件开发标准化的难题,为嵌入式软件的产品化和市场化扫清了障碍,奠定了产业的发展基础。
实时操作系统的诞生,大大改善了代码的可移植性,可以说改变了整个嵌入式工业。今天,实时操作系统已经是嵌入式软件的基础核心,不仅是运行平台,更是开发平台。比如,大名鼎鼎的苹果公司的车载系统CarPlay,其实只是在一款名为QNX的实时操作系统上发开的用户界面而已。
几乎所有的尖端控制技术,都离不开实时操作系统的支持,只是实时操作系统与微处理器紧密集成,大多数情况下都是“隐形”的。我们对提供用户界面的操作系统有很多的认识,但是,实际上实时操作系统的操作权限远远高于应用层的操作系统。
我国实时操作系统兴衰
实时操作系统大多是开源的,我国对于实时操作系统技术的研究和应用也曾非常广泛。当手机还是功能机的时候,中兴、大唐等主要厂商均开展过实时操作系统研究。另外,北京凯思昊鹏软件工程技术开发的HOPEN实时操作系统也曾被应用在很多手机上,如熊猫EMOL98、CECT紫光920、联想G900及NEC多款机型上。
随着智能机对功能机的替代,尤其是多核C PU的快速普及,生态体系完善的Android和iOS在应用层一统江湖,而底层的实时操作系统直接隐身在处理器芯片内部,实时操作系统作为独立产品的市场已不存在。在高通芯片和MTK芯片的应用大潮之下,我国大陆的实时操作系统技术被踢出了游戏。近年来,随着国产处理器芯片技术的进步,我们也许有望看到自主的实时操作系统再度卷土重来。