Контики
![]() Снимок экрана системы Ubuntu, показывающий Contiki 2.6, работающий на 41 узле, образующем сеть IPv6-RPL-6LoWPAN в сетевом симуляторе Cooja Contiki. | |
Разработчик | Адам Данкелс |
---|---|
Исходная модель | Открытый исходный код |
Первоначальный выпуск | 10 марта 2003 г |
Финальный выпуск | 3.0 / 25 августа 2015 г |
Репозиторий | github |
Лицензия | Пункт BSD-3 |
Официальный сайт | www |
Стабильная версия | 4,9 / 17 июня 2023 г |
---|---|
Репозиторий | github |
Веб-сайт | www |
Contiki — это операционная система для сетевых систем с ограниченным объемом памяти, ориентированная на маломощные беспроводные устройства Интернета вещей (IoT). Contiki используется для систем уличного освещения , звукового мониторинга для умных городов , радиационного мониторинга и сигнализации. [1] Это программное обеспечение с открытым исходным кодом , выпущенное по лицензии BSD-3-Clause .
Contiki был создан Адамом Данкелсом в 2002 году. [2] и был доработан всемирной командой разработчиков из Texas Instruments, Atmel, Cisco, ENEA , ETH Zurich , Redwire, RWTH Ахенского университета , Оксфордского университета, SAP, Sensinode, Шведского института компьютерных наук , ST Microelectronics, Zolertia и многих других. другие. [3] Contiki приобрел популярность благодаря встроенному стеку TCP/IP и упрощенному упреждающему планированию по сравнению с управляемым событиями. ядром, [4] что является очень мотивирующей особенностью для Интернета вещей. Название «Контики» происходит от » Тура Хейердала знаменитого плота «Кон-Тики .
Contiki обеспечивает многозадачность и встроенный пакет интернет-протоколов (стек TCP/IP), но требует всего около 10 килобайт ( оперативной памяти ОЗУ) и 30 килобайт постоянной памяти (ПЗУ). [1] Для полной системы, включая графический интерфейс пользователя , требуется около 30 килобайт оперативной памяти. [5]
Недавно была создана новая ветвь, известная как Contiki-NG : ОС для устройств IoT следующего поколения.
Аппаратное обеспечение [ править ]
Contiki предназначен для работы на типах аппаратных устройств, которые сильно ограничены в памяти , мощности , вычислительной мощности и пропускной способности связи . Типичная система Contiki имеет память порядка килобайт, бюджет мощности порядка милливатт, скорость обработки данных измеряется в мегагерцах, а пропускная способность связи порядка сотен килобит в секунду. К таким системам относятся многие типы встроенных систем и старые 8-битные компьютеры.
Сеть [ править ]
Contiki предоставляет три сетевых механизма: стек uIP TCP/IP, [6] который обеспечивает сеть IPv4 , стек uIPv6, [7] который обеспечивает работу сети IPv6 , и стек Rime, который представляет собой набор специальных облегченных сетевых протоколов, предназначенных для беспроводных сетей с низким энергопотреблением. Стек IPv6 был предоставлен Cisco и на момент выпуска был самым маленьким стеком IPv6, получившим сертификат готовности к IPv6 . [8] Стек IPv6 также содержит протокол маршрутизации для сетей с низким энергопотреблением и потерями (RPL) для сетей IPv6 с низким энергопотреблением и уровень сжатия и адаптации заголовка 6LoWPAN для каналов IEEE 802.15.4 .
Rime — это альтернативный сетевой стек, который можно использовать, когда накладные расходы стеков IPv4 или IPv6 слишком велики. Стек Rime предоставляет набор примитивов связи для маломощных беспроводных систем. Примитивами по умолчанию являются одноадресная рассылка с одним переходом, широковещательная рассылка с одним переходом, одноадресная рассылка с несколькими переходами, лавинная рассылка по сети и сбор данных без адреса. Примитивы можно использовать по отдельности или комбинировать для формирования более сложных протоколов и механизмов. [9]
Работа с низким энергопотреблением [ править ]
Многие системы Contiki сильно ограничены в энергопотреблении. Беспроводным датчикам с батарейным питанием, возможно, потребуется обеспечить годы работы без присмотра и с небольшими затратами на подзарядку или замену батарей. Contiki предоставляет набор механизмов для снижения энергопотребления систем, на которых он работает. Механизм по умолчанию для обеспечения работы радиостанции с низким энергопотреблением называется ContikiMAC. [10] Благодаря ContikiMAC узлы могут работать в режиме пониженного энергопотребления и при этом иметь возможность получать и передавать радиосообщения.
Моделирование [ править ]
Система Contiki включает в себя симулятор датчиков Cooja, который имитирует узлы Contiki. [11] Узлы принадлежат к одному из трех следующих классов: а) эмулируемые узлы Cooja, б) код Contiki, скомпилированный и выполняемый на хосте моделирования, или в) узлы Java, где поведение узла должно быть переопределено как класс Java. Одна симуляция Cooja может содержать смесь сенсорных узлов любого из трех классов. Эмулированные узлы также можно использовать для включения узлов, не принадлежащих Contiki, в моделируемую сеть.
В Contiki 2.6 TI MSP430 и Atmel AVR можно эмулировать платформы с микроконтроллерами .
Модель программирования [ править ]
Для эффективной работы в системах с небольшим объемом памяти модель программирования Contiki основана на протопотоках . [12] [13] Протопоток — это абстракция программирования с эффективным использованием памяти, которая объединяет функции как многопоточного , так и событийно-управляемого программирования для достижения низких затрат памяти для каждого протопотока. Ядро вызывает протопоток процесса в ответ на внутреннее или внешнее событие. Примерами внутренних событий являются срабатывающие таймеры или сообщения, отправляемые другими процессами. Примерами внешних событий являются датчики, которые инициируют или входящие пакеты от радиососеда.
Протопотоки планируются совместно. Таким образом, процесс Contiki всегда должен явно возвращать управление ядру через определенные промежутки времени. Процессы Contiki могут использовать специальную конструкцию протопотока, чтобы блокировать ожидание событий, передавая управление ядру между вызовами каждого события.
Особенности [ править ]

Contiki поддерживает дополнительную вытесняющую многопоточность для каждого процесса, межпроцессную связь с использованием передачи сообщений через события, а также дополнительную подсистему графического пользовательского интерфейса (GUI) с прямой графической поддержкой локально подключенных терминалов или сетевого виртуального дисплея с виртуальными сетевыми вычислениями (VNC). ) или через Telnet.
Полная установка Contiki включает в себя следующие возможности:
- Многозадачное ядро
- для каждого приложения. Дополнительная вытесняющая многопоточность
- Протопотоки
- Internet Protocol Suite (TCP/IP) Сеть , включая IPv6
- Оконная система и графический интерфейс
- Сетевой удаленный дисплей с использованием виртуальных сетевых вычислений
- Веб -браузер (утверждается, что он самый маленький в мире)
- Персональный веб-сервер
- Простой телнет- клиент
- Заставка
Contiki поддерживается популярными библиотеками SSL/TLS , такими как wolfSSL , которая включает порт в выпуске 3.15.5. [14]
Порты [ править ]

Микроконтроллеры [ править ]
- Atmel — ARM , AVR
- NXP Semiconductors – LPC1768, [15] ЛПК2103, MC13224
- Микросхема — dsPIC, PIC32 (PIC32MX795F512L)
- Texas Instruments — MSP430 , CC2430, CC2538, CC2630, CC2650, CC2538: системы видеонаблюдения, Firefly, Zoul (содержит CC2538 и CC1200 в формате одного модуля)
- STMicroelectronics – STM32 W
Компьютеры [ править ]
- Яблоко II [а]
- 8-битные компьютеры Atari [а]
- Атари СТ
- Портфолио Атари
- Карманный просмотрщик
- Коммодор ПЭТ [а]
- ВИК-20 , [а]
- Коммодор 64 , [а] Коммодор 128 [а]
- любой [а]
- НЭК ПК-6001
- Острый волшебник
- x86 системы на базе Unix-подобные , поверх GTK+ или напрямую с использованием системы X Window. [16]
Игровые консоли [ править ]
См. также [ править ]
Примечания [ править ]
Ссылки [ править ]
- ^ Jump up to: Перейти обратно: а б Контики ОС .
- ^ Contiki: внедрение IP в сенсорные сети
- ^ «Сообщество», Contiki OS .
- ^ Данкелс, Адам (2004), «Contiki - легкая и гибкая операционная система для крошечных сетевых датчиков», Материалы 29-й ежегодной международной конференции IEEE по локальным компьютерным сетям. , стр. 455–462 .
- ^ Открыто: малоизвестная ОС с открытым исходным кодом, которая управляет Интернетом вещей
- ^ Данкелс, Адам (май 2003 г.), «Полный TCP/IP для 8-битных архитектур», Материалы Первой международной конференции ACM/Usenix по мобильным системам, приложениям и сервисам (MobiSys) , Сан-Франциско
{{citation}}
: CS1 maint: отсутствует местоположение издателя ( ссылка ) - ^ Дурви, Матильда; Абейе, Жюльен; Веттервальд, Патрик; О'Флинн, Колин; Леверетт, Блейк; Гноске, Эрик; Видалес, Майкл; Маллиган, Джефф; Цифтес, Николас; Финн, Никлас; Данкелс, Адам (ноябрь 2008 г.), «Готовность сенсорных сетей к IPv6», Материалы шестой конференции ACM по сетевым встроенным сенсорным системам (SenSys) (постерная сессия), Роли, Северная Каролина , США : ACM
- ^ Отдел новостей , Cisco, 2008 г.
- ^ Данкелс, Адам; Остерлинд, Фредрик; Он, Чжитао (ноябрь 2007 г.), «Адаптивная коммуникационная архитектура для беспроводных сенсорных сетей», Материалы пятой конференции ACM по сетевым встраиваемым сенсорным системам (SenSys) , Сидней, Австралия.
{{citation}}
: CS1 maint: отсутствует местоположение издателя ( ссылка ) . - ^ Данкелс, Адам, Протокол дежурной радиосвязи ContikiMAC (PDF) .
- ^ «Старт», Contiki OS .
- ^ Данкелс, Адам; Шмидт, Оливер; Фойгт, Тимо; Али, Муниб (ноябрь 2006 г.), «Протопотоки: упрощение событийно-ориентированного программирования встроенных систем с ограниченной памятью», Труды четвертой конференции ACM по встроенным сетевым сенсорным системам (SenSys) , Боулдер, Колорадо , США
{{citation}}
: CS1 maint: location missing publisher (link) Данкелс, А.; Шмидт, О.; Фойгт, Т.; Али, М. (2006). «Протонити». Материалы 4-й международной конференции по встраиваемым сетевым сенсорным системам — Sen Sys '06 . п. 29. дои : 10.1145/1182807.1182811 . ISBN 1595933433 . S2CID 983128 . ( PDF , слайды презентации ). - ^ «Протопоток», Код .
- ^ «Порт ОС wolfSSL CONTIKI — wolfSSL» . 18 декабря 2018 г. Проверено 9 января 2019 г.
- ^ «Операционная система Contiki / [Contiki-разработчики] Порт Contiki для процессора руки LPC1768» . 19 декабря 2020 г.
- ^ Штейн, Х. Запуск Contiki под Windows , Trix, заархивировано из оригинала 9 декабря 2003 г.
- «Инструменты Контики», Hitmen , AT : C02 : неофициальный сайт исторических портов версии 1.x.
- «Минимальная ОС Contiki для LPC2103», Манишшакья , НП, заархивировано из оригинала 4 июня 2014 г.
- Конфигурационный файл Contiki 2.5 и генератор образов дисков , ретро-системы A2 .
- Портирование Contiki на PIC32 (Seed-Eye Board) , IT : SSSUP, заархивировано из оригинала 18 марта 2013 г. , получено 31 января 2013 г.
Внешние ссылки [ править ]

- Беспроводная сенсорная сеть
- Встроенные операционные системы
- Бесплатные веб-браузеры
- Свободное программное обеспечение, операционные системы
- Цветной компьютер TRS-80
- Программное обеспечение Коммодор 64
- Программное обеспечение Коммодор 128
- Программное обеспечение Apple II
- 8-битное компьютерное программное обеспечение Atari
- Программное обеспечение Atari ST
- Программное обеспечение ВИК-20
- Операционные системы ARM
- Операционные системы MIPS
- Программное обеспечение, использующее лицензию BSD
- TCP-реализации