Contiki

редактировать
Contiki
Contiki-ipv6-rpl-cooja-Simulation.png Скриншот Система Ubuntu показывает Contiki 2.6, работающую на 41 узле, формирующую сеть IPv6-RPL-6LoWPAN в сетевом симуляторе Cooja Contiki.
Разработчик Адам Дункелс
Рабочее состояниеТекущая
Исходная модельОткрытый исходный код
Первоначальный выпуск10 марта 2003 г.; 17 лет назад (2003-03-10)
Последний выпуск 3.0 / 26 августа 2015; 5 лет назад (26.08.2015)
Лицензия BSD
Официальный сайтwww.contiki-os.org

Contiki - это операционная система для сетевых систем с ограниченным объемом памяти с акцентом на маломощные беспроводные устройства Интернета вещей. До сих пор Contiki использует системы для уличного освещения, звукового мониторинга для умных городов, радиационного мониторинга и сигнализации. Это программное обеспечение с открытым исходным кодом, выпущенное под лицензией BSD..

Contiki была создана Адамом Данкелсом в 2002 году и дорабатывалась всемирной командой разработчиков из Техаса. Instruments, Atmel, Cisco, ENEA, ETH Zurich, Redwire, RWTH Aachen University, Oxford University, SAP, Sensinode, Шведский институт компьютерных наук, ST Microelectronics, Zolertia и многие другие. Contiki приобрела популярность благодаря встроенному стеку TCP / IP и упрощенному упреждающему планированию с использованием ядра, управляемого событиями, что является очень важной функцией для Интернета вещей. Название Контики происходит от знаменитого плота Кон-Тики Тура Хейердала.

Contiki обеспечивает многозадачность и встроенный Internet Protocol Suite (стек TCP / IP), но требует всего около 10 килобайт из оперативной памяти. (RAM) и 30 килобайт постоянной памяти (ROM). Полная система, включая графический пользовательский интерфейс, требует около 30 килобайт ОЗУ.

Недавно была создана новая ветка, известная как Contiki-NG : ОС для устройств Интернета вещей следующего поколения

Содержание
  • 1 Оборудование
  • 2 Сеть
  • 3 Работа с низким энергопотреблением
  • 4 Моделирование
  • 5 Модель программирования
  • 6 Функции
  • 7 Порты
    • 7.1 Микроконтроллеры
    • 7.2 Компьютеры
    • 7.3 Игровые консоли
  • 8 См. Также
  • 9 Примечания
  • 10 Ссылки
  • 11 Внешние ссылки
Аппаратное обеспечение

Contiki разработан для работы на типах аппаратных устройств, которые сильно ограничены в памяти, мощности, вычислительной мощности и пропускной способности связи. Типичная система Contiki имеет память порядка килобайт, энергопотребление порядка милливатт, скорость обработки, измеряемую в мегагерцах, и пропускную способность связи порядка сотен килобит в секунду. К таким системам относятся многие типы встроенных систем и старые 8-битные компьютеры.

Сеть

Contiki предоставляет три сетевых механизма: стек uIP TCP / IP, который обеспечивает сеть IPv4, стек uIPv6, который предоставляет IPv6 сеть и стек Rime, который представляет собой набор настраиваемых облегченных сетевых протоколов, предназначенных для беспроводных сетей с низким энергопотреблением. Стек IPv6 был предоставлен Cisco и на момент выпуска был самым маленьким стеком IPv6, получившим сертификацию IPv6 Ready. Стек IPv6 также содержит протокол маршрутизации для сетей с низким энергопотреблением и потерями (RPL) для сетей IPv6 с низким энергопотреблением и потерями и уровень сжатия и адаптации заголовка 6LoWPAN для IEEE 802.15.4 ссылки.

Rime - это альтернативный сетевой стек, используемый, когда накладные расходы стеков IPv4 или IPv6 недопустимы. Стек Rime предоставляет набор примитивов связи для маломощных беспроводных систем. Примитивы по умолчанию - одноадресная одноадресная рассылка, одноадресная широковещательная рассылка, многоадресная одноадресная рассылка, лавинная рассылка сети и безадресный сбор данных. Примитивы могут использоваться по отдельности или в сочетании для формирования более сложных протоколов и механизмов.

Работа с низким энергопотреблением

Многие системы Contiki сильно ограничены по мощности. Беспроводным датчикам с батарейным питанием может потребоваться годы автономной работы с небольшими средствами для подзарядки или замены батарей. Contiki предоставляет набор механизмов для снижения энергопотребления систем, в которых он работает. Механизм по умолчанию для снижения энергопотребления радиостанции называется ContikiMAC. С ContikiMAC узлы могут работать в режиме пониженного энергопотребления и по-прежнему иметь возможность получать и ретранслировать радиосообщения.

Моделирование

Система Contiki включает в себя имитатор сенсора Cooja, который имитирует узлы Contiki. Узлы принадлежат к одному из трех следующих классов: а) эмулированные узлы Cooja, б) код Contiki, скомпилированный и исполняемый на хосте моделирования, или в) узлы Java, где поведение узла должно быть переопределено как класс Java. Одна симуляция Cooja может содержать смесь сенсорных узлов любого из трех классов. Эмулированные узлы также можно использовать для включения узлов, не относящихся к Contiki, в моделируемую сеть.

В Contiki 2.6 можно эмулировать платформы с микроконтроллерами TI MSP430 и Atmel AVR.

Модель программирования

Для эффективной работы в системах с малой памятью модель программирования Contiki основана на протопотоках. Протопоток - это программная абстракция с эффективным использованием памяти, которая разделяет функции как многопоточности, так и программирования, управляемого событиями, для достижения низких накладных расходов памяти для каждого протопотока. Ядро вызывает протопоток процесса в ответ на внутреннее или внешнее событие. Примерами внутренних событий являются срабатывающие таймеры или сообщения, отправляемые из других процессов. Примерами внешних событий являются датчики, которые запускают или поступают пакеты от радиососедей.

Протопотоки планируются совместно. Таким образом, процесс Contiki всегда должен явно передавать управление ядру через равные промежутки времени. Процессы Contiki могут использовать специальную конструкцию протопотока, чтобы блокировать ожидание событий, передавая управление ядру между каждым вызовом события.

Характеристики
Снимок экрана сервера VNC, работающего на порту Atmel AVR Contiki

Contiki поддерживает опциональную вытесняющую многопоточность для каждого процесса, межпроцессное взаимодействие с использованием передачи сообщений через события, а также дополнительная подсистема графического пользовательского интерфейса (GUI) либо с прямой графической поддержкой для локально подключенных терминалов, либо с сетевым виртуальным дисплеем с виртуальной сетью Вычисление (VNC) или через Telnet.

Полная установка Contiki включает в себя следующие функции:

Contiki поддерживается популярным SSL / Библиотеки TLS, такие как wolfSSL, который включает порт в выпуске 3.15.5.

Порты
Contiki на Commodore 64.

Contiki, работающие Система портирована на следующие системы:

Микроконтроллеры

Компьютеры

Игровые консоли

См. Также
  • Портал программного обеспечения с открытым исходным кодом
Примечания
Ссылки
Внешние ссылки
Викискладе есть носители, относящиеся к Contiki.
Последняя правка сделана 2021-05-15 10:53:23
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте