Zephyr 简介

Zephyr 是由 Linux 基金会于 2016 年 2 月发布的一个用于物联网的开源操作系统。Linux 基金会希望借助于 Zephyr 来统一联网物联网领域的操作系统。

Zephyr 的优势

市面上已有不少的 RTOS,Linux 基金为啥会还会推出 Zephyr?先看看 Zephyr 具有哪些。

轻量级

由于 IoT 领域需要部署大量的联网设备节点,因此每个设备的成本必须得到控制。控制成本第一个有效方法是降低昂贵组件的标准,例如使用 RAM 更低、ROM 更低的芯片。Zephyr 就是专为这样的芯片而生的,它可运行在只有 8 Kb 内存的 MCU 之上,甚至能在只有 2 Kb 内存的 MCU 上演示 Hello World。

模块化

降低成本的另一个方式是按需裁剪硬件。物联网设备一般都是专用设备,因此在面对某个特定市场时只需要特定的硬件。 Zephyr 借鉴了 Linux 的 Kconfig 配置系统,您可以根据硬件设备对它进行直观的配置、裁剪。

多架构

Zephyr 没有任何门户之见,在被设计时就支持多架构,包括 x86、arm、nios2、riscv32、xtensa 和 arc。到目前为止,Zephyr 已支持非常多的开发板:

zephyr@ubuntu:~/share/zephyr$ tree boards/ -L 2 -d
boards/
├── arc
│   ├── arduino_101_sss
│   ├── em_starterkit
│   ├── panther_ss
│   └── quark_se_c1000_ss_devboard
├── arm
│   ├── 96b_carbon
│   ├── 96b_nitrogen
│   ├── arduino_101_ble
│   ├── arduino_due
│   ├── bbc_microbit
│   ├── cc3200_launchxl
│   ├── curie_ble
│   ├── frdm_k64f
│   ├── frdm_kw41z
│   ├── hexiwear_k64
│   ├── mps2_an385
│   ├── nrf51_blenano
│   ├── nrf51_pca10028
│   ├── nrf52840_pca10056
│   ├── nrf52_blenano2
│   ├── nrf52_pca10040
│   ├── nucleo_f103rb
│   ├── nucleo_f334r8
│   ├── nucleo_f401re
│   ├── nucleo_f411re
│   ├── nucleo_l476rg
│   ├── olimexino_stm32
│   ├── qemu_cortex_m3
│   ├── quark_se_c1000_ble
│   ├── sam_e70_xplained
│   ├── stm3210c_eval
│   ├── stm32373c_eval
│   ├── stm32_mini_a15
│   └── v2m_beetle
├── nios2
│   ├── altera_max10
│   └── qemu_nios2
├── riscv32
│   ├── qemu_riscv32
│   └── zedboard_pulpino
├── x86
│   ├── arduino_101
│   ├── galileo
│   ├── minnowboard
│   ├── panther
│   ├── qemu_x86
│   ├── quark_d2000_crb
│   ├── quark_se_c1000_devboard
│   └── tinytile
└── xtensa
    └── xt-sim

可移植性强

正如上面所看到的那样,Zephyr 现在已经支持非常多的开发板,且能比较容易地移植到其它开发板上。为啥移植性这么强?因为 Zephyr 在被设计时就考虑了可移植性,用户只需要添加少量与开发板相关的代码就能跑起来了。

完善的物联网协议

物联网一直在发展,存在的协议也多种多样,而且将来肯定还会有新的协议诞生,我们很难说哪个协议最终会脱颖而出,因为它们各自有自己的应用领域。因此,Zephyr 会尽可能多地包括这些协议。来看看 Zephyr 支持(以及今后会支持)哪些物联网协议:

Zephyr 包括这么多协议会不会太臃肿?这不是与它所说的轻量级自相矛盾吗?答案是不会!我们前面已经说了,Zephyr 是高度可配置的,应用开发者可以根据自己项目的需要,只把相关的功能编译到镜像文件中,从而避免臃肿。

丰富的设备驱动

Zephyr 同样还支持丰富的设备驱动程序:

zephyr@ubuntu:~/share/zephyr$ tree drivers/ -L 1 -d
drivers/
├── adc
├── aio
├── bluetooth
├── clock_control
├── console
├── counter
├── crypto
├── dma
├── ethernet
├── flash
├── gpio
├── grove
├── i2c
├── ieee802154
├── interrupt_controller
├── ipm
├── pci
├── pinmux
├── pwm
├── random
├── rtc
├── sensor
├── serial
├── shared_irq
├── slip
├── spi
├── timer
├── usb
└── watchdog

活跃的社区支持

Zephyr 的社区非常活跃,从发布到现在短短一年时间内,Zephyr 的代码提交数量已经超过了一万三千次,这 绝对是一个惊人的数字,远远超越了其它类似的 RTOS,例如 mbed os、lite os、riot、contiki 等。

Zephyr 的劣势

同样地,Zephyr 也有它的劣势,即学习门槛高。

首先,尽管 Zephyr 支持 Windows、Linux 和 Mac 三大操作系统,但是对 Windows 的支持是非常弱的,如果要在 Windows 上学习、开发 Zephyr,必然会走进很多坑,而 Mac 只有少数土豪拥有,所以 Linux 是最佳的开发环境。但是,很多嵌入式开发人员都是在 Windows 上进行开发的,很少甚至没有使用 Linux,因此对于这一类同胞来说,Linux 就是它们的第一道坎,只有翻过了这道坎,才能继续学习 Zephyr。

其次,尽管有 gdb,但是 Zephyr 没有提供更加直观的图形化开发、调试工具,这也增加了一定的门槛。

当然,这里所说的劣势,在资深开发人员眼中就完全忽略不计了。

对 Zephyr 的期待

下面这个视频是 Zephyr 社区工程师对 Zephyr 的评价。

正如视频中 Linux 基金会的执行总监 Jim Zemlin 所说,在现在的数百个实时操作系统中,他们选择了 Zephyr 进行投资,因为 Zephyr 值得他们信赖,它拥有庞大的生态系统,一个健康的、拥有未来的且自身可持续发展的生态系统。Zephyr 尽管处于发展初期,但可以说它是与 Linux 具有同等意义的代码库,是真正会促进 IoT 繁荣发展、为社会带来巨大价值的强大系统。

这仿佛是我们学习者的一注强心剂,让我们继续有动力学习下去!

[email protected], all right reserved,powered by Gitbook该文件修订时间: 2017-04-27 03:14:49

results matching ""

    No results matching ""