Устройства Интернета вещей созданы на основе множества различных операционных систем в зависимости от конкретных приложений конечного использования.
Дистрибутивы Linux, такие как Yocto или Android Things, очень популярны среди устройств умного дома. Windows 10 IoT Core лучше всего подходит для периферийных устройств Интернета вещей на уровне сервера (любое оборудование, управляющее потоком данных на границе между двумя сетями). И, конечно же, для регулярного использования на Raspberry Pi рекомендуется операционная система Raspbian .
Здесь в статье будет обсуждаться TinyOS, которая, по сути, очень полезна для сенсорных сетей с низким энергопотреблением.
Что такое TinyOS?
TinyOS — это операционная система с открытым исходным кодом на базе BSD, которая использует язык программирования nesC для контроля и управления беспроводными сенсорными сетями (WSN). Сенсорные устройства (называемые мотами) в таких сетях характеризуются малой мощностью, ограниченной памятью и очень компактным форм-фактором.
TinyOS была впервые написана Джейсоном Хиллом из Университета Беркли в 2000 году. Это полностью бесплатное программное обеспечение с открытым исходным кодом.

Что касается конечного использования, TinyOS является популярной операционной системой для маломощных датчиков, которые контролируют свет, ускорение, температуру, давление и акустические объекты. TinyOS часто используется в приложениях Индустрии 4.0.
Почему TinyOS полезен для беспроводных сенсорных сетей?
Датчики малой мощности из-за ограничений в радиусе действия требуют эффективного использования ресурсов. TinyOS по существу построен на компонентной архитектуре, позволяющей уменьшить размер кода примерно до 400–500 байт, и на основе событийного дизайна, что устраняет необходимость в командной оболочке.
В компонентной архитектуре используется nesC — язык программирования C, предназначенный для соединения встроенных систем. Каждый фрагмент кода состоит из простых функций, размещенных внутри компонентов, и сложных функций, которые объединяют все компоненты вместе.
В следующем примере фрагмента кода на основе компонентов NesC показана интеграция различных компонентов, таких как таймеры, часы и средства обмена сообщениями.

TinyOS также использует дизайн, основанный на событиях, цель которого — перевести ЦП в состояние покоя, когда нет ожидающих задач. Событием может быть что-то вроде включения сигнализации, когда температура термостата увеличивается или уменьшается выше определенного значения. Как только событие закончится, сенсорные моты могут перейти в «спящее» состояние.
Потребность в таком дизайне, как TinyOS, крайне важна в таких приложениях, как интеллектуальный транспорт и интеллектуальные заводы. Поскольку существуют тысячи датчиков, важно иметь очень небольшой объем памяти, чтобы снизить требования к питанию.
Где используется TinyOS?
На данный момент TinyOS скачали более 35 000 раз. Его основные области применения лежат во всех типах устройств, использующих беспроводные сенсорные сети.
- Мониторинг окружающей среды : поскольку каждая система TinyOS может быть встроена в небольшой датчик, они полезны для мониторинга загрязнения воздуха, лесных пожаров и предотвращения стихийных бедствий.
- Умные транспортные средства . Умные транспортные средства являются автономными и могут рассматриваться как сеть датчиков. Эти датчики обмениваются данными через маломощные беспроводные сети (LPWAN), что делает TinyOS идеальным.
- Умные города : TinyOS — это жизнеспособное решение для требований к малому энергопотреблению для коммунальных предприятий, электросетей, интернет-инфраструктуры и многих других приложений «умного города».

- Мониторинг состояния оборудования . Приложения типа «машина-машина» (M2M) имеют несколько интерфейсов датчиков. Невозможно указать полную вычислительную среду для каждого датчика. TinyOS может обеспечивать безопасность, управление питанием и отладку датчиков.
Где узнать о TinyOS?
Вся информация о загрузке TinyOS доступна на официальной странице GitHub (см.: https://github.com/tinyos/tinyos-main ). Помимо BSD, TinyOS также поддерживает Mac OS X.
Крупнейший всеобъемлющий источник информации о TinyOS доступен на вики Стэнфордского университета (см.: http://tinyos.stanford.edu/tinyos-wiki/index.php/Main_Page ). Этот источник содержит информацию об установке программы, подробные инструкции и большой указатель кода, предоставленный многими другими.
TinyOS — один из примеров операционной системы, предназначенной для недорогих беспроводных сенсорных сетей с низким энергопотреблением. Но это не единственный вариант. Другие примеры подобных операционных систем включают Contiki, OpenWSN, FreeRTOS и RIOT.