Zephyr (sistema operatiu)
![]() ![]() | |
Versió inicial | 17 febrer 2016 ![]() |
---|---|
Versió estable | |
Llicència | Llicència Apache, versió 2.0 ![]() |
Característiques tècniques | |
Plataforma | x86, ARM, ARC (en) ![]() ![]() |
Escrit en | C ![]() |
Equip | |
Desenvolupador(s) | Fundació Linux i Wind River Systems (en) ![]() ![]() |
Més informació | |
Lloc web | zephyrproject.org (anglès) ![]() |
Seguiment d'errors | Seguiment d'errors ![]() |
| |
Zèfir (/ˈzɛf ər/ ) és un petit sistema operatiu en temps real (RTOS) per a dispositius connectats, amb recursos restringits i integrats (amb èmfasi en microcontroladors) que admet múltiples arquitectures i es publica sota la llicència Apache 2.0. Zephyr inclou un nucli i tots els components i biblioteques, controladors de dispositius, piles de protocols, sistemes de fitxers i actualitzacions de firmware necessaris per desenvolupar programari d'aplicació complet.[1]
Rep el nom de Zèfir, l'antic déu grec del vent de l'oest.[2]
Història
[modifica]Zephyr es va originar a partir de Virtuoso RTOS per a processadors de senyal digital (DSP).[3] El 2001, Wind River Systems va adquirir l'empresa de programari belga Eonic Systems, la desenvolupadora de Virtuoso. El novembre de 2015, Wind River Systems va canviar el nom del sistema operatiu a Rocket, convertint-lo en codi obert i lliure de drets d'autor. En comparació amb l'altre RTOS de Wind River, VxWorks, Rocket tenia unes necessitats de memòria molt més petites, especialment adequades per a sensors i dispositius integrats d'una sola funció. Rocket podia encaixar en tan sols 4 KB de memòria, mentre que VxWorks necessitava 200 KB o més.
El febrer de 2016, Rocket es va convertir en un projecte col·laboratiu allotjat de la Linux Foundation amb el nom de Zephyr.[4][5] Wind River Systems va contribuir amb el nucli de Rocket a Zephyr, però va continuar proporcionant Rocket als seus clients, cobrant-los pels serveis al núvol.[6] Com a resultat, Rocket es va convertir en "essencialment la versió comercial de Zephyr".[6]
Des de llavors, entre els primers membres i partidaris de Zephyr hi ha Intel, NXP Semiconductors, Synopsys, Linaro, Texas Instruments, Nordic Semiconductor, Oticon i Bose.[7]
A Gener 2025[update], Zephyr had the largest number of contributors and commits compared to other RTOSes (including Mbed, RT-Thread, NuttX, and RIOT).[8]
Característiques
[modifica]Zephyr pretén proporcionar tots els components necessaris per desenvolupar aplicacions amb recursos limitats i integrades o basades en microcontroladors. Això inclou, entre d'altres:[9]
- Un petit nucli
- Un sistema de configuració i compilació flexible per a la definició en temps de compilació dels recursos i mòduls necessaris
- Un conjunt de piles de protocols (IPv4 i IPv6, Protocol d'aplicació restringida (CoAP), LwM2M, MQTT, 802.15.4, Thread, Bluetooth Low Energy, CAN)
- Una interfície de sistema de fitxers virtual amb diversos sistemes de fitxers flash per a emmagatzematge no volàtil (FatFs, LittleFS, NVS)
- Mecanismes de gestió i actualització del firmware del dispositiu
Configuració i compilació del sistema
[modifica]Zephyr utilitza Kconfig i devicetree com a sistemes de configuració, heretats del nucli de Linux però implementats en el llenguatge de programació Python per a la portabilitat a sistemes operatius que no són Unix.[10] El sistema de compilació RTOS es basa en CMake, que permet compilar aplicacions Zephyr a Linux, macOS i Microsoft Windows.[11]
Eina d'utilitat "West"
[modifica]Zephyr té una eina d'ús general anomenada "west" per gestionar repositoris, descarregar programes al maquinari, etc.
Nucli
[modifica]Els primers nuclis de Zephyr utilitzaven un disseny de nanonucli més micronucli.[12][13][14] El desembre de 2016, amb Zephyr 1.6, això va canviar a un nucli monolític.[13][14]
El nucli ofereix diverses característiques que el distingeixen d'altres sistemes operatius petits:[15]
- Espai d'adreces úniques
- Algoritmes de planificació múltiples
- Altament configurable i modular per a més flexibilitat, amb recursos definits en temps de compilació
- Protecció basada en la unitat de protecció de memòria (MPU)
- Compatibilitat amb multiprocessament asimètric (AMP, basat en OpenAMP) i multiprocessament simètric (SMP)
Seguretat
[modifica]Un grup es dedica a mantenir i millorar la seguretat. A més, ser propietat d'una comunitat i rebre el suport d'aquesta significa que els desenvolupadors de codi obert de tot el món estan revisant el codi, cosa que augmenta significativament la seguretat.
Referències
[modifica]- ↑ «Zephyr Project documentation: Introduction» (en anglès).
- ↑ «West (Zephyr's meta-tool) — Zephyr Project Documentation» (en anglès). docs.zephyrproject.org.
- ↑ Clarysse, Ivo. «Zephyr – An Operating System for IoT» (en anglès). Zephyr Project, 22-11-2019.
- ↑ Clarysse, Ivo. «Zephyr – An Operating System for IoT» (en anglès). Zephyr Project, 22-11-2019.
- ↑ «The Linux Foundation Announces Project to Build Real-Time Operating System for Internet of Things Devices» (en anglès). Zephyr Project. Linux Foundation, 17-02-2016. Arxivat de l'original el 2016-03-10.
- ↑ 6,0 6,1 Patel, Niheer. «Wind River Welcomes Linux Foundation's Zephyr Project» (en anglès). Wind River Systems, 17-02-2016. Arxivat de l'original el 21 February 2016. [Consulta: 18 febrer 2016].
- ↑ «Project Members» (en anglès). Zephyr Project.
- ↑ «Zephyr GitHub page» (en anglès). GitHub, 30-01-2025.
- ↑ «Zephyr Project documentation: Introduction» (en anglès).
- ↑ «scripts/ folder» (en anglès). GitHub, 12-05-2020.
- ↑ «Application Development: Zephyr Project Documentation» (en anglès). Zephyr Project.
- ↑ Wasserman, Shawn. «How Linux's IoT Zephyr Operating System Works». Engineering.com, 22-02-2016.
- ↑ 13,0 13,1 Helm, Maureen. «Announcing Zephyr OS v1.6.0» (en anglès). Zephyr Project, 15-12-2016.
- ↑ 14,0 14,1 Wong, William G. «Zephyr: A Wearable Operating System» (en anglès). Electronic Design, 06-07-2017.
- ↑ «Zephyr Project documentation: Introduction» (en anglès).