Contiki — neliela atvērtā pirmkoda operētājsistēma iegultajām ierīcēm (8-bit)

Contiki — atvērtā pirmkoda, zema resursu izmantošana operētājsistēma 8‑bit iegultajām ierīcēm: GUI, pilna instalācija ~30 KB RAM, ideāla IoT, retro un mazas jaudas projektiem.

Autors: Leandro Alegsa

Contiki ir neliela, atklātā pirmkoda bezmaksas operētājsistēma. Tā tika izstrādāta izmantošanai 8 bitu datoros un iegultajās sistēmās. Tai ir grafiskā lietotāja saskarne, un pilnai instalācijai ir nepieciešams aptuveni 30 kilobaiti RAM.

Nosaukums Contiki cēlies no Tora Heijerdāla slavenā Kon-Tiki plosta.

Pamata kodolu un lielāko daļu pamatfunkciju izstrādāja Ādams Dunkelss (Adam Dunkels) Zviedrijas Datorzinātnes institūta Tīkla iegulto sistēmu grupā.

Apraksts un galvenās īpašības

Contiki ir veidota kā ļoti resursus taupoša sistēma, piemērota ierīcēm ar ierobežotu atmiņu un skaitļošanas jaudu. Galvenās iezīmes:

  • Viegls kodols: notikumu (event-driven) pamatstruktūra ar zemu atmiņas patēriņu.
  • Protothreads: viegla, "stackless" pavedienu (threads) abstrakcija, kas ļauj rakstīt lineāru kodu bez pilnas atsevišķas steka atdalīšanas katram pavedienam.
  • Tīkla kaudze: iekļauts ļoti kompakts TCP/IP steks (uIP) un vēlākās versijās arī IPv6/6LoWPAN atbalsts un viegli transporta mehānismi bezvadu sensornetiem.
  • Vienkārša grafiskā saskarne: ierobežotām ierīcēm pielāgots logu un pieteikumu modelis, kas darbojas uz atbalstītajām platformām.
  • Modularitāte: lietojumprogrammas un pakalpojumi (piem., tīmekļa serveri, klienti, sensoru lietotnes) var tikt iekļauti pēc nepieciešamības, lai saglabātu nelielu ieņemamo atmiņu.

Arhitektūra un programmēšana

Contiki ir rakstīta galvenokārt C valodā, kas ļauj viegli portēt to uz dažādām mikroprocesoru arhitektūrām. Tā apvieno notikumu vadītu pieeju ar protothreads, kas nodrošina vieglu konkurenci bez lielām atmiņas izmaksām. Programmētāji var izstrādāt lietotnes, kas darbojas kā atsevišķi procesi ar ziņojumu apmaiņu un notikumu apstrādi.

Atbalstītās platformas

Contiki sākotnēji tika izstrādāta 8 bitu datoriem, taču tika portēta arī uz plašāku mikrokontrolleru klāstu. Praksē to izmanto uz:

  • 8 bitu mikrokontrolieriem (piemēram, AVR ģimene)
  • 16/32 bitu ierīcēm, kas izmanto zemos resursus, sensoru mezgliem un IoT ierīcēm
  • izmēģinājumu un izpētes platformām, kur nepieciešamas zemas nianses resursu prasības

Konkrētas atbalsta detaļas var atšķirties starp Contiki versijām un portiem; daudzi projekti pielāgo un optimizē sistēmu savai aparatūrai.

Tīkla funkcionalitāte un lietojumi

Viens no Contiki stiprajiem punktiem ir kompakts tīkla atbalsts. Iekļautais uIP steks nodrošina pamata TCP/UDP savienojumu funkcionalitāti, kas ļauj ierīcēm darboties kā viegli tīmekļa serveri vai tīkla klienti. Papildu moduļi un paplašinājumi bieži nodrošina atbalstu energoefektīvām bezvadu protokolu shēmām, 6LoWPAN un citiem IoT risinājumiem.

Lietojumi un nozīme

Contiki plaši tiek izmantota pētniecībā, demonstrācijās un mazos IoT prototipos — tur, kur nepieciešams palaist tīkla lietojumprogrammas uz ierobežotas aparatūras. Tā ir populāra izvēle sensoru tīkliem, vides monitorēšanai, mājas automatizācijas eksperimentiem un citiem iegultajiem risinājumiem, kuriem svarīgs zems atmiņas un enerģijas patēriņš.

Licence un kopiena

Contiki ir pieejama kā atklātā pirmkoda projekts, kas ļauj izplatīt un pielāgot kodu komerciālām vai akadēmiskām vajadzībām. Projektu uztur un papildina gan sākotnējais autors un pētniecības iestādes, gan brīvprātīgie izstrādātāji un kopienas dalībnieki. Tas padara Contiki par elastīgu risinājumu pētniecībai un mazām lauka ierīcēm.

Ņemot vērā Contiki nelielo izmēru un modularitāti, tās funkcionalitāte un atbalstītie protokoli var atšķirties starp dažādām versijām un portiem, tāpēc praktiskai lietošanai ieteicams pārbaudīt konkrētās versijas dokumentāciju un pieejamos piemērus.

C128 ports ar 80 norādēmZoom
C128 ports ar 80 norādēm

Funkcijas

Pilna Contiki instalācija ietver šādas funkcijas:

  • Daudzuzdevumu kodols
  • Pēc izvēles lietojumprogrammas iepriekšējas izmantošanas daudzpavedienu lietojumprogramma
  • Protothreads
  • TCP/IP tīklošana
  • Logu sistēma un GUI
  • Tīkla attālais displejs, izmantojot virtuālo tīkla skaitļošanu
  • Tīmekļa pārlūkprogramma (tiek apgalvots, ka tā ir pasaulē mazākā).
  • Personīgais tīmekļa serveris
  • Vienkāršs telnet klients
  • Ekrānsaudzētājs

Plānotas vēl citas lietojumprogrammas:

Porti

Contiki operētājsistēma ir pārnesta vai tiek pārnesta uz šādām sistēmām:

  • Datori:
    • Apple II ģimene*
    • Atari 8 bitu*
    • Atari ST
    • Atari portfelis
    • Casio Pocketview
    • Commodore PET*
    • Commodore VIC 20*
    • Commodore 64*
    • Commodore 128*
    • GP32
    • PC-6001
    • Sharp Wizard
    • x86 Unix līdzīgās sistēmās, izmantojot GTK+, kā arī tieši izmantojot X Window System.

* uz cc65 balstīta izstrāde

  • Videospēļu konsoles:
  • Rokas spēļu konsoles:
    • Nintendo Game Boy
    • Nintendo Game Boy Advance

Saistītās lapas

Mediji, kas saistīti ar Contiki, vietnē Wikimedia Commons

Jautājumi un atbildes

J: Kas ir Contiki?


A: Contiki ir neliela, atklātā pirmkoda bezmaksas operētājsistēma.

Q: Kam tika izstrādāta Contiki?


A: Contiki tika izstrādāta izmantošanai 8 bitu datoros un iegultajās sistēmās.

J: Vai Contiki ir grafiskā lietotāja saskarne?


A: Jā, Contiki ir grafiskā lietotāja saskarne.

J: Cik daudz RAM ir nepieciešams, lai pilnībā instalētu Contiki?


A: Pilnai Contiki instalācijai ir nepieciešami aptuveni 30 kilobaiti RAM.

J: Kāda ir Contiki nosaukuma izcelsme?


A: Nosaukums Contiki cēlies no slavenā Tora Heijerdāla Kon-Tiki plosta.

J: Kas izstrādāja Contiki kodolu un lielāko daļu pamatfunkciju?


A.: Adam Dunkels izstrādāja Contiki kodola pamatkodolu un lielāko daļu pamatfunkciju Zviedrijas Datorzinātnes institūta Tīkla iegulto sistēmu grupā.

J: Vai Contiki ir maksas operētājsistēma?


A: Nē, Contiki ir bezmaksas un atvērtā pirmkoda operētājsistēma.


Meklēt
AlegsaOnline.com - 2020 / 2025 - License CC3