由于项目原因,最近比较了几款市场上应用的相对较多的windows平台的实时系统,主要了解较多的是intervalzero公司旗下的RTX64与acontis公司旗下的LxWin。RTX在亚太地区的代理是台湾的一家公司,而acontis公司是国内一家叫什么盟的北京公司代理,这个产品应该是刚进入中国市场不久。下面分析下两个系统之间的差异:
1、介绍
RTX的官网是这样介绍的:
RTX64善用Windows操作系统的生产力、易使用性以及在物联网的领先地位。与大多数的虚拟化技术不同,RTX64和Windows10藉由两个排程器互相依存 – 一般与实时 (RTOS) 用途,因此可以和微软的Windows共享内存。决定性的应用程序藉由共享内存提供了世界级的低延迟性,也因为Windows的物联网工具和连通性,创造了一个沉浸式的使用者体验。
LxWin是这样介绍的:
现今,Linux已经成为最流行的实时操作系统。由于其确定性的硬实时能力,完善的开发工具和板级硬件驱动和软件的支持,使领先的工业控制器制造商都在使用。典型应用包括带有高实时性需求的PLC、运动控制、数控系统。使用LxWin Hypervisor,可以并行运行Windows和非常快速的实时Linux。大量的Linux驱动程序,例如对于现场总线控制器或GigE摄像机系统,通信协议栈(EtherCAT,Profinet,OPC,OPC UA,TSN等)或复杂的软件解决方案(例如CNC控制器或PLC),而无需在LxWin下进行任何更改。
2、系统结构
RTX64:
LxWin:
从二者的结构上来讲,RTX的实时子系统严格意义上应该不属于单独的一个子系统,他是属于windows系统的一个进程,但是可以独享指定CPU 指定内存,在此基础上通过HAL(硬件抽象层)和NAL(网络抽象层)层来实现实时性。
而Lxwin属于在windows基础上构建一个consolidate hardware来搭建一个实时的linux系统,严格意义上讲属于虚拟机的一种,只不过采用的实时系统可以是RT-Linux和vxworks。
3、优缺点
从结构上的差异上来讲,RTX与windows的兼容性应该会更好,Lxwin采用的虚拟机架构,在使用效率和系统的扩展性上会稍差一些。
RTX的缺陷在于,RTX有2个license,RUNTIME和SDK分别需要单独授权,且RTX的实时API必须要SDK授权才能调用,对于一些厂家,希望可以给到客户进行二次开发以提供更高的自由度会受到很大限制。RTX的实时进程RTSS与windows端的EXE之间采用共享内存通信,而Lxwin与windows端采用的是网络套接字,这个调度会比RTX稍慢些。
但是Lxwin有一个最大好处就是,对于你的客户,它的控制面板是隐藏的,客户不会知道你用的是什么实时系统,如果你封装的话。但是RTX 的Runtime必须要通过RTX 控制面板来配置。
说实话,这个看起来是有点难受的。