Contiki is an open-source operating system (OS) that works on small, low-power microcontrollers. It allows the development of applications. The application allows efficient use of hardware while providing standardized low-power wireless communication for various hardware platforms.
Contiki is used in many key systems, such as street lighting, construction site monitoring, a city sound monitoring, network electricity meters, industrial monitoring, radiation monitoring, alarm systems, remote monitoring in the home, etc.
Contiki provides multitasking and a set of integrated Internet protocols (TCP/IP stack). It only requires about 10 kilobytes of RAM and 30 kilobytes of Read Only Memory (ROM). A complete system that includes a graphical user interface, requires approximately 30 kilobytes of RAM.
History of Contiki OS
The name Contiki comes from the famous Kon-Tiki raft by Thor Heyerdahl.
Contiki OS was created by Adam Dunkels in 2002 and was developed by a global team of developers from Atmel, Cisco, Texas Instruments, ETH Zurich, ENEA, Redwire, Swedish Institute of Computing, RWTH Aachen University, Oxford University, SAP, Sensinode, ST Microelectronics, Zolertia, and many others.
Contiki has gained popularity due to its built-in TCP/IP stack. It lightweight preemptive scheduling over the event-driven kernel that is a very motivating feature for IoT.
Applications of Contiki OS
There are more Applications, available in the package as part of Contiki OS. These include a small web browser, web server, calculator, shell, telnet client and daemon, an e-mail client, the VNC viewer, and FTP.
Contiki OS also provides mechanisms to measure the power of various operations. It allows developers to produce consumer-sensitive programs. Also, a software package comes with a Unix-type shell for interaction with the operating system and debugging.
Features of Contiki OS
A complete installation of Contiki includes the following features:
- Optional per-application preemptive multithreading
- Multitasking kernel
- Windowing system and GUI
- Simple telnet client
- Internet Protocol Suite (TCP/IP) networking, including IPv6
- Personal web server
- Networked remote display using Virtual Network Computing
Communication Components in Contiki OS
Contiki OS supports protocols for IoT:
6LoWPAN: It means IPv6 in-home Wi-Fi networks of low consumption. It provides an era of compression to guide the low charge of desired Wi-Fi information with devices with limited resources.
RPL: It is an IPv6 distance vector protocol for LLNs (Low-Power and Lossy Networks). It provides a viable path to quality in a complex network of devices of varying capacities.
CoAP: It facilitates communique for individual devices; In general, the devices require extensive remote supervision.
uIP (for IPv4): It implements TCP/IP that is used for 8-bit and 16-bit microcontrollers.
uIPv6 (for IPv6): It is an IPv6 extension that is fully compatible with uIP.