Contiki

09.03.2021

Contiki (англ. Contiki — Контики) — компактная, свободная, переносимая, многозадачная операционная система для встраиваемых систем и ПК, в частности разрабатываемая для использования в устройствах с ограниченными ресурсами (в основном память), 8-битные компьютеры для встраиваемых систем на микроконтроллерах. Название «Contiki» происходит от известного плота Кон-Тики, на котором плавал Тур Хейердал с командой.

Ядро и большинство основных функций были разработаны Адамом Данкелсом (Adam Dunkels) и группой Networked Embedded Systems в Swedish Institute of Computer Science.

Позиционируется разработчиками как система, пригодная для использования в оборудовании «для Интернета вещей» (букв. «Contiki: The Open Source OS for the Internet of Things»).

Устройство

Contiki спроектирована для встраиваемых систем с ограниченным объёмом памяти. При конфигурации по умолчанию Contiki использует 2 килобайта ОЗУ и 40 килобайт ПЗУ. ОС состоит из ядра, которое управляется событиями, программы во время исполнения загружаются и выгружаются динамически. Процессы используют облегчённую потоковую модель — протопотоки, которые обеспечивают линейный потоковый стиль инициализации ядра.

Платформы

Contiki выполняется на разнообразных платформах и архитектурах начиная от TI MSP430 и Atmel AVR, и заканчивая разнообразным парком старых ПК. При этом объём занимаемого места находится в пределах нескольких килобайт, использование памяти легко настраивается и может быть снижено до десятков байт.

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

Возможности

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

Полная установка Contiki включает следующие компоненты:

  • Многозадачное ядро
  • Вытесняющая многозадачность
  • Протопотоки
  • TCP/IP компьютерная сеть
  • Оконную систему и GUI
  • Удалённый доступ к рабочему столу компьютера, используя Virtual Network Computing
  • Веб-браузер (возможно, самый маленький в мире)
  • Персональный веб-сервер
  • Простой telnet-клиент
  • Хранитель экрана

Платформы

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

  • Компьютеры:
    • Apple II family
    • Atari 8-bit
    • Atari ST
    • Atari Portfolio
    • Casio Pocketview
    • Commodore PET
    • Commodore VIC-20
    • Commodore 64
    • Commodore 128
    • GP32
    • Oric
    • PC-6001
    • Sharp Wizard
    • x86 (запуск поверх Unix-like систем, как X11-приложение (тип hosted).
  • Игровые консоли:
    • PC Engine
    • Sega Dreamcast
    • Sony PlayStation
  • Карманные игровые консоли:
    • Nintendo Game Boy
    • Nintendo Game Boy Advance
  • Микроконтроллеры:
    • Atmel AVR
    • TI MSP430
    • Jennic/NXP JN51xx
    • STMicroelectronics STM32