Відкриті операційні системи для інтернету речей

За останнє десятиліття велику кількість проектів ОС з відкритим вихідним кодом перейшли від ринку мобільного зв'язку до «інтернету речей». У цій статті ми розглянемо які з відкритих проектів націлені на IoT (Internet of Things).

Майте на увазі, що майже всі сучасні відкриті ОС в тій чи іншій мірі заявляють про свою придатність для використання в IoT. Але ми розглянемо тільки тих, які справді приділяють увагу таким речам як: низьке споживання пам'яті, висока енергетична ефективність, модульний і настроюється комунікаційний стек і сильна підтримка бездротових і сенсорних технологій. Також деякі проекти підкреслюють свої напрацювання в галузі безпеки IoT і реалтаймовости. Реалтайм може бути дійсно важливий у промисловому IoT, хоча і майже даремний в побутовому.

Ми тут не будемо розглядати так звані lightweight-дистрибутиви, навіть якщо вони дійсно легкі, але не ставлять перед собою завдання IoT, а обмежуються звичайним застосуванням звичайних робочих станціях.

Також ми не будемо дивитися у бік Windows 10 for IoT Core. Цей проект хоч і здатний виконувати властиві для IoT завдання, але до опенсорсу не має ніякого відношення.

Отже, почнемо.

ОС, заснованих на Linux

Brillo — розробка Google, представляє собою полегшений Android і яка за рік свого існування завоювала певну популярність.Так, наприклад, вона використовується на Intel Edison і Dragonboard 410c. Однак ця ОС зав'язана на протокол Weave, який є розробкою Google і ніде більше не використовується. Система здатна працювати на обладнанні з 32MiB RAM і 128MiB flash.

Huawei LiteOS — LiteOS компанії Huawei заснована на Linux, але не Linux там залишилося не так вже й багато. Про систему заговорили десь рік тому і стверджується, що ядро може бути від розмірів 10KB. LiteOS може використовуватися на широкому спектрі обладнання від MCU-пристроїв до Android-сумісні. Основні фішки: тривіальна налаштування, автоматичне виявлення всього і вся, широка підтримка різноманітних мереж (LTE і mesh-мережі в тому числі), швидке завантаження.

OpenWrt/LEDE/Linino/DD-Wrt — всім відомий проект, найбільш затребуваний на маршрутизаторах і іншому MIPS мережевому обладнанні. Враховуючи початкову мережеву заточеність він не міг пройти повз IoT. Ці форки не мають принципових відмінностей один від одного і народилися через NIH-синдрому або організаційних чвар.

Ostro Linux — заснований на Yocto Project (буде розглянуто окремо) і став відомий після того, як Intel вибрала його для Intel Joule, що базується на Atom SoC T5700. Ostro Linux сумісний з IoTivity, підтримує безліч бездротових технологій, а також надає фреймворк для роботи з різноманітними датчиками. Особлива увага приділяється безпеці, включаючи криптографію.

Raspbian — Debian, заточений для роботи на Raspberry Pi. І хоча для «малини» існують і інші дистрибутиви, які цілеспрямовано займаються нюансами IoT, але саме Raspbian став стандартом de facto для DIY-проектів на базі Raspberry Pi.

Snappy Ubuntu Core --версія Ubuntu Core зі Snap-пакетами. Canonical стверджує, що ця система здатна працювати на «any Linux desktop server, cloud or device». В принципі здатна працювати на Raspberry Pi, але взагалі вимагає CPU 600MHz, 128MiB RAM, 4GiB flash. Досить широко використовується. Наприклад: Erle-Copter drones, Dell Edge Gateways, Nextcloud Box, and LimeSDR.

Tizen — розвивається за підтримки Samsung. Спочатку планувався як ОС для смартфонів, але щось пішло не так і зараз можна зустріти лише в телевізорах і т. н. смарт-годинах. Проект вмирати не збирається, але і майбутнє його не ясно. Здатний запуститися на «малині».

uClinux — єдина більш-менш нормальна і поширена версія Linux, здатна працювати на мікроконтролерах. Але поки що лише на деяких: Cortex-M3, M4, і M7. Та й там для роботи потрібне підключення зовнішньої ПАМ'ЯТІ.

Yocto Project — це не дистрибутив, а набір підтримуваних і розвиваються Linux Foundation утиліт, шаблонів і методів для розробки embedded-дистрибутивів. Дуже успішний проект, який є базисом для більшості успішних комерційних дистрибутивів, заточених під IoT.

Деякі відомі не-Linux дистрибутиви

Apache Mynewt — розроблений компанією Runtime для 32-розрядних мікроконтролерів за підтримки Apache Software Foundation. Виділяється гарною підтримкою бездротових з'єднань, широкими можливостями для налагодження і тонким налаштуванням енергоспоживання. Передбачається, що незабаром буде доступний для Arduino.

ARM Mbed — націлений на малопотужні, що працюють від батарейок, плати на базі Cortex-M мікроконтролерів. Для роботи досить 8KiB of RAM. Вперше з'явився на BBC Micro:bit SBC. Спочатку представляв з себе однопотоковий полупроприетарный шматок блоба, але тепер це відкритий під ліцензією Apache 2.0 проект з підтримкою багатопоточності і реалтайм.

Contiki — не може змагатися з Tiny OS або RIOT OS, але для роботи вимагає всього лише 10KiB RAM and 30KiB flash, відмінно працює з бездротовим зв'язком і дружить з IPv6. ОС супроводжується значним набором утиліт для розробки і тестування, в тому числі і Cooja Network Simulator для налагодження бездротових мереж. Основна «фішка» — мале споживання пам'яті.

FreeRTOS — основний конкурент Linux серед вбудованих платформ. І хоча відчуває проблеми з драйверами, обліковими записами користувачів і іншими приємними речами зі світу повноцінних ОС, але зате здатний працювати на 1KiB пам'яті і 5-10 KiBROM. Хоча для повноцінного мережного взаємодії з нормальним TCP/IP потрібно 24KiB RAM and 60KiB flash.

Fuchsia — ще одна розробка від Google. Даних мало, але компанія стверджує, що їх ОС може конкурувати з FreeRTOS. Відра для локшини приносити свої. Граблі для зняття локшини з вух теж не видають. Чекаємо коли замовкнуть маркетологи і заговорять технарі.

NuttX — широко використовується серед розробників квадрокоптеров і інших дронов. Ліцензія BSD. Працює на х86, Cortex-A5, -Cortex A8 і-M MCU. Позиціонується розробниками як «виглядає майже як Linux тільки з урізаними можливостями».

RIOT OS — ось вже 8 років як ця ОС відома своєю енергоефективністю і найширшою підтримкою бездротових мереж. Для роботи досить 1.5 KiB RAM and 5KiB flash, що майже так само, як і у Tiny OS. При цьому система пропонує багатопоточність, управління пам'яттю, часткову POSIX-сумісність та інші речі, які більш типові для Linux, ніж для легких RTOS. До речі, розробляти під цю ОС можна і з-під Linux або OS X.

TinyOS — ця ОС розробляється під BSD ліцензією і вимагає найменшу кількість ресурсів з усіх адекватних систем. Система написана на діалекті Сі, званому nesC. Основне застосування: малопродуктивні мікроконтролери, хоча в даний час проводиться робота над підтримкою Cortex-M3.

Zephyr — розробляється Linux Foundation і споживає 2-8KiB RAM. Працює на x86, ARM, ARC, але основна увага приділяється мікроконтролерів з Bluetooth/BLE і 802.15.4 радіостанціям начебто 6LoWPAN. Zephyr базується на river's Rocket OS, яка в свою чергу базується на Viper, який не що інше як урізана версія VxWorks.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.