Internet of Things OS

Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

Internet of Things – Contiki OS

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.

You might also like