ОС с открытым исходным кодом для Интернета вещей

В предыдущих статьях этой серии IoT были рассмотрены фреймворки, оборудование для разработки, вопросы конфиденциальности и безопасности и интеллектуальные хабы.
Но все начинается с ОС.

Перспектива открытого источника в Интернете вещей

Часть 5: Операционные системы с открытым исходным кодом для IoT

За последнее десятилетие большинство новых проектов ОС с открытым исходным кодом перешли с мобильного рынка на Интернет вещей.
В этой пятой статье нашей серии IoT мы рассмотрим множество новых операционных систем с открытым исходным кодом, предназначенных для IoT.
В наших предыдущих статьях были рассмотрены платформы IoT с открытым исходным кодом , а также оборудование для разработки Linux и открытого исходного кода для устройств IoT и потребительских умных домов .
Но все начинается с ОС.

В дополнение к изучению новых IoT-ориентированных встроенных дистрибутивов на основе Linux, я включил несколько более старых облегченных дистрибутивов, таких как OpenWrt, которые получили новое распространение в этом сегменте.
Несмотря на то, что дистрибутивы Linux предназначены в основном для шлюзов и концентраторов, наблюдается аналогичный рост в не Linux, ОС с открытым исходным кодом для IoT, которые могут работать на микроконтроллерных устройствах (MCU) и, как правило, предназначены для периферийных устройств IoT.

Имейте в виду, что почти все операционные системы в наши дни требуют подключения к IoT, поэтому этот список несколько произвольный.
Соперники здесь удовлетворяют большинству следующих свойств: низкий объем занимаемой памяти, высокая энергоэффективность, модульный и конфигурируемый коммуникационный стек и мощная поддержка определенных беспроводных и сенсорных технологий.
В некоторых проектах особое внимание уделяется безопасности IoT, а многие не-Linux-операционные системы фокусируются на детерминизме в реальном времени, что иногда является обязательным требованием в промышленном IoT.

Я обычно избегал дистрибутивов Linux, которые относятся к категории «облегченных», но по-прежнему в большей степени нацелены на использование на настольных ПК или на портативные USB-накопители, а не на устройства без наушников.
Тем не менее, легкие дистрибутивы Linux, такие как LXLE или Linux Lite, могут быть хорошим выбором для IoT.

Выбор был более сложным с не-Linux платформами с открытым исходным кодом.
В конце концов, большинство легких ОСРВ могут быть использованы для IoT.
Я сосредоточился на основных платформах, или тех, которые, казалось, предлагали наибольшее обещание для IoT.
Другие потенциальные кандидаты можно найти на этом сайте с открытым исходным кодом RTOS .

Здесь не включена Windows 10 для IoT Core , которая бесплатна для производителей и поддерживает AllJoyn и IoTctivity, но не является полностью открытым исходным кодом.
Есть также ряд коммерческих ОСРВ, которые являются основными игроками в IoT, такие как µC / OS Micrium.

Девять дистрибутивов IoT с открытым исходным кодом на основе Linux

  • Brillo. За год, прошедший после того, как Google выпустил Brillo , легкий дистрибутив на базе Android получил широкое распространение среди хакерских плат, таких как Intel Edison и Dragonboard 410c, и даже некоторых компьютеров на модулях.
    Будущее Brillo связано с протоколом связи Weave от Google, который ему необходим.
    Weave предоставляет функции обнаружения, инициализации и аутентификации в Brillo, которые могут работать всего лишь с 32 МБ ОЗУ и 128 МБ флеш-памяти.
  • Huawei LiteOS - LiteOS от Huawei, который не следует путать с вариантом Unix с открытым исходным кодом , как говорят, основан на Linux, но это действительно должна быть очень бережная реализация.
    Объявленный более года назад, LiteOS может быть развернут в виде ядра размером до 10 КБ.
    LiteOS варьируется от устройств на базе MCU до Android-совместимых процессоров приложений.
    Настраиваемая ОС рекламируется за ее нулевую конфигурацию, автообнаружение, авто-сеть, быструю загрузку и работу в режиме реального времени, и она предлагает обширную поддержку беспроводной связи, включая LTE и ячеистую сеть.
    LiteOS доступен с Agile IoT-решением Huawei и управляет узкополосным IoT-решением (NB-IoT) .
  • OpenWrt / LEDE / LininoOS / DD-Wrt - почтенный, ориентированный на работу в сети дистрибутив Linux со встроенным ПО OpenWrt пережил возрождение из-за увлечения IoT.
    Облегченный OpenWrt часто встречается на маршрутизаторах и платах WiFi на основе MIPS.
    За более ранними побочными продуктами, такими как DD-Wrt и Arduino-ориентированная LininoOS , недавно последовала прямая вилка.
    Проект Linux Embedded Development Environment (LEDE) обещает более прозрачное управление и предсказуемые циклы выпуска.
  • Ostro Linux - этот дистрибутив на основе Yocto Project попал в центр внимания в августе, когда Intel выбрала его для своего модуля Intel Joule , где он работает на новейшем четырехъядерном процессоре Atom T5700 SoC.
    Ostro Linux совместим с IoTctivity, поддерживает многочисленные беспроводные технологии и предлагает каркас сенсоров.
    Он уделяет основное внимание безопасности IoT, обеспечивая защиту на уровне ОС, устройств, приложений и данных, в том числе криптографию и MAC.
    Дистрибутив доступен в безголовой и мультимедийной версиях.
  • Raspbian - Есть несколько других дистрибутивов для Raspberry Pi, которые более конкретно нацелены на IoT, но быстро созревающий Raspbian по-прежнему лучший.
    Поскольку это один из самых популярных дистрибутивов для проектов DIY на одной из наиболее широко используемых платформ IoT, разработчики могут обратиться за помощью к многочисленным проектам и учебным пособиям.
    Теперь, когда Raspbian поддерживает Node-RED, инструмент визуального проектирования для Node-JS, мы видим меньше оснований для выбора Thingbox, ориентированного на IpT и IoT.
  • Snappy Ubuntu Core - также называемая Ubuntu Core с Snaps, эта встроенная версия Ubuntu Core использует механизм пакетов Snap, который Canonical выделяет как универсальный формат пакетов Linux , позволяя одному бинарному пакету работать на «любом настольном компьютере Linux, сервере, Облако или устройство ». Snaps позволяют Snappy Ubuntu Core предлагать откаты транзакций, безопасные обновления, поддержку облака и платформу магазина приложений.
    Snappy требуется только 600 МГц процессор и 128 МБ ОЗУ, но также требуется 4 ГБ флэш-памяти.
    Он работает на Pi и других хакерских платах и ​​появился на таких устройствах, как дроны Erle-Copter, шлюзы Dell Edge, Nextcloud Box и LimeSDR .
  • Tizen - в первую очередь поддерживаемая Samsung, встроенный стек Linux Foundation, размещенный на Linux Foundation, практически не зарегистрирован на рынке мобильных устройств.
    Тем не менее, он широко используется в телевизорах и смарт-часах Samsung, включая новый Gear S3 , и время от времени внедряется в его камеры и бытовые приборы.
    Tizen может даже бежать на Raspberry Pi .
    Samsung начала интегрировать Tizen со своей системой умного дома SmartThings, позволяющей управлять SmartThings с телевизоров Samsung.
    Также можно ожидать большей интеграции с модулями Samsung Artik и Artik Cloud .
    Artik поставляется с Fedora, но Tizen 3.0 недавно был портирован вместе с Ubuntu Core.
  • uClinux - почтенный, урезанный uClinux - единственная форма Linux, которая может работать на микроконтроллерах и только тогда на определенных моделях Cortex-M3, M4 и -M7.
    Для uClinux требуются микроконтроллеры со встроенными контроллерами памяти, которые могут использовать внешний чип DRAM для удовлетворения своих требований к оперативной памяти.
    Теперь uClinux, объединенный с основным ядром Linux, получает широкую поддержку беспроводных сетей в Linux.
    Однако новые ориентированные на MCU операционные системы, такие как Mbed, быстро сокращают разрыв в беспроводных сетях и их проще настраивать.
    EmCraft - один из крупнейших ускорителей uClinux на микроконтроллерах, предлагающий множество модулей на базе Cortex-M с BSP uClinux.
  • Yocto Project - Yocto Project от Linux Foundation - не дистрибутив Linux, а совместный проект с открытым исходным кодом, предоставляющий разработчикам шаблоны, инструменты и методы для создания пользовательских встроенных стеков.
    Поскольку вы можете настраивать стеки с минимальными издержками, это часто используется для IoT.
    Yocto Project формирует основу для большинства коммерческих встроенных дистрибутивов Linux и является частью таких проектов, как Ostro Linux и Qt for Device Creation.
    Qt готовит технологию Qt Lite для Qt 5.8, которая оптимизирует создание устройств для меньших целей IoT.

Девять IoT-операционных систем с открытым исходным кодом, отличных от Linux

  • Apache Mynewt - беспроводная версия Apache Mynewt с открытым исходным кодом для 32-разрядных микроконтроллеров была разработана Runtime и размещена в Apache Software Foundation.
    Модульный Apache Mynewt рекламируется за его беспроводную поддержку, точную конфигурируемость одновременных соединений, функции отладки и детальное управление питанием.
    В мае Runtime и Arduino Srl объявили, что Apache Mynewt будет доступен для SBC Primo и STAR Otto от Arduino Srl.
    ОС также поддерживает платы Arduino LLC, такие как Arduino Zero.
    (Недавно Arduino Srl и Arduino LLC урегулировали свои правовые разногласия, объявив о планах воссоединения в рамках холдинга Arduino и фонда Arduino.)
  • ARM Mbed - ориентированная на IoT операционная система ARM предназначена для крошечных конечных точек IoT с питанием от батареи, работающих на микроконтроллерах Cortex-M с всего лишь 8 КБ ОЗУ, и появилась на BBC Micro: bit SBC.
    Несмотря на то, что изначально он был частично проприетарным, однопоточным и не имел детерминированных функций, теперь он открыт с использованием Apache 2.0 и обеспечивает многопоточность и поддержку RTOS.
    В отличие от многих облегченных ОСРВ, Mbed был разработан с учетом беспроводных коммуникаций и недавно добавил поддержку потоков.
    ОС поддерживает облачные сервисы, которые могут безопасно извлекать данные через Mbed Device Connector.
    Ранее в этом году проект запустил Носимый эталонный дизайн.
  • Contiki - С учетом требований к 10 КБ ОЗУ и флэш-памяти 30 КБ Contiki с открытым исходным кодом не может быть столь же крошечной, как Tiny OS или RIOT OS, и при этом не предлагает детерминизм в реальном времени, как RIOT и некоторые другие.
    Тем не менее, широко используемый Contiki обеспечивает широкую поддержку беспроводных сетей со стеком IPv6, предоставленным Cisco.
    ОС предоставляет полный список средств разработки, включая динамический модуль загрузки Cooja Network Simulator для отладки беспроводных сетей.
    Contiki рекламируется для эффективного распределения памяти.
  • FreeRTOS - FreeRTOS приближается к тому, чтобы конкурировать с Linux среди встраиваемых платформ разработки, и он особенно популярен для разработки конечных устройств IoT.
    В FreeRTOS отсутствуют функции Linux, такие как драйверы устройств, учетные записи пользователей, а также расширенные возможности управления сетями и памятью.
    Тем не менее, он занимает гораздо меньше места, чем Linux, не говоря уже об основных RTOS, таких как VxWorks, и предлагает лицензию GPL с открытым исходным кодом.
    FreeRTOS может работать с объемом памяти менее половины килобайта и 5–10 КБ ПЗУ, хотя более типично при использовании со стеком TCP / IP это больше похоже на 24 КБ ОЗУ и 60 КБ флэш-памяти.
  • Фуксия - последняя ОС Google с открытым исходным кодом была частично раскрыта в августе, оставляя больше вопросов, чем ответов.
    Тот факт, что Fuchsia не имеет никакого отношения к Linux, но основан на дистрибутиве LK, разработанном для конкуренции с MCU-ориентированными ОС, такими как FreeRTOS, побудило многих предположить, что это ОС IoT.
    Тем не менее, Fuchsia также поддерживает мобильные и портативные компьютеры, поэтому у Google могут быть гораздо более широкие амбиции для этого проекта на ранней стадии.
  • NuttX - Неограничивающий лицензированный BSD NuttX известен прежде всего тем, что он является наиболее распространенной ОСРВ для дронов с открытым исходным кодом, работающих на платформах APM / ArduPilot и PX4 UAV, которые в совокупности являются частью платформы Dronecode.
    NuttX широко используется и в других встроенных системах с ограниченными ресурсами.
    Хотя она поддерживает платформы x86 и Cortex-A5 и -A8, эта ОС на основе POSIX и ANSI в первую очередь предназначена для микроконтроллеров Cortex-M.
    NuttX полностью выгружается, с фиксированным приоритетом, циклическим перебором и спорадическим планированием.
    Операционная система объявлена ​​«крошечным Linux-аналогом с значительно сокращенным набором функций».
  • ОС RIOT - 8-летняя ОС RIOT известна своим эффективным энергопотреблением и широкой поддержкой беспроводных сетей.
    RIOT предлагает требования к аппаратному обеспечению 1,5 КБ ОЗУ и 5 КБ флэш-памяти, которые почти такие же низкие, как у Tiny OS.
    Тем не менее, он также предлагает такие функции, как многопоточность, динамическое управление памятью, аппаратное абстрагирование, частичное соответствие POSIX и поддержка C ++, которые более типичны для Linux, чем облегченные RTOS.
    Другие функции включают низкую задержку прерывания около 40 тактов и планирование на основе приоритетов.
    Вы можете разрабатывать под Linux или OS X и развертывать на встроенных устройствах, используя собственный порт.
  • TinyOS. Эта зрелая ОС с открытым исходным кодом, имеющая лицензию BSD, настолько мала, насколько это возможно, и поддерживает низкое энергопотребление для целей MCU «с несколькими килобайтами оперативной памяти и несколькими десятками килобайтного пространства кода». Написано на диалекте Си называемый nesC, управляемый событиями TinyOS используется исследователями, исследующими беспроводные сети с низким энергопотреблением, в том числе многосетевые сети.
    По собственному признанию проекта, «приложения, требующие большого объема вычислений, могут быть трудны для написания». Проект работает над поддержкой Cortex-M3, но на данный момент он все еще предназначен для более дешевых микроконтроллеров и радиочипов.
  • Zephyr - легкая, защищенная от безопасности ОС Zephyr RTOS от Linux Foundation работает всего с 2-8 КБ ОЗУ.
    Zephyr работает на системах x86, ARM и ARC, но в основном ориентируется на устройства на базе MCU с радиоустройствами Bluetooth / BLE и 802.15.4, например 6LoWPAN.
    Zephyr основан на Rocket OS от Wind River, которая основана на Viper, урезанной версии VxWorks.
    Первоначальные цели включают Arduino Due и Intel Arduino 101 , среди других.
    Зефир недавно появился на 96Boards IoT Edition BLE Carbon SBC от SeeedStudio, который поддерживается новой группой Linaro LITE .
Прочитайте все статьи в этой серии

Эта статья защищена авторским правом © 2016 Linux.com и была первоначально опубликована здесь .
Он был воспроизведен этим сайтом с разрешения его владельца.
Пожалуйста, посетите Linux.com для получения последних новостей и статей о Linux и open source.