Phiên bản hiện nay của Contiki là 3.0, với nhiều thay đổi, bổ sung và phát triển vượt bậc. Trong thực tế, Contiki đã được ứng dụng trong nhiều dự án như giám sát đường hầm xe lửa, theo dõi nước trong biển Baltic,… Nhiều cơ chế, ý tưởng trong Contiki đã được ứng dụng rộng rãi trong công nghiệp. Điển hình như mơ hình uIP được phát hành năm 2001 đã được sử dụng trong hệ thống ứng dụng của hàng trăm công ty trong các lĩnh vực hàng hải, thông tin vệ tinh, khai thác dầu mỏ,…; mơ hình Protothreads được cơng bố lần đầu tiên năm 2005, đến nay đã được
sử dụng trong nhiều ứng dụng như bộ giải mã kỹ thuật số và thiết bị cảm biến rung không dây.
Hệ điều hành Contiki được lập trình bằng ngơn ngữ C và có những đặc điểm phù hợp với các hệ thống nhúng và mạng cảm biến không dây:
Contiki được chia thành nhiều module hoạt động độc lập. Nhờ đó các ứng dụng có thể sử dụng các module một cách linh động và chỉ nạp những module cần thiết.
Cơ chế hoạt động điều khiển sự kiện làm giảm năng lượng tiêu hao và hạn chế dung lượng bộ nhớ cần sử dụng.
Có thể sử dụng IP trong mạng cảm biến thông qua uIP stack được xây dựng dựa trên nền TCP/IP.
Có những module cho phép ước lượng và quản lý năng lượng một cách hiệu quả [17].
Có ngăn xếp truyền thơng RIME phục vụ các giao thức dành cho mạng năng lượng thấp một cách hiệu quả.
Bên cạnh đó, Contiki cịn cung cấp những cơng cụ hỗ trợ mơ phỏng với giao diện đơn giản, dễ sử dụng và hỗ trợ tốt những thiết bị trong thực tế, phục vụ những mục đích nghiên cứu, mơ phỏng và triển khai những giao thức mới.
2.2. Cấu trúc hệ điều hành Contiki
Bất kỳ phiên bản Contiki nào cũng gồm 7 thư mục là: apps, core, cpu, docs, example, platform và tools [2].
Thư mục apps: Chứa các tập tin nguồn của các tiện ích phát triển cho
Contiki. Chúng có sẵn để sử dụng và bao gồm các thiết lập cơ bản của các ứng dụng cho mạng cảm biến không dây . Ứng dụng tiêu biểu trong thư mục này là trình duyệt web, máy chủ Web, FTP, email....
Thư mục Core: Như tên gọi cho thấy, nó chứa các hạt nhân của hệ điều
hành Contiki. Nó chứa khoảng 300 files, gần một nửa trong số đó là tập tin tiêu đề chứa các khai báo và còn lại là các tập tin nguồn chứa cài đặt.
Thư mục CPU: Chứa các bộ xử lý cụ thể cho việc thực hiện các chức năng
khác nhau được sử dụng trong hệ điều hành.
Thư mục Examples: Chứa các chương trình ví dụ đơn giản bắt đầu với
“Hello-world”, như là bước đầu tiên hướng tới lập trình ứng dụng trên Contiki.
Thư mục Platform: Bao gồm thông tin cụ thể liên quan đến nền tảng phần
cứng cho các nút cảm biến như ESB, Tmote Sky…
Thư mục Tools: Là thư mục chứa các công cụ phần mềm đặc biệt. Ví dụ
như Cooja là một chương trình Java để mơ phỏng cho Contiki. Thư mục này cũng chứa các công cụ cho các nền tảng phần cứng cụ thể. Ví dụ điển hình là các cơng cụ cho nút cảm biến Tmote Sky của Sentilla.
2.3. Ngăn xếp truyền thông trong hệ điều hành Contiki
Contiki cung cấp các ứng dụng trên nền IP gồm cả IPv4 và IPv6 thông qua 2 ngăn xếp truyền thông: uIP và Rime. Các ứng dụng có thể hoạt động trên một trong hai giao thức uIP hoặc Rime, hoặc đồng thời trên cả hai giao thức. Bên cạnh đó, các ứng dụng uIP có thể hoạt động dựa trên Rime và ngược lại, các ứng dụng trên nền Rime cũng có thể hoạt động dựa trên nền uIP Ngăn xếp truyền thông trong hệ điều hành Contiki được minh họa ở hình 2.2.