Contiki: pieni avoimen lähdekoodin käyttöjärjestelmä sulautetuille

Contiki: kevyt avoimen lähdekoodin käyttöjärjestelmä sulautetuille ja 8‑bittisille — graafinen käyttöliittymä, ~30 KB RAM-vaatimus. Tutustu pieneen, tehokkaaseen RTOS‑ratkaisuun.

Tekijä: Leandro Alegsa

Contiki on pieni, avoimen lähdekoodin ilmainen käyttöjärjestelmä, joka on suunniteltu sulautettuihin laitteisiin ja 8-bittisille alustoille. Se tarjoaa kevyen tapahtumapohjaisen ytimen, tuen "protothread"-tyyppisille kevythiloille sekä peruspalvelut kuten ajastimet, tiedostojärjestelmän ja verkko-pinon. Contiki sisältää myös yksinkertaisen graafisen käyttöliittymän (CTK), ja täysi asennus voi toimia jo noin 30 kilotavun RAM-muistilla riippuen käytetyistä ominaisuuksista.

Nimi Contiki tulee Thor Heyerdahlin kuuluisasta Kon-Tiki-lautasta — nimivalinta viittaa järjestelmän kevyyteen ja yksinkertaisuuteen, kuten lautan suunnitteluun.

Perusytimen ja monet ydintoiminnoista kehitti Adam Dunkels Ruotsin tietotekniikan instituutin (SICS) Networked Embedded Systems -ryhmässä. Dunkels on myös kehittänyt Contikin kevyet protothreadit ja uIP-verkkopinon alkuperäiset versiot.

Keskeiset ominaisuudet

  • Tapahtumapohjainen ydin, jolla on pieni muistijalanjälki.
  • Protothreadit: kevyt, pinottomien säikeiden kaltainen rakenne, joka helpottaa samanaikaisten tehtävien kirjoittamista ilman täysimittaista monisäikeisyyttä.
  • Verkkoprotokollat: tuki TCP/IP:lle (uIP), Rime-protokollapino pienimuotoisia verkkoja varten sekä tuesta IPv6/6LoWPAN-tyyppisille teknologioille nykyaikaisemmissa versioissa ja haarukoissa.
  • Energiansäästöominaisuudet: radiotaajuuden hallinta, radio duty-cycling -mekanismeja ja keinoja vähentää virrankulutusta langattomissa anturiverkoissa.
  • Liitettävyys ja laajennettavuus: sovellusrajapinnat sensorien, aktuaattorien ja ulkoisten moduulien hallintaan.
  • Simulointi: Cooja-simulaattori (osa Contiki-ympäristöä) mahdollistaa verkkojen ja laitteiden simuloinnin ja emuloinnin kehityksen ja testauksen aikana.

Verkko ja protokollat

Contiki sisältää useita verkkokomponentteja, joilla toteutetaan kevyitä verkkoratkaisuja sulautetuille laitteille. Alkuperäiseen Contikiin kuuluvat uIP (pieni TCP/IP-pinon implementaatio) ja Rime (modulaarinen protokollapino, joka on suunniteltu sensori- ja sulautettuihin verkkoihin). Myöhemmissä kehitysversioissa ja Contiki-kaarissa on lisätty tuki IPv6:lle, 6LoWPANille, CoAP:lle ja muille IoT-protokollille.

Alustat ja kehitystyökalut

Contikiä on portattu monille sulautetuille alustoille, kuten AVR-, TI MSP430- ja ARM-pohjaisille mikro-ohjaimille. Kehitystä voidaan tehdä myös paikallisella koneella käyttämällä "native"-portausta tai testata verkkoja Cooja-simulaattorissa, joka pystyy emuloimaan useita eri laitearkkitehtuureja ja radio-olosuhteita. Contiki-ympäristöön kuuluu työkaluja käännökseen, virheenkorjaukseen ja verkonprofilointiin.

Käyttökohteet ja vaikutus

Contikiä on käytetty laajasti tutkimuksessa, opetuksessa ja kaupallisissa prototyypeissä, erityisesti anturiverkoissa (WSN), langattomissa IoT-laitteissa ja ympäristön monitoroinnissa. Sen pieni muistivaatimus ja modulaarinen rakenne tekevät siitä suositun valinnan laitteille, joilla on rajalliset resurssit.

Kehitys ja nykysuunta

Alkuperäisen Contikin lisäksi on olemassa aktiivisia haarukoita ja jatkokehitysprojekteja, kuten Contiki-NG (Next Generation), jotka tuovat parempaa tukea modernille IPv6-pohjaiselle IoT-ekosysteemille, tietoturvalisäyksille ja laajemmalle laitevalikoimalle. Yhteisö ja tutkimusryhmät ylläpitävät koodia, dokumentaatiota ja esimerkkisovelluksia, mikä pitää Contikin relevanttina vaihtoehtona kevyille sulautetuille alustoille.

Jos haluat, voin lisätä esimerkkejä Contiki-sovelluksista, kertoa tarkemmin Cooja-simulaattorin käytöstä tai luetella yleisimmin tuetut laitealustat.

C128-portti, jossa on 80-merkintäZoom
C128-portti, jossa on 80-merkintä

Ominaisuudet

Contikin täydellinen asennus sisältää seuraavat ominaisuudet:

  • Monitehtäväinen ydin
  • Valinnainen sovelluskohtainen ennakoiva monisäikeistäminen (pre-emptive multithreading)
  • Protothreads
  • TCP/IP-verkko
  • Ikkunointijärjestelmä ja graafinen käyttöliittymä
  • Verkkoon kytketty etänäyttö virtuaalisen verkkolaskennan avulla
  • Verkkoselain (jonka väitetään olevan maailman pienin).
  • Henkilökohtainen verkkopalvelin
  • Yksinkertainen telnet-asiakasohjelma
  • Näytönsäästäjä

Suunnitteilla on myös muita sovelluksia:

Portit

Contiki-käyttöjärjestelmä on siirretty tai ollaan siirtämässä seuraaviin järjestelmiin:

  • Tietokoneet:
    • Apple II -perhe*
    • Atari 8-bit*
    • Atari ST
    • Atari Portfolio
    • Casio Pocketview
    • Commodore PET*
    • Commodore VIC 20*
    • Commodore 64*
    • Commodore 128*
    • GP32
    • PC-6001
    • Sharp Wizard
    • x86-pohjaiset Unixin kaltaiset järjestelmät, GTK+:n päällä sekä suoraan X Window System -järjestelmää käyttäen.

* cc65-pohjainen kehitys

  • Kannettavat pelikonsolit:
    • Nintendo Game Boy
    • Nintendo Game Boy Advance

Aiheeseen liittyvät sivut

Contikiin liittyvä media Wikimedia Commonsissa

Kysymyksiä ja vastauksia

K: Mikä on Contiki?


V: Contiki on pieni, avoimen lähdekoodin ilmainen käyttöjärjestelmä.

K: Mitä varten Contiki on kehitetty?


V: Contiki kehitettiin käytettäväksi 8-bittisissä tietokoneissa ja sulautetuissa järjestelmissä.

K: Onko Contikissa graafinen käyttöliittymä?


V: Kyllä, Contikissa on graafinen käyttöliittymä.

K: Kuinka paljon RAM-muistia tarvitaan Contikin täydelliseen asennukseen?


V: Contikin täydellinen asennus tarvitsee noin 30 kilotavua RAM-muistia.

K: Mistä nimi Contiki on peräisin?


V: Nimi Contiki tulee Thor Heyerdahlin kuuluisasta Kon-Tiki-lautasta.

K: Kuka kehitti Contikin perusytimen ja useimmat sen ydintoiminnot?


V: Adam Dunkels kehitti Contikin perusytimen ja suurimman osan sen ydintoiminnoista Ruotsin tietotekniikan instituutin Networked Embedded Systems -ryhmässä.

K: Onko Contiki maksullinen käyttöjärjestelmä?


V: Ei, Contiki on ilmainen ja avoimen lähdekoodin käyttöjärjestelmä.


Etsiä
AlegsaOnline.com - 2020 / 2025 - License CC3