分享

用数百行代码实现60亿设备互联:微软重金收购的ThreadX硬在何处

 怪叔叔的书城 2020-07-26

1. 物联网操作系统简介

物联网操作系统是一个实时、嵌入式、有网络通信功能的操作系统。其特点是系统资源较小,低功耗,低成本,安全可靠,并针对特殊的硬件和功能实现而设计。

物联网操作系统由内核、通信支持、外围组件、集成开发环境等组成,基于此,可衍生出一系列面向行业的特定应用。

2. ThreadX 简介

ThreadX 是由 Express Logic 公司开发的实时操作系统(RTOS),由 Express Logic公司开发,现已经被微软收购。

ThreadX创始人Edward L. Lamie博士曾经是美国加州大学斯坦尼斯分校计算机科学系教授,从事计算机科学的教学和科研工作多年。Lamie也是Nucleus RTOS(Accelerated Technology公司)的创始人。Nucleus从1.0版本发展到1.3版本后被Mentor收购,Mentor将Nucleus的版本修改为1.11后继续发展,而Lamie另立公司Express Logic,重新开发了一个ThreadX,最初版本是3.0,现在已经发展到了5.X。ThreadX和Nucleus虽然大体结构及大部分机制相似,但是Lamie 博士还是做了很多变化。

Express Logical位于加州San Diego,这里汇集了美国无线通信和医疗领域的高科技公司,著名的高通(Qualcom)公司总部就在San Diego,德州仪器、三星、Intel、摩托罗拉、松下等全球主流的高科技企业均在此地设有专门的无线通信研发机构,这使得ThreadX在无线通信领域有大量的应用。

和许多其他实时操作系统类似,ThreadX是多任务系统,应用在嵌入式操作系统中。大部分的开发工作在主机上完成,主机运行Windows或Linux系统,交叉编译器可以在主机上生成目标系统的机器码,然后下载到目标板上运行。

ThreadX采用抢占式调度,快速的中断响应,独立内存管理,支持线程间通信,互斥,事件和线程同步。支持优先级继承,这种微内核设计,使代码空间占用小。

ThreadX具有规模小、实时性强、可靠性高、无产品版权费、易于使用等特点,并且支持大量的处理器和SoC,广泛应用于消费电子、汽车电子、工业自动化、网络解决方案、军事与航空航天等领域中。

ThreadX是Express Logic针对高实时应用小面积速度快免费的RTOS。免版税的业务模式令ThreadX对于高容量器件来说极具吸引力。

ThreadX的简单易用也使带ThreadX的器件既能按时面市又不超预算,这些都是ThreadX在市场上成功并被大量使用的原因所在。目前Express Logic有超过62亿部设备都部署了其ThreadX RTOS系统,也是全球部署最多的RTOS之一。

2017年3月,Express Logic推出自家X-WARE物联网平台,该平台基于Express Logic的ThreadX RTOS和TCP/IP网络堆栈NetX DUO,针对嵌入式设备提供包括文件系统(FileX)、GUI、TCP/IP网络堆栈(NetX DUO)、USB协议栈等工业级解决方案。

微软通过这次收购,增加可以无缝连接到Azure的设备数量。Express Logic的Threadx RTOS加入了微软是对物联网设备的支持,并且与 Azure Sphere互为补充。微软选择Express Logic的Threadx RTOS主要是因为较好的安全认证和与Azure IoT Hub的现成连接。

微软希望将ThreadX与其现有的物联网系统Azure Sphere相结合,使制造商能够更轻松地创建可连接到Azure的MCU驱动设备。Azure Sphere在资源高度受限的设备中无法使用Azure Sphere,包括电池供电的装置以及闪存少于 64KB 的设备(例如灯泡、空调和医疗、家居设备等),于是采用Express Logic的ThreadX RTOS进行实时处理和更额外的安全认证。当物联网解决方案需要边缘计算功能时,还可以使ThreadX支持的设备连接到Azure IoT Edge设备。并希望通过此次收购覆盖超过90亿设备。

3. ThreadX 应用案例

据CMP统计表明,ThreadX RTOS已经占有全球第三大硬实时操作系统市场份额。

  • NASA'深度撞击'

2005年7月4日,美国国家航空航天局(NASA)成功实施了“深度撞击”飞船对坦普尔1号彗星的准确撞击,其中,ThreadX在其中发挥了关键作用,控制其中全部三套彗星成像仪的运行。ThreadX控制高分辨率摄像头、中分辨率摄像头和撞击目标传感器。每个设备都能帮助撞击器完成与彗星的撞击,并在撞击前、撞击发生时、撞击后收集科学研究数据。在三个控制器中,为使照相机能够执行它们的艰巨使命,ThreadX管理应用程序线程的调度,执行中断服务,以及传送消息。

航天的计算机系统首先要求的是可靠性,因为航天很多的环境都在极端温度和速度,主要的硬件都被设计成很耐用的状态,计算主频并不是要求很高,对于这种功能性简单但可靠性要求高,必须要保证可靠性运行,而且要经过美国航天局的认证。

  • 消费类电子

作为消费类电子产品,ThreadX得到了广泛的应用。惠普公司的多款数码相机中应用了ThreadX RTOS和配套的FileX文件系统组件,同时,惠普公司也在全系列打印机产品中使用了ThreadX RTOS, 其中采用Threadx开发所有的喷墨打印机;

ThreadX配有Express LogicTCP/IP协议栈NetX、文件系统FileX、USB协议栈USBX以及GUI开发包PEGX,所有这些都支持Tensilica最新的Diamond Standard 106Micro产品。低功耗Diamond Standard 106Micro是针对SoC(片上系统)设计中简单控制器应用而设计,为那些将产品从8位/16位控制器移植到32位处理器上的设计工程师理想选择。

其它数码产品应用还包括Panasonic公司的11Mbs无线网卡以及Konica-Minolta、Toshiba、Ricoh、Samsung等。目前在超过4亿5千万电子产品中得到广泛应用。

  • 瑞萨电子

目前ThreadX是瑞萨电子Synergy软件包的核心,可以帮助嵌入式设计人员加速开发,并在物联网领域实现差异化。在瑞萨电子2017年发布的新型RZ/N1解决方案套件中,瑞萨电子提供了在应用程序子系统上由ThreadX驱动的Express Logic X-Ware物联网平台的用例参考端口,ThreadX提供先进的调度、通信、同步、定时器、内存管理和中断管理设施。

  • Atmel

Express Logic的ThreadX RTOS和中间件使得设计人员能够使用爱特梅尔(Atmel)SAMA5处理器器件,将其项目更快地推向市场。ThreadX完全支持爱特梅尔所有基于ARM的处理器器件,包括新的SAMA5D3系列,并且兼容爱特梅尔Studio 6和IAR嵌入式Workbench IDE。该解决方案提供了易用性、直观API、完整源代码、免权益金许可,以及出色的文档资料和支持,实现无故障设计体验,并且能够更快地将原型推向市场。

  • Kinetis MCU-恩智浦半导体

恩智浦半导体在其Kinetis MCU中广泛使用了ThreadX RTOS,因为Express Logic具备出色的低功耗性能和智能功能集成、外设集合可扩展性,可以完全支持物联网、消费设备、便携式工业、智能电网和智能电表。

  • ThreadX支持的CPU有:

PowerPC,680x0/683xx,ColdFile,ARM7,ARM/Thumb,MCORE,ARC,TriCore,X86,StrongARM,MIPS,SH,I960,V8xx,SPARC,Xscale,H8/300H,TMS320C。

  • 手机操作系统的应用:国内的中兴u860手机,酷派F650手机。

4. ThreadX产品介绍

ThreadX是一个实时操作系统(RTOS),大多数RTOS用于嵌入式系统,专用于对特定硬件进行控制。对于特定硬件直接开发一个专用的应用程序也可以进行控制,而使用RTOS最重要的特性在于确定性,对于系统的每一个状态和输入,都能有一个特性的输出和下一状态。另外RTOS符合一个特定的时间约束,就是说这个输出结果必须是在特定的时间内获取。

以下是Thread X一些特殊的设计和性能:

(1) 优先级调度

ThreadX和其它RTOS和嵌入式操作系统一样,都是内核化的,具备上下文切换、时间片轮转,基于优先级的调度以及继承和翻转机制等。在优先级调度中有一个特有特征是抢占阈值(Preemption-threshold)。用一个优先级上限值来消除一定的占先操作。这种设计是一种相对增强和灵活的优先级调度机制,可以在时间片轮转中的资源分配和优先级调度中实现折衷。

(2) 对节能的支持

大部分处理器都可以进入低功耗模式,但这种模式是一种中断等待模式,通过操作系统的中断指令回到正常模式,所以操作系统性能一个很重要的指标就是判断低功耗模式并设置更加精确的时间刻度,并通过定时器编程来实现,ThreadX通过特定的服务程序调整Thread X定时到指定的量的时间片。这样能实现非常苛刻的时间要求保证芯片的低功耗切换。

(3) 内存管理

Thread X用两种内存管理来管理资源:内存字节池和内存块池。能给用户带来极大的灵活性。

内存字节池可根据线程需求分配任何字节大小内存块,Thread X对字节池的使用和数量没有限制。但这种连续内存分配会带来的碎片化,Thread X得碎片整理可以尽量减小额外开销。

而作为在实时操作系统中应用更多的内存块池,ThreadX用一个FIFO顺序维线程提供内存,通过链表操作简化内存分配的寻址以提高实时性。

(4) 线程间通信和互斥

ThreadX提供32位信号量进行通信,信号量除了互斥,还能提供事件通知以及线程同步。互斥量一般用于对临界区的控制,具有线程的所有权,可靠性更高,但信号量在速度上更胜一筹。

Thread X使用消息队列进行线程中通讯,而且遵循先进先出(FIFO)的原则。

(5) 异常处理

Thread X作为RTOS和处理器处理能力的紧密结合,简单易用而且功能强大。

ThreadX的初始化发生在应用程序的主函数中,一个调用进入到ThreadX初始化程序中,在这个函数中可以定义自己设置的系统对象(线程、队列、信号量、互斥量、定时器、内存池等)。

ThreadX的线程调度的上下文非常小,一般只占48字节的空间,尤其是减少中断处理的上下文以减少系统资源消耗。

ThreadX对处理器所有的程序异常和中断提供基本的处理,ThreadX程序设置针对异常处理事件的旋转循环,当异常发生时,开发者很容易设置断点以立刻检测到异常。

5. 物联网操作系统市场分析

物理网操作系统的特点需要满足内核实时性、可靠性、低功耗、可扩展等要求。相比PC和手机操作系统,物联网操作系统除具备传统操作系统的设备资源管理功能外,还需要屏蔽物联网碎片化的特征,提供统一的编程接口,实现统一的跨平台管理,降低应用的开发的成本和时间。因此需要更完善的GUI管理、网络管理、远程操作和存储能力的要求。

由于操作系统在产业链中处于极其特殊的地位,操作系统是物联网时代的战略制高点,决定了这不可能是纯粹技术比拼,而是综合实力的较量。今天PC和手机时代的操作系统霸主未必能在物联网时代延续霸业。而操作系统产业的规律是当垄断形成后,后来者就很难颠覆。对于微软这样的传统操作系统厂家也看中了这个巨大的市场机会。

未来物联网操作系统必然是基于云平台,因此未来的也将形成以现有云平台巨头为代表的寡头垄断,如亚马逊(FreeRTOS)、微软(ThreadX)、阿里(YUNOS)、华为(LiteOS)等。在底层的平台技术方面,微软占有一定的优势。但是在移动互联网时代,前台的交互系统也非常重要,如亚马逊的Alexa,但在目前这个阶段,可能计算平台比人工智能的交互界面更有优势,因为只有最大接入更多硬件设备和更大吞吐和数据量,应用才能越丰富,这个操作系统才能带给用户更好的体验,解决更多的问题。

中国M2M市场已经突破1亿,预计2020年市场规模将达1500亿元,是全球最大的市场,今年作为5G元年,物联网行业将迎来高速增长。在和国际巨头的竞争中,由于我们巨大的市场和领先的通讯和云计算技术积累,我国在这个领域处于第一梯队。目前华为LiteOS,阿里YunOS处于领先地位,华为依靠在底层技术研发和通信连接方面的技术积累,推出了全球最轻量的物联网OS内核,基于中国这个全球最大的通讯基础网络,通过运营商市场迅速扩张生态。而阿里作为国内最大的云服务商,在云计算市场领域占有国内绝对的市场份额,在汽车、机器人、智能硬件、互联网+产品等领域奠定了巨大的市场基础,占据了行业爆发前的有利地位。

对于中小创业企业而言,在不同的垂直细分领域可以研发专用的物联网OS,如RUFF,基于RUFF的物联网开发平台可发了针对工业领域的物联网应用产品 Ruff Plant Insight(设备宝)。如独角兽企业涂鸦智能,主要为智能家居产品提供物联网操作平台,用的是AWS的智能语音平台和开发架构。

中小企业也可以用开源社区的内核和中间件开发自己的专用操作系统,核心是挖掘行业和客户需求,提供高性能和低成本的解决方案。

国内外的各种物联网操作系统还有很多,大量芯片厂家(Intel、Arm)、嵌入式系统厂家(Vxworks,UBuntu)、IT企业(微软,Google,Oracle)都推出了自己的产品,其内核功能差异并不大,在开发语言、现有生态、对应用的支持等方面有一些差异。底层技术未来还是由大企业来主导,逐渐形成行业标准。小企业从应用出发,在细分领域拓展市场。对于想进入物联网行业的初创企业,选择好合适的操作系统架构,做一些应用方面的二次开发和创新,也很有机会。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多