Contiki - Уикипедия - Contiki

Contiki
Contiki-ipv6-rpl-cooja-simulation.png
Ubuntu жүйесінің скриншоты, Cooja Contiki желілік тренажерында IPv6-RPL-6LoWPAN желісін құрайтын 41 түйінде жұмыс істейтін Contiki 2.6 көрсетілген.
ӘзірлеушіАдам Данкельс
Жұмыс жағдайыАғымдағы
Дереккөз моделіАшық ақпарат көзі
Бастапқы шығарылым10 наурыз 2003 ж; 17 жыл бұрын (2003-03-10)
Соңғы шығарылым3.0 / 26 тамыз 2015; 5 жыл бұрын (2015-08-26)
ЛицензияBSD
Ресми сайтwww.contiki-os.org

Contiki болып табылады операциялық жүйе желілік, жады шектеулі жүйелер үшін төмен қуатты сымсыз байланысқа арналған Интернет заттары құрылғылар. Contiki-дің кең қолданысына көше жарығы, ақылды қалалар үшін дыбыстық бақылау, радиациялық бақылау және дабылды жүйелер жатады.[1] Бұл ашық бастапқы бағдарламалық жасақтама астында шығарылды BSD лицензиясы.

Contiki авторы Адам Данкельс 2002 жылы[2] және оны Texas Instruments, Atmel, Cisco, бүкіл әлем бойынша әзірлеушілер тобы дамыта түсті. ENEA, ETH Цюрих, Redwire, Ахен университеті, Оксфорд университеті, SAP, Sensinode, Швед информатика институты, ST Microelectronics, Zolertia және басқалары.[3] Contiki өзінің танымал TCP / IP стегі мен оқиғаларға негізделген ядроның алдын-ала жеңіл жоспарлауының арқасында танымал болды. [4] бұл IOT үшін өте мотивациялық мүмкіндік. Аты Contiki шыққан Тор Хейердал атақты Кон-Тики сал.

Contiki көп тапсырманы және кіріктірілгенді қамтамасыз етеді Internet Protocol Suite (TCP / IP стегі), оған 10 ғана қажет килобайт туралы жедел жад (RAM) және 30 килобайт тек оқуға арналған жад (ТҰРАҚТЫ ЖАДТАУ ҚҰРЫЛҒЫСЫ).[1] Толық жүйе, оның ішінде а графикалық интерфейс, шамамен 30 килобайт жедел жады қажет.[5]

Жақында жаңа филиал құрылды, белгілі Contiki-NG: Жаңа ұрпақ IoT құрылғыларына арналған ОЖ

Жабдық

Contiki аппараттық құрылғылардың қатаң шектеулі түрлерінде жұмыс істеуге арналған жады, күш, өңдеу қуаты және байланыс өткізу қабілеттілігі. Кәдімгі Contiki жүйесінде жадының килобайт реті, милливатт бойынша қуат бюджеті, мегагерцпен өлшенетін өңдеу жылдамдығы және жүздеген килобит / секунд ретіндегі байланыс өткізу қабілеті бар. Мұндай жүйелерге көптеген түрлері жатады ендірілген жүйелер, және ескі 8 бит компьютерлер.

Желі

Contiki желінің үш механизмін ұсынады: uIP TCP / IP стегі,[6] қамтамасыз етеді IPv4 желілік, uIPv6 стегі,[7] қамтамасыз етеді IPv6 Rime стегі, бұл қуаттылығы төмен сымсыз желілерге арналған жеңілдетілген желілік тапсырыс хаттамаларының жиынтығы. IPv6 стегі Cisco-мен үлес қосты және оны шығарған кезде IPv6-дің ең кішкентай стегі болды IPv6 дайын сертификаттау.[8] IPv6 стегінде сонымен қатар бар Төмен қуатты және шығынды желілерге арналған маршруттау хаттамасы (RPL) аз қуатты IPv6 желілері үшін маршруттау хаттамасы және 6LoWPAN тақырыбын сығымдау және бейімдеу қабаты IEEE 802.15.4 сілтемелер.

Rime - бұл IPv4 немесе IPv6 стектерінің үстіңгі қабаты тыйым салынған кезде қолдануға арналған баламалы желілік стек. Rime стегі төмен қуатты сымсыз жүйелер үшін байланыс примитивтерінің жиынтығын ұсынады. Әдепкі примитивтер - бұл бір-хоптық бір реттік, бір-хоптық хабар тарату, көп-хоптық біркасттық, желіні су басу және мекен-жайсыз мәліметтер жинау. Примитивтер өздігінен қолданыла алады немесе күрделі протоколдар мен механизмдерді қалыптастыру үшін біріктірілуі мүмкін.[9]

Төмен қуатты жұмыс

Көптеген Contiki жүйелерінде электр қуаты шектеулі. Батареямен жұмыс істейтін сымсыз датчиктер ұзақ жылдар бойы бақылаусыз жұмыс істеуі керек және батареяларды зарядтауға немесе ауыстыруға аз қаражат қажет. Contiki өзі жұмыс істейтін жүйелердің қуат тұтынуын азайтудың бірқатар механизмдерін ұсынады. Радионың төмен қуатты жұмысына қол жеткізудің әдепкі механизмі ContikiMAC деп аталады.[10] ContikiMAC көмегімен түйіндер аз қуатты режимде жұмыс істей алады және олар радио хабарларды қабылдай алады және таратады.

Модельдеу

Contiki жүйесіне Contiki түйіндерін имитациялайтын Cooja деп аталатын сенсорлық тренажер кіреді.[11] Түйіндер келесі үш кластың біріне жатады: а) эмитирленген Cooja түйіндері, б) модельдеу хостында құрастырылған және орындалған Contiki коды, немесе c) Java түйіндері, мұнда түйіннің әрекеті Java класы ретінде орындалуы керек. Кужаның бір модельдеуінде үш кластың кез келгенінің сенсор түйіндерінің қоспасы болуы мүмкін. Еліктелген түйіндерді сонымен қатар Контик емес түйіндерді имитацияланған желіге қосу үшін пайдалануға болады.

Contiki 2.6-да платформалар TI MSP430 және Atmel AVR микроконтроллерлерді эмуляциялауға болады.

Бағдарламалау моделі

Шағын жад жүйелерінде тиімді жұмыс істеу үшін Contiki бағдарламалау моделі негізделген протекторлар.[12][13] Қарапайым жіп - бұл екеуінің де мүмкіндіктерін бөлісетін жадты тиімді бағдарламалау абстракциясы көп жұмыс және оқиғаларға негізделген бағдарламалау әрбір протекторлық жадтың төмен жадына қол жеткізу. Ядро ішкі немесе сыртқы оқиғаға жауап ретінде процестің протекторын шақырады. Ішкі оқиғаларға мысал ретінде от сөндіретін таймерлерді немесе басқа процестерден хабарламаларды орналастыруды алуға болады. Сыртқы оқиғаларға мысал ретінде радио көршісінен келетін немесе кіріс дестелерді іске қосатын датчиктерді алуға болады.

Протекторлар бірлесіп жоспарланған. Осылайша, Contiki процесі әрдайым бақылауды ядроларға белгілі бір уақыт аралығында қайтарып отыруы керек. Contiki процестері оқиғаларды күтуді бұғаттау үшін арнайы прототоқұрылымды қолдануы мүмкін, сонымен қатар әрбір оқиғаны шақыру арасындағы ядроға бақылау береді.

Ерекшеліктер

Скриншоты VNC серверде жұмыс істейді Atmel AVR Портикі порты

Contiki әр процедураға қосымша алдын-ала көпжоспарлауды қолдайды, процесаралық байланыс оқиғалар арқылы хабарлама, сонымен қатар міндетті емес қолдану графикалық интерфейс (GUI) ішкі жүйесі немесе жергілікті жалғанған терминалдарға арналған графикалық қолдау немесе желілік виртуалды дисплей Виртуалды желіні есептеу (VNC) немесе Telnet арқылы.

Contiki толық қондырғысында келесі мүмкіндіктер бар:

Contiki танымал қолдайды SSL / TLS сияқты кітапханалар wolfSSL, оның 3.15.5 шығарылымына порт кіреді.[14]

Порттар

Контики Commodore 64.

Contiki операциялық жүйесі келесі жүйелерге жіберіледі:

Микроконтроллерлер

Компьютерлер

Ойын консолі

Сондай-ақ қараңыз

Ескертулер

  1. ^ а б c г. e f ж сағ мен cc65 негізделген даму

Әдебиеттер тізімі

  1. ^ а б Contiki OS.
  2. ^ Contiki: IP сенсорлық желілерге келтіру
  3. ^ «Қауымдастық», Contiki OS.
  4. ^ Dunkels, Adam (2004), «Contiki - кішігірім желілік датчиктерге арналған жеңіл және икемді операциялық жүйе», Жергілікті компьютерлік желілер бойынша IEEE 29-шы Халықаралық конференциясының материалдары., 455-462 бб.
  5. ^ Ашық жерде: Интернетті басқаратын аз танымал ашық бастапқы ОС
  6. ^ Дюнкельс, Адам (мамыр 2003 ж.), «8 биттік архитектура үшін толық TCP / IP», Мобильді жүйелер, қосымшалар мен қызметтер (MobiSys) бойынша ACM / Usenix бірінші халықаралық конференциясының материалдары., Сан-Франциско
  7. ^ Дерви, Матильда; Абилье, Джульен; Веттервальд, Патрик; О'Флинн, Колин; Леверетт, Блейк; Гноске, Эрик; Видалес, Майкл; Муллиган, Джеофф; Цифтес, Николас; Фин, Никлас; Dunkels, Adam (қараша, 2008 ж.), «IPv6 сенсорлық желілерін дайындау», Желіге енгізілген сенсорлық жүйелер бойынша алтыншы ACM конференциясының материалдары (SenSys) (постер сессиясы), Роли, NC, АҚШ: ACM
  8. ^ Жаңалықтар бөлмесі, Cisco, 2008 ж.
  9. ^ Дункельс, Адам; Эстерлинд, Фредрик; Ол, Zhitao (2007 ж. Қараша), «Сымсыз сенсорлық желілер үшін адаптивті байланыс архитектурасы», Желіге енгізілген сенсорлық жүйелер бойынша бесінші ACM конференциясының материалдары (SenSys), Сидней, AU.
  10. ^ Дункельс, Адам, ContikiMAC радиосы бойынша велосипедпен жүру хаттамасы (PDF ).
  11. ^ «Бастау», Contiki OS.
  12. ^ Дункельс, Адам; Шмидт, Оливер; Войгт, Тиемо; Али, Муниб (2006 ж. Қараша), «Протоколдар: жадымен шектелген ендірілген жүйелердің оқиғаларға негізделген бағдарламалауын жеңілдету», Кіріктірілген желілік сенсорлық жүйелер бойынша төртінші ACM конференциясының материалдары (SenSys), Боулдер, CO, АҚШ Дюнкельс, А .; Шмидт, О .; Войгт, Т .; Али, М. (2006). «Протоколдар». Кіріктірілген желілік сенсорлық жүйелер бойынша 4-ші халықаралық конференция материалдары - Sen Sys '06. б. 29. дои:10.1145/1182807.1182811. ISBN  1595933433. (PDF, Презентация слайдтары ).
  13. ^ «Протекторлық жіп», Код, Google.
  14. ^ «wolfSSL CONTIKI OS порты - wolfSSL». 2018-12-18. Алынған 2019-01-09.
  15. ^ http://sourceforge.net/p/contiki/mailman/message/31753844/
  16. ^ Штейн, Н, Contiki-ді Windows астында іске қосу, Trix, мұрағатталған түпнұсқа 2003-12-09 ж.

Сыртқы сілтемелер