Contiki is an open-source operating system designed
for resource-constrained embedded systems, including wireless sensor networks, Internet of Things (IoT) devices, and other small-scale low-power devices. It was first released in 2003 and has since become a popular choice for developers working on IoT and related projects. Contiki is an operating system for networked, memory-constrained systems with a focus on low-power wireless Internet of Things devices. Contiki specifically targets small IoT devices with limited memory, power, bandwidth, and processing power. It uses a minimalist design while still packing the common tools of modern operating systems. Contiki is designed to be lightweight and flexible, with a small memory footprint and low power consumption. It provides a range of built-in features and protocols, including networking, security, and power management, as well as support for a wide range of hardware platforms and wireless communication technologies. It provides functionality for management of programs, processes, resources, memory, and communication. It owes its popularity to being very lightweight (by modern standards), mature, and flexible. Many academics, organization researchers, and professionals consider it a go-to OS. The name Contiki comes from the famous Kon- Tiki raft by Thor Heyerdahl. Contiki only requires a few kilobytes to run, and within a space of under 30KB, it fits its entire operating system. 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. Such systems include many types of embedded systems. Contiki OS was created by Adam Dunkels 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, STMicroelectronics, Zolertia, and many others. Contiki has gained popularity due to its built-in TCP/IP stack. Its lightweight preemptive scheduling over the event-driven kernel 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 email 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 ● Protothreads ● 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 ● Screensaver
Communication Components in Contiki OS
Contiki OS supports protocols for IoT: ● uIP (for IPv4) − This TCP/IP implementation supports 8-bit and 16-bit microcontrollers. ● uIPv6 (for IPv6) − This is a fully compliant IPv6 extension to uIP. ● Rime − This alternative stack provides a solution when IPv4 or IPv6 prove prohibitive. It offers a set of primitives for low-power systems. ● 6LoWPAN − This stands for IPv6 over low-power wireless personal area networks. It provides compression technology to support the low data rate wireless needed by devices with limited resources. It means IPv6 in-home Wi-Fi networks of low consumption. ● RPL − This distance vector IPv6 protocol for LLNs (low-power and lossy networks) allows the best possible path to be found in a complex network of devices with varied capability. ● CoAP − This protocol supports communication for simple devices, typically devices requiring heavy remote supervision. It facilitates communique for individual devices.
The Contiki system includes a sensor simulator called
Cooja, which simulates of Contiki nodes. The nodes belong to one of the three following classes: a) emulated Cooja nodes, b) Contiki code compiled and executed on the simulation host, or c) Java nodes, where the behavior of the node must be reimplemented as a Java class. One Cooja simulation may contain a mix of sensor nodes from any of the three classes. Emulated nodes can also be used to include non-Contiki nodes in a simulated network. Contiki is also highly modular and customizable, with a range of libraries and modules that can be added or removed depending on the specific requirements of a particular application. This makes it well-suited to a wide range of use cases, from simple sensor networks to more complex industrial automation systems. Overall, Contiki is a powerful and versatile operating system that provides a solid foundation for developing a wide range of IoT and embedded systems applications. TinyOS
TinyOS is an embedded, component-based operating
system and platform for low-power wireless devices, such as those used in wireless sensor networks (WSNs), smartdust, computing, personal area networks, building automation, and smart meters. One of the key features of TinyOS is its event-driven architecture, which allows for efficient and precise handling of events in a distributed system. This makes it well-suited to applications where sensors and other devices need to operate autonomously and respond quickly to changes in the environment. It is written in the programming language nesC(used to build applications for the TinyOS platform), as a set of cooperating tasks and processes. It began as a collaboration between the University of California, Berkeley, Intel Research, and Crossbow Technology, was released as free and open-source software. TinyOS applications are written in the programming language nesC, it is regional variety of a language of the C language optimized for the memory limits of sensor networks. TinyOS programs are built of software components, some of which present hardware abstractions. TinyOS provides interfaces and components for common abstractions such as packet communication, routing, sensing, actuation and storage. Overall, TinyOS is a powerful and flexible operating system that provides a solid foundation for developing a wide range of IoT and embedded systems applications, particularly those that require a high degree of efficiency and responsiveness.