基于Docker和OTA技术的Toriozn系统简介
- 关键词:Linux,OTA,docker
- 作者:By Toradex胡珊逢
- 摘要:Torizon 是 Toradex 面向行业应用推出的一款基于 Linux 的全新的开源操作系统。其旨在简化嵌入式系统开发的难度,同时引入现代软件开发、维护理念,提供更加可靠且易于使用的互联、在线功能。Torizon 为嵌入式设备实现了一套崭新的开发和使用方法。本文接下来将介绍 Torizon 的特色功能,以及相比于传统的 Linux 系统在使用上的差异。
Torizon 是 Toradex 面向行业应用推出的一款基于 Linux 的全新的开源操作系统。其旨在简化嵌入式系统开发的难度,同时引入现代软件开发、维护理念,提供更加可靠且易于使用的互联、在线功能。Torizon 为嵌入式设备实现了一套崭新的开发和使用方法。本文接下来将介绍 Torizon 的特色功能,以及相比于传统的 Linux 系统在使用上的差异。
Torizon 由 TorizonCore OS 和 Torizon Platform 两大部分组成。 TorizonCore OS 是安装在 Toradex 计算机模块上的操作系统。 Torizon Platform 是 Toradex 维护的在线平台,其能够于 TorizonCore OS 建立网络连接,为运行 TorizonCore OS 的计算机模块提供诸多在线功能,例如 OTA 更新、集群设备管理、远程监控等。
TorizonCore OS 底层采用了 Linux,支持常用的 Linux 命令工具。该系统一个显著特点是支持容器 docker。如下图所示,TorizonCore 包含了 Linux 内核、容器运行环境、以及 OTA 等其他服务。用户的应用运行在容器之中,而非直接访问 Linux 文件系统。多个容器可以独立运行。
容器是一种标准化的软件单元。一个容器集合了用户应用本身,以及该应用运行所依赖的软件如第三方库文件,配置文件和数据文件等。容器中的软件独立于操作系统,可以视为操作系统的虚拟化。因此容器可以非常容易地迁移到其他硬件平台上。
对 Docker 容器的支持,使得用户可以利用 Docker Hub 上丰富的现成容器,例如 Qt、Debian、Ubuntu、.Net 、Python 等。从而不再需要进行复杂的交叉编译。同时容器技术具有非常高效的版本管理功能,用户应用的升级和回滚都可以从中受益。例如在传统 Linux BSP 上从 Qt 5.12 升级到 Qt5.15,用户需要重新编译 Qt 源码或者使用 Yocto Project 重构整个 BSP。而在 TorizonCore OS 上下载一个 Qt5.15 的容器即可。也无需担心操作系统其他软件的版本是否兼容。
由于采用了容器的方式运行用户软件,TorizonCore OS 本身一个非常精简的最小功能系统。用户不在其上面直接安装软件或者部署编译好的应用。除了系统配置目录如 /etc ,TorizonCore OS 的大部分文件系统都不允许用户直接修改,如 /usr 、/lib 等目录下的文件。
用户需要创建一个容器,在容器安装所需的软件以及编译好的应用程序。然后启动容器,由容器中的应用程序实现相关业务功能。 TorizonCore OS 的文件系统由 OSTree 管理。这是一种类似 git 工作模式的文件管理系统,由其实现对每个系统文件的添加、删除、恢复等功能。同时 OSTree 也是实现 OTA 更新的基础。
传统的嵌入式设备在第一批设备出厂后,通常软件和硬件都不再会发生变化。而对于现代软件开发来说,借助CI(持续集成)、CD(持续开发)等模式,即使在设备交付后,仍能够提供软件更新,修复未知的问题或者增加新功能,从而提升用户使用体验。位于云端的 Torizon Platform 则为 TorizonCore OS 提供 OTA 更新、集群设备管理和远程监控功能,更多实用的功能也会即将上线。
OTA 更新允许嵌入式设备远程更新其软件,无需直接接触设备就通过更新软件修复问题、部署新业务或者打补丁。具有 OTA 功能的设备通常对该功能具有较高的要求。更新出错、网络中断或者更新期间意外断电都可能导致设备无法正常工作。所以 OTA 需要能够在更新出错时能够自动回滚到最后一个可正常运行的软件状态。Torizon OTA 采用高可靠的 Aktualizr 客户端,默认已经集成在 TorizonCore OS 。凭借 OSTree 实现了软件版本回滚功能。相对于 A/B 分区整体更新方式, Torizon OTA 采用的是差分更新,即只更新发生更改的文件。有效得提高了更新速度,并减少数据下载量。这对使用4G/5G 上网的设备显得尤为重要。
用户可以将自己的 BSP 上传到 Torizon Platform 对特定的设备进行更新,也可以使用 Toradex 发布的 BSP 令设备保持最新的软件状态。同时也单独可以对设备上的容器进行更新,而非整个 BSP。
Torizon Platform 的集群设备管理能够更加高效地对大量设备进行维护。实现批量设备的重启、安装特定的更新等。
远程监控能够远程查看设备的运行状态,例如 CPU负荷、内存占用、网络使用、正在运行进程和重要的异常日志等。这些信息可以被发送到 Torizon Platform,给用户提供可视化监控数据。远程监控基于 Fluent Bit 实现。这是一个开源的日志处理和转发器。用户可以使用丰富的插件来采集更多的数据,包括温度、内核日志等。除了监控设备运行状态外,这些数据也有助于修复现场遇到的问题。
远程访问是即将上线的另一个功能。这可以令您接管设备,简化客户支持或者问题排查。
对于开发人员,Toradex 提供相应的插件支持使用 Visual Studio/Visual Studio Code 开发 Torizon。用户可以自由选择 Windows、Linux 或者 Mac 作为开发主机。Torizon 扩展插件提供对 Visual Studio Code 完善的支持。扩展插件可以便捷地管理容器和在设备上在线调试,使您可以通过很少的几次点击就完成从 Visual Studio Code 完成应用部署。甚至直接将开发好的容器上传到 Torizon Platform 进行远程部署。
Visual Studio/Visual Studio Code 中我们也提供包括 C/C++、Python、.NET Core 甚至是 Qt 开发的工程模板。 令用户在嵌入式设备上方便地使用主流开发语言。
上面是对 Torizon 系统从设备端 TorizonCore OS,到云端的 Torizon Platform 以及开发工具的简要介绍。如果您像更全面而深入的了解 Torizon ,请阅读这里。