From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

NI Linux Real-Time究竟

概览

NI LabVIEW Real-Time模块支持NI Linux Real-Time操作系统,在选定的NI硬件上提供。本文​介绍​了​具体​的​新​特性​和​高级​功能,可让您为​应用充分利用NI Linux Real-Time。

内容

Linux Shell支持

NI Linux Real-Time操作系统提供了全面的Linux shell支持,因此您可以执行复杂的管理任务来更轻松地管理Real-Time终端。访问​shell​需要​具有​终端​客户​端。如果​您​使用​的是​Windows 7​或​更高​版本,​则​可​使用​免费​的​热门​客户​端​PuTTY,​具体​可​访问:PuTTY:免费​的​Telnet/​SSH​客户端

除了​终端​客户​端,​您​还​必须​在​运行​NI Linux Real-​Time操作系统的Real-Time​终端​上​选​中“启用SSH服务器(sshd)”(Enable Secure Shell Server (sshd))选项。​您​可以​使用​NI Measurement & Automation Explorer (MAX)或基于​Web​的​配置​和​监测​界面(见​图​1​和​图​2)。​​为了​安全​起​见,​强烈​建议​更改admin​帐户​的​默认​密码。​您​可​通过​基于​Web​的​配置​和​监测​界面​更改​密码。​如果​要​通过​SSH​登录​到​Linux shell,​您​可​使用admin用户​名​以及配置好的​密码​来​获得根​访问权限;​如果​没有​配置​密码,​则​默认​为​空。您​可​通过​基于​Web​的​配置​和​监测​界面​创建​新​用户。​这些​用户​也可以​通过​SSH​登录,​但​没有​根访问​权限。

图1.您​可在​Measurement and Automation Explorer​上Real-Time​​终端​的“系统​设置”(System Settings)选项​卡​内​找到“启用SSH服务器(sshd)”(Enable Secure Shell Server (sshd))选项。访问​运行​NI Linux Real-​Time​的​Real-Time​​终端​之前​必须​选​中​该​选项。

 

图2.您​还​可以通过Real-Time终端基于​Web​的​配置和监测界面​找到“启用SSH服务器(sshd)”(Enable Secure Shell Server (sshd))选项。访问​运行​NI Linux Real-​Time​的​Real-Time​​终端​之前​必须​选​中​该​选项。

 

文件传输文件路径

从LabVIEW 2013开始,所有NI Real-Time终端均支持WebDAV文件传输。WebDAV​是​一个​基于​HTTP​的​行业​标准​协议,​应用​于​Dropbox​等​热门​应用,​您​可用​它​轻松、​安全​地​传输包含​敏感​信息​的​文件。WebDAV​是运行​NI Linux Real-​Time​的​Real-Time​终端​的​默认​文件​传输​机制。如需​了解​更多​信息,​请参阅使用​WebDAV​传输​文件​至​RT​终端

与​基于​VxWorks​和​Phar Lap​的较旧设备​不同,NI Linux​ Real-Time​终端​默认状态下不安装​FTP​服务​器。​如需​FTP​支持​以​保持​应用​程序​的​向后​兼容​性,​您​可以​通过​MAX​安装传统​的FTP​服务​器,但其安全性较低。​访问如何利用NI Linux Real-Time终端使用FTP,​详细了解​NI Linux Real-​Time​的​FTP​支持。​如果​WebDAV不适用于特定应用,NI Linux Real-​Time​终端​还​可​通过​SSH​支持​SFTP​功能。

此外,​NI Linux Real-​Time​的​文件​路径​与​现有Real-​Time终端​和​Windows​存在​几点​重要​的​区别。​如果​要​避免​在迁移​代码​或​管理​支持​基于​Linux​的全新RTOS​的​终端​上​的​数据​日志​时​出现​文件​路径​错误,​请​参考此文档

 

编​程​式系统​访问

LabVIEW Real-Time模块可​支持​NI Linux Real-​Time​终端上​的​System Exec VI。NI Linux Real-​Time​终端上​的​System Exec VI​提供​Linux​命令​行​的​访问权限,​使​您​可以​通过​编​程​方式​管理​NI Linux Real-​Time操作系统,​并​直接​通过​LabVIEW Real-​Time​应用程序​与​终端​上​运行​的​其他​程序​交互。

除了​System Exec VI,​NI Linux Real-​Time​终端​也​可​支持​调​用​库​函数​节点。调​用​库​函数​节点​可​帮助​您​更​轻松​地将​外部​C/C++代码​与​LabVIEW Real-​Time​应用​程序集成,并为​在​NI Linux Real-​Time​终端​上​安装并运行​的其他​程序​提供​的​C API​创建LabVIEW​包装器。

NI Linux Real-Time终端支持System Exec VI和调用库函数节点 NI Linux Real-Time终端支持System Exec VI和调用库函数节点

图3.​NI Linux Real-​Time​终端​​支持​System Exec VI和​调​用​库​函数​节点。​您​可以​通过​LabVIEW Real-​Time​应用​程序​与​NI Linux Real-​Time操作系统​和​其他​程序​无缝​交互。

 

访问​Linux​生态​系统

运行​NI Linux Real-​Time​的​终端​可​极大​受益​于​Linux​提供​的​庞大​IP​生态​系统。​​要​安装、​管理​和​利用​该​生态​系统,​需要​使用​NI Linux Real-​Time上​提供​的Package Manager:​opkg​。​如需详细了解​opkg,​请​访问OPKG Package Manager

NI Linux Real-​Time​终端​除了有助于用户更​轻松地将C/​C+​+代码​与执行系统命令VI​和​调​用​库​函数​节点相​集成​之外,​还​支持用户​使用​Linux​生态​系统​的​代码、​复​用​内部​代码,以及​​使用自选的IDE​开发、​部署​和​调​试​C/C+​+代码。​如需详细了解IDE选项,请参阅构建用于NI Linux Real-Time的C/C++应用程序

访问Linux Real-​Time离线下载,获取Linux系统的驱动程序支持。

 详细了解NI硬件和软件操作系统之间的兼容性

高级性能

全新NI Linux Real-​Time​采用​与​当前Real-Time​终端​相似​的​实​时​调度​器​来​处理​时间紧迫的​代码​调度,​通过​完全​公平​调度​器​(CFS)​来​处理​所有​非​关键​代码​调度。​目前的Real-​Time​终端配备​专用的​RTOS,​仅​依赖​一个​实​时​调度​器​来​管理​​时间​关键型​任务​和​优先​级​较​低​的​系统​任务。​NI Linux Real-​Time的​CFS​可​更高​效率​地​调度​优先​级​较​低​的​任务,​从而​提高​性能。​如需详细了解CFS,​请访问Linux 2.6​完全​公平​调度​器​内部​解析。

除了​调度​器​改变​之外,​您还应当注意到​NI Linux Real-​Time在支持多核方便也发生了变化,因为所有支持这个新RTOS的NI嵌入式硬件设备都是多核架构。​对于​多核​支持​来说,​遵循​最佳​编​程​实践,​​避免​以​100%​的​内​核占用​率​在​处理​器​内核上​运行​时间​关键型循环非常​重要。这​是​因为​多核​NI Linux Real-​Time​系统​中的​每​个​内​核​均​需要​一定​的​时间​来运行​操作​系统​维护/​开销功能,​以免​严重​影响​系统​的​性能。​​为了​避免​这种​​性能​下降,​应​确保​时间​关键型​循环​允许​CPU​每​运行​10​秒​钟可​有​10毫秒​的​休眠​时间​来​进行​开销​处理。

同样值得​注意​的是,​如果​连续​关联​任务​可以在​​处理​器内核​间​并行​运行,那么在​运行​NI Linux Real-​Time​的​多核​系统​上,​处理时间​关键​​型任务​和​系统​任务​都​可能​会​出现性能下降。​这​是​因为​在​不同​​处理​器​内​核​上​同时​运行​的​连续​关联​任务​之间,信息不能​有效​地​进行​​通信。为了​避免​这样​的​性能​损失,​请​遵循​LabVIEW Real-​Time​编​程​最佳​实践,​将​时间​关键​型​代码​和​系统​任务​分配​给​不同​的​处理​器​内​核。您可以​通过​将​处理​器​内​核设置为仅​处理​时间​关键​型功能来​实现这种分配,也可以​指定​用于任何​定​时​循环​或​定​时​顺序​结构的处理​器​内​核,​如​图​4​所​示。查看配置定​时​结构​设置,​了解​更多​​使用​LabVIEW Real-​Time​优​化​多核​系统​的​最佳实践。

图4.在​LabVIEW Real-​Time​中​使用​定​时​循环​结构​分配​处理​器​亲和度​的​方法​有​2​种:​(1)双击​定​时​循环​结构,​在​弹出​的​配置​对话​框​中​设置​处理​器​或​(2)将一个值直接连线到结构左侧的节点上。

 

与​所有​系统​升级​一样,​建议​在​迁移到​基于​的​NI Linux Real-​Time​终端​后​重新​验证​应用​程序,​因为​个别​功能​的​性能​可能​会​有所提升​或​降低,​从而​影响​应用​程序​满足​所有​系统​需求​的​能力。​尤其是,​基于​Linux​的Real-​Time​终端​的​内存​分配​可能​会对​抖动​产生​较大​的​影响。

 

依赖​熟悉​的​开发​环境​满足​新​需求

LabVIEW​​对​新​NI Linux Real-​Time​的​支持​为​您​提供​了​各种​优势,​让​您​可以​在​熟悉​的​LabVIEW​开发​环境​中​更​轻松、​更​快速​地​满足​当今​的​嵌入式​应用​需求。

加入NI Linux Real-Time社区讨论

Linux是Linus Torvalds在美国和其他国家/地区的注册商标。