Contiki: majhen odprtokodni operacijski sistem za 8-bitne in vgrajene sisteme
Contiki je majhen odprtokodni brezplačni operacijski sistem. Razvit je bil za uporabo v 8-bitnih računalnikih in vgrajenih sistemih. Ima grafični uporabniški vmesnik in za popolno namestitev potrebuje približno 30 kilobajtov pomnilnika RAM.
Ime Contiki izhaja iz slavnega splava Kon-Tiki Thora Heyerdahla.
Osnovno jedro in večino osrednjih funkcij je razvil Adam Dunkels v skupini za omrežne vgrajene sisteme na Švedskem inštitutu za računalništvo.
Ključne lastnosti
- Majhna poraba virov: jedro in osnovne storitve lahko delujejo v redkih desetkih kilobajtov RAM-a, zaradi česar je Contiki primeren za zelo omejene naprave.
- Dogodkovno usmerjeno jedro z lahkimi nitmi (protothreads): Contiki uporablja protothreads — lahek mehanizem za sočasnost, ki omogoča preprosto pisanje neblokirajoče kode brez polnih niti in velikega steka.
- Omrežne zmožnosti: vsebuje lahke TCP/IP rešitve (uIP), lasten komunikacijski sloj Rime in podporo za IPv6/6LoWPAN v novejših različicah.
- Podpora za uporabniški vmesnik: vsebuje preprost grafični nabor orodij (CTK) za naprave z majhnimi zasloni in kontrolniki.
- Dinamično nalaganje programov: omogoča nalaganje in zamenjavo aplikacij med izvajanjem na nekaterih platformah, kar poenostavi razvoj in posodabljanje.
Omrežje in protokoli
Adam Dunkels je v okviru Contikija razvil tudi uIP, minimalistični TCP/IP sklad, zasnovan za delovanje na zelo omejenih napravah. Contiki ponuja tudi Rime — lahek komunikacijski sloj, ki olajša razvoj protokolov za senzorna omrežja. V novejših izvedbah in v projektu Contiki-NG so vključene sodobne tehnologije za Internet stvari (IoT) kot so IPv6, 6LoWPAN, RPL in protokoli aplikacijskega sloja, na primer CoAP.
Primeri uporabe in platforme
Contiki se pogosto uporablja v raziskavah senzornih omrežij, IoT prototipiranju in v izobraževanju. Deluje na različnih arhitekturah in platformah, med njimi so 8-bitni mikrokontrolerji (npr. AVR), TI MSP430, ARM Cortex-M in brezžične radijske platforme (npr. IEEE 802.15.4 čipi). Zaradi majhnih zahtev je primeren za naprave z omejenimi viri, kot so baterijsko napajana senzorika in vgrajeni kontrolerji.
Orodja za razvoj in simulacija
Pri razvoju za Contiki se pogosto uporablja simulator Cooja, ki omogoča simulacijo celih omrežij naprava na osebnem računalniku in testiranje omrežnih protokolov, aplikacij in energetskih profilov brez potrebe po veliki fizični strojni opremi. Contiki vključuje tudi zbirko knjižnic, orodij za debugging in podporo za različne razvojne plošče.
Contiki-NG in sodobni razvoj
Contiki-NG (Next Generation) je sodobnejše nadaljevanje originalnega Contikija, osredotočeno na IoT in IPv6. Ponudi izboljšano podporo za sodobne protokole (6LoWPAN, RPL, CoAP), varnostne izboljšave in aktivno skupnost razvijalcev. Kljub temu ostaja filozofija enaka: minimalna poraba virov in primernost za vgrajene in senzorske naprave.
Licenca in skupnost
Contiki je izdan kot programska oprema z odprto kodo (pod BSD-podobno licenco), kar omogoča prost dostop do izvorne kode, prilagajanje in uporabo v raziskavah in komercialnih projektih. Zanj skrbijo tako univerzitetne skupine kot tudi skupnosti razvijalcev in podjetij, ki ga uporabljajo v IoT rešitvah.
Zaključek
Contiki je primeren za projekte, kjer so omejitve strojne opreme kritične, hkrati pa je potrebna zmogljiva omrežna podpora in možnost hitrega prototipiranja. Zaradi svoje fleksibilnosti, nizke porabe virov in razširljivosti ostaja priljubljena platforma pri raziskovalcih in razvijalcih IoT naprav.


Vrata C128 z navedbami 80
Značilnosti
Popolna namestitev programa Contiki vključuje naslednje funkcije:
- Jedro za večopravilnost
- Izbirno večnitno predčasno branje za posamezno aplikacijo
- Protothreads
- Omrežje TCP/IP
- Okenski sistem in grafični vmesnik
- Omrežni prikaz na daljavo z uporabo virtualnega omrežnega računalništva
- Spletni brskalnik (ki naj bi bil najmanjši na svetu)
- Osebni spletni strežnik
- Enostavni odjemalec telnet
- Ohranjevalnik zaslona
Načrtovane so še naslednje aplikacije:
- program za elektronsko pošto
- odjemalec Internet Relay Chat
Pristanišča
Operacijski sistem Contiki je bil prenesen ali je v fazi prenosa na naslednje sisteme:
- Računalniki:
- Družina Apple II*
- Atari 8-bit*
- Atari ST
- Atarijev portfelj
- Casio Pocketview
- Commodore PET*
- Commodore VIC 20*
- Commodore 64*
- Commodore 128*
- GP32
- PC-6001
- Oster čarovnik
- na sistemih, podobnih Unixu, ki temeljijo na x86, na podlagi GTK+ in neposredno z uporabo okenskega sistema X Window System.
* Razvoj na podlagi cc65
- Konzole za videoigre:
- Pogon računalnika
- Sega Dreamcast
- Sony PlayStation
- ročne igralne konzole:
- Nintendo Game Boy
- Nintendo Game Boy Advance
- Mikrokrmilniki:
- Atmel AVR
- TI MSP430
Sorodne strani
Mediji, povezani s Contikijem, na Wikimedia Commons
Vprašanja in odgovori
V: Kaj je Contiki?
O: Contiki je majhen odprtokodni brezplačni operacijski sistem.
V: Za kaj je bil Contiki razvit?
O: Contiki je bil razvit za uporabo v 8-bitnih računalnikih in vgrajenih sistemih.
V: Ali ima Contiki grafični uporabniški vmesnik?
O: Da, Contiki ima grafični uporabniški vmesnik.
V: Koliko pomnilnika RAM je potrebnega za popolno namestitev programa Contiki?
O: Celotna namestitev programa Contiki potrebuje približno 30 kilobajtov pomnilnika RAM.
V: Kakšen je izvor imena Contiki?
O: Ime Contiki izvira iz slavnega splava Kon-Tiki, ki ga je izdelal Thor Heyerdahl.
V: Kdo je razvil osnovno jedro in večino osrednjih funkcij programa Contiki?
O: Adam Dunkels je razvil osnovno jedro in večino osrednjih funkcij programa Contiki v skupini Networked Embedded Systems na Švedskem inštitutu za računalništvo.
V: Ali je Contiki plačljiv operacijski sistem?
O: Ne, Contiki je brezplačen in odprtokodni operacijski sistem.