Contiki — это операционная система для IoT, специально предназначенная для небольших IoT-устройств с ограниченной памятью, мощностью, пропускной способностью и вычислительной мощностью. Он использует минималистский дизайн, в то же время упаковывая общие инструменты современных операционных систем. Он обеспечивает функциональность для управления программами, процессами, ресурсами, памятью и связью.
Он обязан своей популярностью тем, что он очень легкий (по современным стандартам), зрелый и гибкий. Многие ученые, исследователи организаций и профессионалы считают, что это стандартная ОС. Для работы Contiki требуется всего несколько килобайт, а на пространстве менее 30 КБ он подходит для всей операционной системы — веб-браузер, веб-сервер, калькулятор, оболочка, клиент telnet и демон, почтовый клиент, программа просмотра vnc и ftp. Он заимствован из операционных систем и стратегий развития десятилетий назад, которые легко эксплуатировали столь же мало места.
Contiki Communication
Contiki поддерживает стандартные протоколы и последние включающие протоколы для IoT —
-
uIP (для IPv4) — эта реализация TCP / IP поддерживает 8-битные и 16-битные микроконтроллеры.
-
uIPv6 (для IPv6) — это полностью совместимое расширение IPv6 для uIP.
-
Rime — этот альтернативный стек обеспечивает решение, когда IPv4 или IPv6 оказываются непосильными. Он предлагает набор примитивов для систем с низким энергопотреблением.
-
6LoWPAN — это IPv6 в беспроводных персональных сетях с низким энергопотреблением. Он обеспечивает технологию сжатия для поддержки беспроводной связи с низкой скоростью передачи данных, необходимой для устройств с ограниченными ресурсами.
-
RPL — этот протокол IPv6 с вектором расстояния для сетей LLN (сетей с низким энергопотреблением и с потерями) позволяет найти наилучший возможный путь в сложной сети устройств с различными возможностями.
-
CoAP — этот протокол поддерживает связь для простых устройств, обычно устройств, требующих тщательного удаленного наблюдения.
uIP (для IPv4) — эта реализация TCP / IP поддерживает 8-битные и 16-битные микроконтроллеры.
uIPv6 (для IPv6) — это полностью совместимое расширение IPv6 для uIP.
Rime — этот альтернативный стек обеспечивает решение, когда IPv4 или IPv6 оказываются непосильными. Он предлагает набор примитивов для систем с низким энергопотреблением.
6LoWPAN — это IPv6 в беспроводных персональных сетях с низким энергопотреблением. Он обеспечивает технологию сжатия для поддержки беспроводной связи с низкой скоростью передачи данных, необходимой для устройств с ограниченными ресурсами.
RPL — этот протокол IPv6 с вектором расстояния для сетей LLN (сетей с низким энергопотреблением и с потерями) позволяет найти наилучший возможный путь в сложной сети устройств с различными возможностями.
CoAP — этот протокол поддерживает связь для простых устройств, обычно устройств, требующих тщательного удаленного наблюдения.
Динамическая загрузка модуля
Динамическая загрузка и связывание модулей во время выполнения поддерживает среды, в которых поведение приложения изменяется после развертывания. Загрузчик модулей Contiki загружает, перемещает и связывает файлы ELF.
The Cooja Network Simulator
Cooja, сетевой симулятор Contiki, создает реально скомпилированную и работающую систему Contiki, управляемую Cooja.
Использование Cooja оказывается простым. Просто создайте новый тип сучка, выбрав меню Motes и добавив Motes → Create New Mote Type . В появившемся диалоговом окне вы выбираете имя для мотылька, выбираете его прошивку и тестируете его компиляцию.
После создания, добавить сучки, нажав кнопку Создать . Появится новый тип соринки, к которому вы можете прикрепить узлы. Последний шаг требует сохранения файла симуляции для дальнейшего использования.