Contiki — lättviktsoperativsystem för inbyggda nätverk
Contiki är ett öppet, minneslitet operativsystem för inbyggda system och sensornätverk, känt för sin nätverksstöd, protothreads och användning i IoT-enheter.
Översikt
Contiki är ett litet operativsystem med öppen källkod avsett för minnes- och processorbegränsade inbyggda system. Det designades för att fungera på enkla 8-bitars och senare 16/32-bitars mikrocontrollers och används ofta i sensornät, trådlösa infrastrukturkomponenter och andra IoT-enheter. Systemet erbjuder ett grundläggande grafiskt gränssnitt, nätverksstöd och en modulär kärna som kan anpassas för olika hårdvarukonfigurationer.
Bildgalleri
4 BilderEgenskaper och komponenter
Contiki kännetecknas av ett litet minnesavtryck och en flexibelt uppbyggd nätverksstack. Huvuddrag inkluderar:
- Låg minnesanvändning: En full installation kan köras med mycket begränsat RAM (ett komplett system kan arbeta med tiotusentals byte, ofta angivet runt 30 KB beroende på konfiguration).
- Nätverksstöd: Inbyggda TCP/IP- och IPv6-implementationer (inklusive stöd för 6LoWPAN och protokoll för trådlösa sensornät).
- Protothreads och händelsestyrning: Ett eventdrivet kärnparadigm kompletteras av protothreads — en lättviktig mekanism som ger enklare, linjärt skrivna trådliknande rutiner utan full stack per tråd.
- Modulär arkitektur: Applikationer och nätverksprotokoll kan köras som fristående moduler som laddas och styrs av kärnan.
- Verktyg och exempel: Contiki innehåller enkla webbtjänster, demonstrationer för sensornät och ett litet grafiskt toolkit (för plattformar som stöder skärm).
Historia och utveckling
Contiki togs fram i slutet av 1990-talet och början av 2000-talet med betydande bidrag från Adam Dunkels vid Swedish Institute of Computer Science (SICS). Namnet hämtades inspirerande från Thor Heyerdahls Kon-Tiki-expedition. Projektet har spridits och vidareutvecklats i en öppen källkodsmodell; källkod, dokumentation och projektinformation finns publicerat av projektgemenskapen och på projektets webbplats. För vidareutveckling och modernisering finns även efterföljare och grenar av projektet som syftar till att möta nya krav inom IoT och säkerhet.
Användning och betydelse
Contiki används i utbildning, forskningsprototyper och kommersiella inbyggda produkter där resurssnålhet och nätverksförmåga är centrala. Exempel på tillämpningar är trådlösa sensorsystem, hemautomationsnoder, mätinstrument och experimentella IoT-lösningar. Den lätta nätverksstacken och stödet för lågströmsradio gör Contiki särskilt lämpat för batteridrivna enheter i stora nätverk.
Skillnader, begränsningar och varianter
Jämfört med andra system för små enheter, såsom TinyOS, fokuserar Contiki på att erbjuda en mer traditionell C-baserad programmeringsmodell med stöd för både eventdriven logik och enklare trådstruktur genom protothreads. Contiki är inte ett hårt realtidsoperativsystem och lämpar sig inte alltid för applikationer som kräver strikt deterministiska tidskrav. Projektgemenskapen har också utvecklat modernare varianter och uppdaterade versioner för att hantera nya nätverksstandarder och säkerhetskrav.
För mer information om projektets källkod och dokumentation se projektets webbplats: Contiki-projektet. Information om kärnens ursprung och utvecklingsgrupp finns publicerad via relevanta arkiv och forskningspublikationer: kärnutveckling och bakgrund.
Funktioner
En fullständig installation av Contiki innehåller följande funktioner:
- Multitasking-kärna
- Valfri pre-emptiv multithreading per program
- Protothreads
- TCP/IP-nätverk
- Fönstersystem och grafisk gränssnitt
- Fjärrvisning i nätverk med hjälp av virtuell nätverksdrift
- En webbläsare (som påstås vara världens minsta).
- Personlig webbserver
- Enkel telnet-klient
- Skärmsläckare
Fler planerade tillämpningar är bland annat:
- ett e-postprogram
- En klient för Internet Relay Chat.
Portar
Operativsystemet Contiki har anpassats eller håller på att anpassas till följande system:
- Datorer:
- Apple II-familjen*
- Atari 8-bit*
- Atari ST
- Atari Portfolio
- Casio Pocketview
- Commodore PET*
- Commodore VIC 20*
- Commodore 64*
- Commodore 128*
- GP32
- PC-6001
- Skarp trollkarl
- x86-baserade Unix-liknande system, ovanpå GTK+ samt direkt med hjälp av X Window System.
* cc65-baserad utveckling
- Spelkonsoler:
- PC-motor
- Sega Dreamcast
- Sony PlayStation
- Handhållna spelkonsoler:
- Nintendo Game Boy
- Nintendo Game Boy Advance
- Mikrokontroller:
- Atmel AVR
- TI MSP430
Relaterade sidor
Media relaterade till Contiki på Wikimedia Commons
Frågor och svar
F: Vad är Contiki?
S: Contiki är ett litet, fritt operativsystem med öppen källkod.
F: Vad utvecklades Contiki för?
S: Contiki utvecklades för att användas i 8-bitarsdatorer och inbyggda system.
F: Har Contiki ett grafiskt användargränssnitt?
S: Ja, Contiki har ett grafiskt användargränssnitt.
F: Hur mycket RAM-minne behövs för en fullständig installation av Contiki?
S: En fullständig installation av Contiki kräver ca 30 kilobyte RAM-minne.
F: Vad är ursprunget till namnet Contiki?
S: Namnet Contiki kommer från Thor Heyerdahls berömda Kon-Tiki-flotte.
F: Vem utvecklade grundkärnan och de flesta av kärnfunktionerna i Contiki?
S: Adam Dunkels utvecklade den grundläggande kärnan och de flesta av Contikis kärnfunktioner vid gruppen för inbyggda nätverkssystem vid Svenska institutet för datavetenskap.
F: Är Contiki ett betalt operativsystem?
S: Nej, Contiki är ett operativsystem med fri och öppen källkod.
Relaterade artiklar
Författare
AlegsaOnline.com Contiki — lättviktsoperativsystem för inbyggda nätverk Leandro Alegsa
URL: https://sv.alegsaonline.com/art/22759
Källor
- hstein.trix.net : hstein.trix.net/contiki
