Contiki — lekki system operacyjny open source dla 8-bit i urządzeń wbudowanych
Contiki - lekki open source OS dla 8-bit i urządzeń wbudowanych; GUI, instalacja ~30 KB RAM. Idealny dla projektów IoT i systemów o ograniczonych zasobach.
Contiki to mały, otwarty, darmowy system operacyjny zaprojektowany z myślą o komputerach 8-bitowych i urządzeniach wbudowanych (embedded). Charakteryzuje się bardzo małym zapotrzebowaniem na pamięć — pełna instalacja zajmuje około 30 kilobajtów pamięci RAM — oraz wsparciem dla podstawowych usług sieciowych i prostego graficznego interfejsu użytkownika. Nazwa Contiki pochodzi od słynnej tratwy Kon-Tiki Thora Heyerdahla.
Krótka historia i autorstwo
Podstawowe jądro i większość najważniejszych mechanizmów zostały opracowane przez Adama Dunkelsa w grupie Networked Embedded Systems w Szwedzkim Instytucie Informatyki (SICS). Contiki powstał jako lekkie środowisko dla urządzeń o bardzo ograniczonych zasobach, a następnie zyskał popularność w badaniach nad sieciami sensorowymi i rozwiązaniach IoT. W nowszym stadium rozwoju powstała też wersja i fork znany jako Contiki-NG (Next Generation), ukierunkowany na współczesne potrzeby Internetu Rzeczy.
Architektura i cechy
- Mały rozmiar: zoptymalizowany pod kątem urządzeń o ograniczonej pamięci i mocy obliczeniowej; podstawowa instalacja wymaga około 30 KB RAM.
- System zdarzeniowy i protothready: Contiki stosuje lekki mechanizm wielozadaniowości oparty na zdarzeniach i tzw. protothreads — uproszczonych, bezstosowych „wątkach”, które umożliwiają programowanie w stylu sekwencyjnym przy minimalnym narzucie pamięciowym.
- Graficzny interfejs użytkownika: wczesne wersje Contiki oferowały prosty GUI z obsługą okien, ikon i myszy, co czyniło go wyjątkowym na tle innych systemów przeznaczonych do mikrokontrolerów.
- Programowanie w C: aplikacje i moduły tworzy się w języku C, co umożliwia bezpośrednią kontrolę nad zasobami sprzętowymi.
- Dynamiczne ładowanie: Contiki pozwala na wgrywanie i uruchamianie programów podczas działania systemu (w zależności od portu i konfiguracji).
Sieć i stosy protokołów
Jednym z kluczowych atutów Contiki są wbudowane, bardzo oszczędne stosy sieciowe. Najważniejsze elementy to:
- uIP: lekki stos TCP/IP przeznaczony dla urządzeń z ograniczonymi zasobami.
- Rime: protokoły komunikacji warstwy łącza i prostsze mechanizmy wymiany wiadomości zaprojektowane dla sieci sensorowych.
- Wsparcie dla IPv6 i 6LoWPAN: nowsze wersje i porty Contiki oferują obsługę IPv6 oraz mechanizmów kompresji nagłówków (6LoWPAN), co umożliwia integrację z Internetem Rzeczy.
Platformy i zastosowania
Contiki był portowany na wiele mikroarchitektur i płytek rozwojowych. Spotykany jest m.in. na układach AVR (Atmel), MSP430 (TI), a także na procesorach ARM Cortex-M czy dedykowanych układach radiowych używanych w sensorach bezprzewodowych. Typowe zastosowania to prototypy i produkty związane z sieciami sensorów, automatyzacją domową, mierzeniem parametrów środowiskowych oraz edukacja związana z systemami wbudowanymi.
Narzędzia i ekosystem
- Cooja: symulator sieciowy powiązany z Contiki, pozwalający emulować setki węzłów, testować protokoły radiowe i zachowanie aplikacji w sieci bez potrzeby fizycznego sprzętu.
- Dostępne biblioteki: stosy sieciowe, obsługa plików (w niektórych portach), sterowniki dla peryferiów i zestawy przykładowych aplikacji ułatwiają tworzenie rozwiązań.
- Contiki-NG: aktywnie rozwijany fork, który modernizuje kod, dodaje lepsze wsparcie dla IPv6/6LoWPAN, bezpieczeństwa i współczesnych platform sprzętowych.
Licencja i społeczność
Contiki jest projektem open source; jego źródła były udostępnione na licencjach sprzyjających wykorzystaniu w projektach badawczych i komercyjnych. Nad rozwojem i adaptacjami systemu pracuje społeczność badaczy, deweloperów i entuzjastów IoT, a dokumentacja oraz przykłady ułatwiają rozpoczęcie pracy z systemem.
Podsumowanie
Contiki to lekki, elastyczny system operacyjny dla urządzeń o ograniczonych zasobach, ceniony za niewielkie zużycie pamięci, zintegrowane stosy sieciowe i mechanizmy ułatwiające programowanie aplikacji wbudowanych. Dzięki takim narzędziom jak Cooja oraz rozwojowi w postaci Contiki-NG pozostaje jednym z istotnych rozwiązań w obszarze sieci sensorowych i Internetu Rzeczy.

Port C128 z 80 wskazaniami
Cechy
Pełna instalacja Contiki obejmuje następujące funkcje:
- Jądro wielozadaniowe
- Opcjonalna wielowątkowość pre-emptive dla poszczególnych aplikacji
- Protothreads
- Sieć TCP/IP
- System okienkowy i GUI
- Zdalne wyświetlanie w sieci z wykorzystaniem wirtualnych obliczeń sieciowych
- Przeglądarka internetowa (podobno najmniejsza na świecie)
- Osobisty serwer internetowy
- Prosty klient telnet
- Wygaszacz ekranu
Kolejne planowane aplikacje to:
- program do obsługi poczty elektronicznej
- klienta InternetRelay Chat
Porty
System operacyjny Contiki został przeniesiony lub jest przenoszony na następujące systemy:
- Komputery:
- Rodzina Apple II*.
- Atari 8-bit*.
- Atari ST
- Portfolio Atari
- Casio Pocketview
- Commodore PET*
- Commodore VIC 20*
- Commodore 64*.
- Commodore 128*.
- GP32
- PC-6001
- Kreator ostrości
- systemy uniksopodobne oparte na architekturze x86, na wierzchu GTK+, jak również bezpośrednio używając X Window System
* rozwój oparty na cc65
- Konsole do gier wideo:
- Silnik PC
- Sega Dreamcast
- Sony PlayStation
- Przenośne konsole do gier:
- Nintendo Game Boy
- Nintendo Game Boy Advance
- Mikrokontrolery:
- Atmel AVR
- TI MSP430
Powiązane strony
Media związane z Contiki na Wikimedia Commons
Pytania i odpowiedzi
P: Czym jest Contiki?
O: Contiki to mały, darmowy system operacyjny o otwartym kodzie źródłowym.
P: Do czego został stworzony Contiki?
O: Contiki został opracowany do użytku w komputerach 8-bitowych i systemach wbudowanych.
P: Czy Contiki posiada graficzny interfejs użytkownika?
O: Tak, Contiki posiada graficzny interfejs użytkownika.
P: Ile pamięci RAM jest potrzebne do pełnej instalacji Contiki?
O: Pełna instalacja Contiki wymaga około 30 kilobajtów pamięci RAM.
P: Skąd pochodzi nazwa Contiki?
O: Nazwa Contiki pochodzi od słynnej tratwy Kon-Tiki Thora Heyerdahla.
P: Kto opracował podstawowe jądro i większość podstawowych funkcji Contiki?
O: Adam Dunkels opracował podstawowe jądro i większość podstawowych funkcji Contiki w grupie Networked Embedded Systems w Szwedzkim Instytucie Informatyki.
P: Czy Contiki jest płatnym systemem operacyjnym?
O: Nie, Contiki jest darmowym systemem operacyjnym o otwartym kodzie źródłowym.
Przeszukaj encyklopedię