为何选择 Zephyr?

为何选择 Zephyr?,第1张

Zephyr 项目于 2 月宣布时,Linux 社区的许多成员似乎都感到不解。尽管由 Linux 基金会托管,但 Zephyr 是一款完全独立的 *** 作系统,并未采用 Linux 代码。与多个其他开源 *** 作系统项目(包括面向许多 ARM SoC 的 Linux)一样,该 *** 作系统也面向小型硬件设备 —— 从 Arduino 到 ARM 系统芯片 (SoC)。在于圣迭戈举办的 016 年嵌入式 Linux 大会上,Zephyr 团队现场说明了这一新项目为何恰逢其时,并希望它可引起开发人员的浓厚兴趣。

“事物” *** 作系统
任职于英特尔的 Anas Nashif 在其演讲中简述了Zephyr,包括英特尔支持该 *** 作系统的背景及其功能。该项目的基本目标是为“子 Linux 设备 (sub-Linux device)”提供一种开源的实时 *** 作系统 (RTOS)。除此之外,英特尔研究了市场上目前的 RTOS 产品,发现它们存在多方面不足。首先,其中多款产品仅支持一种架构,这影响了它们的吸引力。
其次,多款产品为用户自主开发 (roll your own) 的项目,用于研究或由单人维护。这似乎会产生严重的安全缺陷。此外,一些较小的 RTOS 项目使用特殊的软件许可证,这也会限制开源社区对它的采用。最后,许多现有项目在功能方面受到过多限制,无法用作物联网 (IoT) 设备的通用 *** 作系统,而英特尔认为 Zephyr 可担此重任。
相比之下,Zephyr 开源 RTOS 产品具有如下优势:支持多个架构、具有广泛的贡献者群以及不只提供一种“调度程序”,而且还提供出色的网络支持和真正的安全框架。英特尔有幸获得了 Wind River 微控制器 RTOS 的权限,认为它有望成为广泛适用的 *** 作系统,于是着手改进代码并做好发布准备。终于,他们推出了现在众所周知的 Zephyr 开源项目,该项目还用作 Wind River“Rocket”RTOS 产品的核心。目前,英特尔主导相关的开发工作。
Nashif 表示,Zephyr 基于已使用十多年、久经实际应用考验的 Wind River 代码库而构建。扩展原始代码包括几个关键步骤。首先,通过重构提升模块化水平。在编译时,开发人员可按需采用或删除任何子系统以适应硬件。硬件包括“最底端子 Linux 设备”、“成本最低的芯片”等。他演示的幻灯片列出了运行 Zephyr 的初始硬件产品,包括低端的 Arduino 101 和英特尔 Quark D2000,以及高端的第二代英特尔 Galileo。但他补充到,Galileo 只是一种开发平台,完全能够运行 Linux,因此他认为没人会将它用于 Zephyr 的实际部署。
其次,Zephyr 团队加入了网络功能。他们从头编写了低功耗蓝牙 (BLE) 实施方案,并移植了开源 Contiki RTOS 中的 IP 堆栈。支持 IPv6,包括低功耗 6LoWPAN。该项目仍在考虑其他网络堆栈,近场通信 (NFC) 可能被采纳;ZigBee 根据需要,WiFi 也可能被采用。
其代码库的第三个新增特性是基于 TinyCrypt 的加密库。在单独举行的会议中,安全开发人员 Constanza Heath 介绍了 TinyCrypt 的一套随机数生成 (RNG)、密码和密钥交换基原以及 Zephyr 的通用安全方法。一个 Zephyr 映像只运行编译时静态连接的单个应用。单个地址空间和无支持的可加载内核模块大幅缩减了攻击面。她概述道,当单个静态连接的进程在运行时,恶意代码只可能在编译时运行在 Zephyr 硬件上。因此,该项目省略了一些其他安全特性,而较大的 *** 作系统会使用这些特性防范安全漏洞,不过她表示其团队仍在研究加入一些保护功能,如地址空间随机化。对于多数安全特性,亟需解决的问题是平衡安全性与容量。
特性
在容量方面,Zephyr 可在 RAM 为 8KB 时流畅运行,甚至可在 RAM 为最小的 2KB 时运行,不过 Nashif 表示在 2KB 时它仅支持“Hello World”演示,无法提供其他功能。Zephyr 内核可采用两种模式的其中之一进行配置。最小的是“超微内核”模式,该模式可提供基础的多线程执行环境、线程间同步服务(包括信号量和互斥量)、消息队列和中断服务。他表示,超微内核模式有望用于最小和最廉价的设备,如环境传感器,这些设备除收集和发送数据外只需实施少量的处理工作。
微核模式相比超微核模式较为先进,可提供超微核模式特性的超集,包括更复杂的消息队列、更多的内存分配服务、抢占式任务和轮询时间切片。该模式有望用于稍大的物联网节点之上,如可能需要先对从传感器收集的数据进行处理和格式化、然后将其转发至远程服务器的传感器中枢。Nashif 指出,超微核和微核模式都提供网络功能,不过为全 IP 网络堆栈配置超微核 build 可能致使 Zephyr 难以用于 10KB 以下 RAM 的设备。
此外,Nashif 表示 Zephyr 还可利用一些 Linux 工具。使用 Linux 内核的 kconfig 可进行配置,使用 kbuild 可完成 Zephyr build。但是他表示,相似性止于工具,Zephyr 映像针对单个应用进行配置和构建。“我们只是借鉴 Linux 的优势,但不是完全照搬 Linux。”该项目提供支持五个编译器的软件开发套件 (SDK),该套件包含用于传输图像至准备和调试的工具。除在 Linux、Windows 和 Mac OS X 上运行外,该 SDK 还可在 Docker 容器中运行。
Nashif 表示,英特尔将 Zephyr 视作一项战略投资。该公司发现 RTOS 市场存在巨大鸿沟,尤其在物联网设备方面,因此想抓住机遇构建相应项目来填补这一鸿沟。英特尔希望获得社区支持,并尽可能与其他开源项目展开合作。Nashif 补充道,他明白物联网市场竞争激烈,两款新物联网 *** 作系统自 Zephyr 发布后又相继问世,而且这种竟相发布新品的趋势并不会减缓。
任何想要称霸物联网市场的厂商都需要“过关斩将”,打败诸多竞争对手,无论是在专有还是开源领域。Zephyr 尚处于发展初期,不过其代码库在 Wind River 中已使用了较长时间。Zephyr 的发展前景令人期待。
>我们都知道物联网 (IoT) 正在快速发展。走过任何一家超市、家居装修中心或电子产品商店你都会看到各种各样的互联智能设备。
物联网设备的数量在 2017 年增长了 31%,达到了 84 亿。2020 年,全球物联网设备连接数量高达 126 亿。预计到 2025 年将有 246 亿设备!

物联网设备的正常运行依赖于快速、可靠和持续的通信,因此连接设备使用的网络至关重要。网络出现带宽有限、延迟过大、网络硬件不可靠等问题,会对设备性能产生重大影响。
IoT 开发人员需要了解这些问题对 IoT 产品性能产生的影响,以确保产品可以正确响应,不丢失数据。

例如:显示 3G 连接的 iPhone 的流量速率可能会低至 384 Kbps 或快至 144 Mbps 。流量的速率取决于环境、服务供应商和可用带宽。流量速率不稳定可能会导致用户与其物联网设备的连接性不佳。
其他网络条件(例如延迟和数据包丢失)也会显着影响应用程序的性能。

所以网络约束是影响物联网连接的主要风险因素。开发人员需要衡量应用程序在各种网络条件下的影响,以确保程序能正确运行。

与在真实的网络环境中测试物联网设备相比,在实验室环境的局域网中测试是不够的。因为在实际情况中,像用户数量、用户与平台的传感器连接方式、最终用户与互联网连接的可靠性这些因素都会影响物联网平台的稳定性。
开发人员需要了解 IoT 平台在不同的网络条件下做出的处理。如果设备在使用期间出现连接问题时用户与移动应用程序的交互是否会断开、传感器是否会将敏感数据发送到物联网平台。

不同类型的网络性能都会有所不同,使用移动网络、广域网、卫星、Wi-Fi 和其他网络连接物联网平台会给用户带来不同的体验。
但是可以构建具有所有这些不同条件的网络的工具很少而且大部分都很昂贵。因此许多企业使用网络损伤仪来模拟不同的网络条件。

在 IoT 平台和设备部署到现实世界网络之前使用网络损伤仪进行测试,是最准确、可扩展最强且成本最低的方式。
使用网络损伤仪测试使物联网开发人员能够了解到物联网设备在多种网络条件以及混合网络环境下的行为。
在不同的网络条件下测试物联网设备,可以使测试人员的使用体验接近最终用户体验,从而可以快速验证物联网部署。

1.嵌入式Linux

嵌入式Linux(EmbeddedLinux)是标准Linux经过小型化裁剪处理之后的专用Linux *** 作系统,能够固化于容量只有几KB或者几MB的存储器芯片或者单片机中,适合于特定嵌入式应用场合。目前已经开发成功的嵌入式系统中,大约一半的系统使用嵌入式Linux。

这与它的父辈—Linux自身的优良特性是分不开的。

首先,Linux系统具有鲜明的层次结构且内核完全开放。Linux由很多体积小且性能高的微内核和系统组成。在内核代码完全开放的前提下,不同领域和不同层次的用户可以根据自己的应用需要很容易地对内核进行裁剪,在低成本的前提下,设计和开发出真正满足自己需要的嵌入式系统。

其次,Linux具有强大的网络支持功能。Linux诞生于因特网并具有UNIX的特性,这就保证了它支持所有标准因特网协议,并且可以利用Linux的网络协议栈开发出嵌入式TCP/IP网络协议栈。

再次,Linux具备一套完整的工具链,容易自行建立嵌入式系统的开发环境和交叉运行环境,并且可以跨越嵌入式系统开发中仿真工具的障碍。一般,嵌入式 *** 作系统的程序调试和跟踪都是使用仿真器来实现的,而使用Linux系统做原型的时候就可以绕过这个障碍,直接使用内核调试器来进行 *** 作系统的内核调试。

最后,Linux具有广泛的硬件支持特性。无论是RISC还是CISC,无论是32位还是64位处理器,Linux都能在其上运行。Linux最通常使用的微处理器是IntelX86芯片家族,但它也能运行于嵌入式处理器上,这意味着嵌入式Linux将具有更广泛的应用前景。

嵌入式Linux同Linux一样,具有低成本、多种硬件平台支持、优异的性能和良好的网络支持等优点。另外,为了更好地适合嵌入式领域的开发,嵌入式Linux还在Linux基础上做了部分改进,如将其内核结构由整体式结构改为微内核结构,并且还提高了系统的实时性。

嵌入式Linux同Linux一样,也有众多的版本,不同的版本针对不同的需要在内核等方面加入了特定的机制。

目前,朱有鹏老师提供了有关Linux最全面深入系统性的教学课程,可以搜索朱有鹏物联网大讲堂,官网观看免费视频。

2.VxWorks

VxWorks *** 作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时 *** 作系统(RTOS),VxWorks具有以下优点。

·实时性好。其系统本身的开销很小,进程调度、进程间通信、中断处理等系统公用程序精练而有效,使得它们产生的延迟很短。另外VxWorks提供的多任务机制中对任务的控制采用优先级抢占和轮转调度机制,充分保证了可靠的实时性。

·可靠性高,从而保证了用户工作环境的稳定。

·集成开发环境完备、强大,方便了用户的使用。

但是,由于VxWorks源码不公开,它部分功能的更新(如网络功能模块)滞后。VxWorks的开发和使用都需要交高额的专利费,这就大大增加了用户开发的成本。

3.QNX

QNX由加拿大QNX软件系统有限公司开发,广泛应用于自动化、控制、机器人科学、电信、数据通信、航空航天、计算机网络系统、医疗仪器设备、交通运输、安全防卫系统、POS机、零售机等任务关键型应用领域。

QNX独特的微内核和消息传递结构使其运行和开发时非常方便。QNX具有非常好的伸缩性,用户可以把应用程序代码和QNX内核直接编译在一起,使之为简单的嵌入式应用生成单一的映像。

4.WindowsCE(推荐课程:WindowsCE系统定制与驱动开发培训班)

WindowsCE是微软公司开发的一个开放的、可升级的32位嵌入式 *** 作系统,是基于掌上型电脑类的电子设备 *** 作系统。WindowsCE的图形用户界面相当出色,WindowsCE具有模块化、结构化、基于Win32应用程序接口以及与处理器无关等特点。

WindowsCE继承了传统的Windows图形界面,用户在WindowsCE平台上可以使用Windows95/98上的编程工具(如VisualBasic、VisualC等),使用同样的函数,使用同样的界面风格,Windows上的绝大多数应用软件只需简单修改和移植就可以在WindowsCE平台上继续使用。但是WindowsCE开发平台较为昂贵,在一定程度上限制了其发展。

5.PalmOS

PalmOS在PDA领域有着很大的用户群,一度占领PDA *** 作系统90%以上市场份额。PlamOS最明显的特点是精简,它的内核只有几千个字节,同时用户也可以方便地开发、定制,具有较强的可 *** 作性。

6.C/OS

源代码公开,代码结构清晰、明了,注释详尽,组织有条理,可移植性好,可裁剪,系统短小精悍,是研究和学习实时 *** 作系统的首选,但在工程应用领域使用较少。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/dianzi/13073870.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-29
下一篇2025-08-29

发表评论

登录后才能评论

评论列表(0条)

    保存