微软最新操作系统内部:Azure RTOS

Microsoft的操作系统集合不断增长。 我们都知道Windows及其通过WSL(Linux的Windows子系统)进入Linux以及通过SONiC(云中的开放网络软件)网络平台进入Azure的过程。 安全的IoT Azure Sphere也越来越熟悉。 现在有另一种Microsoft操作系统,它更加专业化,但开始引起芯片供应商的更多关注。

微软在2019年对Express Logic的收购将其ThreadX实时操作系统带入了Azure折中。 现在被称为Azure RTOS ,它是一种工业级实时操作系统,适用于介于Arduino和Raspberry Pi之间的设备,需要的不仅是固件,而且还不需要完整的类似Azure Sphere的Linux。 该操作系统增加了Microsoft的边缘计算功能,该功能已经在超过20亿个设备上运行。

使用Azure RTOS实时

Azure RTOS的核心是ThreadX picokernel 。 它旨在通过各种可定制的部署映像在各种硬件上进行扩展,该映像仅捆绑了代码所需的服务。 这些服务实现为C库,从而简化了构建和交付运行时代码的过程。 内核是作为C源代码分发的 ,因此可以(尽管不建议)对其进行修改以适应特定的硬件或应用程序要求。

服务与线程并排运行(它们不分层),从而可以优化ThreadX的速度和服务之间的切换。 性能是必不可少的,因为实时操作系统经常以对安全至关重要的角色运行,因此需要对事件驱动的输入做出快速响应。

该内核是实时内核 ,因此无需构建从基本控制循环运行的应用程序。 相反,操作系统使用基于优先级的调度程序进行抢先式多任务处理,从而管理线程之间的任务切换。 可以为关键事件赋予较高的优先级,从而使它们可以在Azure RTOS进行上下文切换所需的时间内快速响应。

在将代码编译,链接到ThreadX库,然后下载到设备之前,需要在熟悉的开发环境中的传统PC上开发代码。 Azure RTOS专为嵌入式硬件而设计,因此将其交付到设备ROM,并通过与设备芯片的硬件连接进行调试。 大多数工业IoT硬件在部署前均已进行了编程,并且通过对设备进行重新编程来交付所有更新。 如果要远程处理,则可能需要第二套固件来更新主系统。

扩展ThreadX内核

其他功能作为库提供,可以随时构建到您的应用程序中并扩展核心ThreadX内核。 这些功能包括文件系统支持,以及FileX,用于RAM和各种闪存格式的基于FAT(文件分配表)的文件系统。 NetX库是一个TCP / IP堆栈,为需要将数据发送到服务(例如Azure IoT)的设备添加了网络连接。 用于IPv4连接; 更新的替代网络堆栈增加了对IPv6的支持。 如果您打算部署成千上万的设备,则最好使用第二个堆栈,因为IPv4地址短缺且规模庞大。

与许多RTOS实施不同,Azure RTOS对于需要与用户进行交互的设备具有GUI选项。 与平台的其余部分一样,它采用基于库的方法,体积小,速度快。 您可以使用Azure RTOS GUIX Studio在PC上设计UI,后者将进行设计并生成适当的C代码,然后将其编译并与Guix库链接。 具有医疗和汽车用途的Azure RTOS认证,UI是一项重要功能。 如果打算在应用程序中添加GUI,则可能需要高端微控制器,因为较小的设备很少支持显示器。

使用微控制器

ThreadX的体系结构的一个优势是,很容易移植到新的芯片体系结构。 这是微软针对Azure RTOS的新发行政策的重要组成部分,该政策改变了将其交付给微控制器的方式。 过去,它是由Express Logic为其直接客户维护和移植的第三方平台。 现在,它以一流公民的身份交付,并获得了高通,Microchip,NXP和其他供应商的硬件支持。

我最近与NXP进行了交谈,以了解他们如何将Azure RTOS与他们的硬件集成在一起。 目前,大多数恩智浦微控制器都使用亚马逊的FreeRTOS或基于Linaro的Zephyr OS。 Azure RTOS将是NXP设备的第三种选择,因此开发人员将能够选择满足其要求的平台。 恩智浦的SDK将添加特定于硬件的功能,所有功能都来自一个供应商,而不必从一家制造商那里购买硬件,而从另一家制造商那里购买软件和开发工具。 这是一种简单得多的方法。 您可以在NXP的MCUXpresso开发环境中编写ThreadX代码, 而不使用Microsoft开发人员工具。

这种方法的优势之一是,恩智浦将为特定设备提供示例代码,展示如何不仅为Azure,而且为AWS或Google Cloud构建本地和网络连接的应用程序。 微软通过Azure实时操作系统的行业安全认证,使其既适用于车辆和铁路应用,也适用于医疗和航空用途,这为NXP提供了一个通过其微控制器交付经过预认证的RTOS的机会,从而降低了成本。 同样,借助Azure RTOS的模块化设计,可以将更复杂的设备附带其图形库或Azure IoT集成功能。

恩智浦的“交叉”微控制器系列似乎是Azure RTOS的理想平台。 它使用低功耗ARM Cortex-M内核,但是它们不是在400MHz上运行,而是在可时钟为1GHz的硅片上运行。 由此产生的硬件和软件的混合应以相对较低的成本提供高性能,而无需大量的功率预算。

Azure的IoT操作系统产品组合

要成功,必须对Azure RTOS进行硬件供应商支持。 Express Logic的原始模型对于规模较小的组织来说是有意义的。 现在,Microsoft的目标是大规模分发Azure RTOS,这意味着要摆脱自定义版本。 与NXP等供应商合作以为其主要产品线提供支持非常有意义,因为它们既提供原型板又提供生产系统,从而降低了与应用程序和硬件开发相关的风险。

借助Azure RTOS,Microsoft拥有一系列IoT操作系统,可从最小的设备扩展到边缘控制器。 Azure RTOS从小规模开始并扩展到中型设备,然后Azure Sphere进入并添加一个安全层(您可以将Azure Sphere用作保护Azure RTOS设备群的网关)。 对于不需要支持实时事件的更复杂的硬件,Windows 10 IoT系列可用于Raspberry Pi和其他ARM和Intel单板计算机等设备。

From: https://www.infoworld.com/article/3536569/inside-microsofts-latest-os-azure-rtos.html

你可能感兴趣的:(azure,rtos)