![]() عکسی از اجرای کانتیکی در محیطی گرافیکی بر روی کمودور ۶۴. | |
توسعهدهنده | Adam Dunkels |
---|---|
وضعیت توسعه | Current |
مدل منبع | متنباز |
تاریخ اولین انتشار | ۱۰ مارس ۲۰۰۳ |
وبگاه رسمی |
کانتیکی (انگلیسی: Contiki) یک سیستم عامل متن باز است که برای وسایل اینترنت اشیاء طراحی شده و هماکنون تا حد بسیاری پورتابل است به طوری که رایانههای بسیار قدیمی (برای مثال آتاری اس تی) و ریزکنترلگرها و دستگاههای AVR (مانند بردهای آردوینو) و بسیاری دیگر را پشتیبانی کرده و بر عکس سیستم عاملهایی مانند نتبیاسدی، برای پردازندههای بدون واحد مدیریت حافظه طراحی شدهاست. این سیستم عامل ابتدا در سال ۲۰۰۲ توسط آدام دانکلز طراحی و ساخته شد و پس از آن توسط عده زیادی از توسعه دهنگانی از سراسر دنیا و از شرکتهایی مثل تگزاس اینسترومنتس، اتمل، سیسکو سیستمز، دانشگاه آکسفورد و بسیاری دیگر توسعه میابد.
این سیستم عامل به شکل پیشفرض از مجموعه پروتکل اینترنت و چندکارگی پشتیبانی میکند و میتواند تنها بر روی یک حافظه فقط خواندنی ۳۰ کیلوبایتی بارگیری شده و با ۱۰ کیلوبایت حافظه تصادفی شروع به کار با واسط گرافیکی کاربر کند.
یک مثال از استفادههای کانتیکی در سامانههای روشنایی شهری، حسگرهای امواج رادیویی و سامانههای هشدار است
کانتیکی تا کنون برای سختافزارهایی سازگار شدهاست که همزمان مقید به حافظه و توان و قدرت پردازش و پهنای باند ارتباطی به اندازه دو مورد اول باشند. یک سامانه بر پایه کانتیکی معمولاً حافظهای در مقیاس کیلوبایت، توانی در مقیاس میلی وات و فرکانس پردازشی در مقیاس چندین مگاهرتز و صدها کیلوبیت بر ثانیه پهنای باند میطلبد. این رده از سختافزارها شامل سیستمهای توکار معمول تا کامپیوترهای قدیمی ۸-بیت میشود.[۱]
کانتیکی سه ساختار شبکه را شامل میشود:
این پشته یکی از مدرنترین پشته هاییست که TCP/IP کامل را بر روی سیستمهای ۸-بیت فراهم میکند
این پشته توسط سیسکو توسعه میابد و در زمان رو نمایی کوچکترین پشتهای بود که از IPV6 پشتیبانی میکرد
به منظور توسعه یک برنامه برای سیستم عامل کانتیکی، ابتدا باید یک فرایند را تعریف کنیم. ساختار اساسی یک برنامه به شرح زیر است:
# include "contiki.h" //همواره این کتابخانه باید گنجانده شود
PROCESS(Example, "Example process"); //این یک پروسه را تعیین میکند
AUTOSTART_PROCESSES(&Example); //این پروسهها را همزمان با بالا آمدن سیستم آغاز میکند
PROCESS_THREAD(Example, ev, data)
{
PROCESS_BEGIN(); // آغاز پروسه را تعریف میکند
while(1){
PROCESS_WAIT_EVENT ();
// برنامه
}
PROCESS_END();
}
makefileها هم که برنامهها را نصب مینمایند ساختاری شبیه به این دارند
CONTIKI = ../.. // جاهای خالی بستگی به محل قرار گرفتن پروژه دارند
all: app-name
include $(CONTIKI)/Makefile.include
بسیاری از سامانههای بر پایه کانتیکی به طرز تحسین برانگیزی کم مصرف هستند. این سیستم عامل میتواند حسگرهایی را کنترل کند که با باتری کار کرده و چندین ماه نیز به کار ادامه دهند. کانتیکی سامانههایی را فراهم میآورد که برق مصرفی وسایلی که روی آنها اجرا میشود را پایین بیاورد. برای مثال مکانیزم اصلی برای ارتباطات رادیویی "ContikiMAC" نام دارد، این مکانیزم قابلیتهایی دارد که میتواند وسیله را در حالت کم مصرف نگه داشته و با این حال باز هم به رد و بدل کردن پیغامهای رادیویی ادامه دهد.
نصب کامل کانتیکی این قابلیت هارا فراهم میاورد: