Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

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

Оборудование [ править ]

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

Сеть [ править ]

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

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

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

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

Моделирование [ править ]

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

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

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

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

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

Особенности [ править ]

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

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

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

  • Ядро многозадачности
  • Дополнительная вытесняющая многопоточность для каждого приложения
  • Протонити
  • Интернет Protocol Suite (TCP / IP) сетей , включая IPv6
  • Оконная система и графический интерфейс
  • Сетевой удаленный дисплей с использованием виртуальных сетевых вычислений
  • Веб - браузер (утверждал, что самый маленький в мире)
  • Персональный веб-сервер
  • Простой клиент telnet
  • Хранитель экрана

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

Порты [ править ]

Contiki на Commodore 64 .

Операционная система Contiki перенесена на следующие системы:

Микроконтроллеры [ править ]

  • Atmel - ARM , AVR
  • NXP Semiconductors - LPC1768, [15] LPC2103, MC13224
  • Микрочип - dsPIC, PIC32 (PIC32MX795F512L)
  • Texas Instruments - MSP430 , CC2430 , CC2538 , CC2630, CC2650 , CC2538 : RE-Mote [ постоянная мертвая связь ] , Firefly , Zoul (включает CC2538 и CC1200 в формате одного модуля)
  • STMicroelectronics - STM32 Вт

Компьютеры [ править ]

  • Apple - II серия [a]
  • Atari - 8-бит , [a] ST , портфолио
  • Casio - Карманный просмотрщик
  • Коммодор - ПЭТ , [а] ВИК-20 , [а] 64 , [а] 128 [а]
  • Tangerine Computer Systems - Орич [а]
  • NEC - PC-6001
  • Sharp - Волшебник
  • Intel , AMD , VIA , многие другие - x86 - Unix-подобные системам, поверх GTK + , или более непосредственно , используя систему X Window [16]

Игровые консоли [ править ]

  • Атари - Ягуар
  • Игровой парк - GP32
  • Nintendo - Game Boy , Game Boy Advance , Entertainment System (NES) [a]
  • NEC - TurboGrafx-16 Entertainment SuperSystem (движок ПК) [a]

См. Также [ править ]

  • BeRTOS
  • ЭРИКА Предприятие
  • БУНТ
  • SymbOS
  • TinyOS
  • Колеса (операционная система)
  • Сравнение операционных систем реального времени

Заметки [ править ]

  1. ^ a b c d e f g h i cc65 на основе разработки

Ссылки [ править ]

  1. ^ a b Contiki OS.
  2. ^ Contiki: IP в сенсорных сетях
  3. ^ "Сообщество", Contiki OS.
  4. ^ Данкелс, Адам (2004), «Contiki - легкая и гибкая операционная система для крошечных сетевых датчиков», Труды 29-й ежегодной Международной конференции IEEE по локальным компьютерным сетям. , стр. 455–462.
  5. ^ В открытом доступе: малоизвестная ОС с открытым исходным кодом, которая управляет Интернетом вещей
  6. ^ Данкелс, Адам (май 2003 г.), «Полный TCP / IP для 8-битных архитектур», Труды Первой международной конференции ACM / Usenix по мобильным системам, приложениям и услугам (MobiSys) , Сан-Франциско
  7. ^ Дурви, Матильда; Abeillé, Julien; Веттервальд, Патрик; О'Флинн, Колин; Леверетт, Блейк; Гноске, Эрик; Видалес, Майкл; Маллиган, Джефф; Цифтес, Николас; Финн, Никлас; Данкелс, Адам (ноябрь 2008 г.), «Подготовка сенсорных сетей к IPv6», Труды Шестой конференции ACM по сетевым встроенным сенсорным системам (SenSys) (стендовая сессия), Роли, Северная Каролина , США : ACM
  8. Перейти ↑ Newsroom , Cisco, 2008..
  9. ^ Данкелс, Адам; Эстерлинд, Фредрик; Он, Чжитао (ноябрь 2007 г.), «Адаптивная коммуникационная архитектура для беспроводных сенсорных сетей», Труды пятой конференции ACM по сетевым встроенным сенсорным системам (SenSys) , Сидней, Австралия..
  10. ^ Данкелс, Адам, Протокол ContikiMAC Radio Duty Cycling ( PDF ) .
  11. ^ "Пуск", Contiki OS.
  12. ^ Данкелс, Адам; Шмидт, Оливер; Voigt, Thiemo; Али, Муниб (ноябрь 2006 г.), «Протопотоки: упрощение событийного программирования встроенных систем с ограничением памяти», Труды четвертой конференции ACM по встроенным сетевым сенсорным системам (SenSys) , Боулдер, Колорадо , США. Dunkels, A .; Schmidt, O .; Voigt, T .; Али, М. (2006). «Протонити». Материалы 4-й международной конференции по встроенным сетевым сенсорным системам - Sen Sys '06 . п. 29. DOI : 10,1145 / 1182807,1182811 . ISBN 1595933433.( PDF , слайды презентации ).
  13. ^ "Protothread", Код , Google.
  14. ^ "wolfSSL CONTIKI OS port - wolfSSL" . 2018-12-18 . Проверено 9 января 2019 .
  15. ^ http://sourceforge.net/p/contiki/mailman/message/31753844/
  16. ^ Stein, H, Запуск Contiki под Windows , Trix, заархивировано из оригинала 9 декабря 2003 г..
  • C64Web: веб-сайт, запущенный на немодифицированном Commodore 64 1982 года выпуска.
  • "Инструменты Контики", Hitmen , AT : C02: неофициальный сайт исторических портов версии 1.x.
  • "Minimal Contiki OS для LPC2103", Manishshakya , NP, архивировано с оригинала 04.06.2014.
  • Конфигурационный файл Contiki 2.5 и генератор образов дисков , ретро-системы A2.
  • Contiki портирования на PIC32 (Seed глаз совета) , IT : SSSUP, архивируются с оригинала на 2013-03-18 , извлекаться 2013-01-31.

Внешние ссылки [ править ]

  • Официальный веб-сайт