你的位置:大电流电感 > 新闻动态

实时操作系统从RTOS移植到实时Linux

2020-03-24 10:28:59      点击:
上一篇:Linux系统死机的软硬件问题分析

 在Linux上仿真RTOS

图1 在Linux上仿真RTOS

传统RTOS可以实现数百种系统调用和库API。例如,VxWorks文档描述了超过一千种独特的函数和子例程。实际应用只使用数十个独特的RTOS API,而它们其余的操作都使用来自标准C/C++库的调用函数。

为了仿真这些接口以用于移植,开发人员只需要RTOS调用的核心子集。许多OEM选择自己建立和维护仿真轻量级库,而其他OEM则使用来自供应商的更全面的商用库。除了商用库和自主开发之外,另一种选择是一个叫做v2lin的开源项目,它可以仿真数十种常用的VxWorks API。此外,v2lin项目经过架构改造之后,可用于较新的兼容于POSIX的glibc版本。

使用虚拟化进行运行时划分

对于期望采用Linux的工程师而言,虚拟化是另一种可行的移植路径。虚拟化包括操作系统的驻留或者作为一个应用程序运行在另一个虚拟平台之上,其中一部分系统软件(运行在“裸机”之上或作为驻留的应用程序)可实现一个或多个“客户”OS实例的执行。在企业级计算中,基于Linux的虚拟化技术是数据中心的主流功能,而且虚拟化也在嵌入式系统中找到了许多的应用。

嵌入式虚拟化要求将CPU、内存和其他资源进行划分,以驻留RTOS以及一个或多个客户“应用程序”操作系统(通常是Linux)来运行更高层次的软件。

采用虚拟化划分开的运行时

图2 采用虚拟化划分开的运行时

虚拟化可以通过允许RTOS应用程序和RTOS自身几乎原样地运行在新设计之中,而Linux则运行在自己的分区之中,以支持移植。这种方案适用于遗留代码依赖于RTOS的API和RTOS的性能特点的情况,例如实时性能或协议栈的具体实现。