HOME

TheInfoList



OR:

Contiki is an
operating system An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ...
for networked, memory-constrained systems with a focus on low-power wireless
Internet of Things Internet of things (IoT) describes devices with sensors, processing ability, software and other technologies that connect and exchange data with other devices and systems over the Internet or other communication networks. The IoT encompasse ...
(IoT) devices. Contiki is used for systems for
street light A street light, light pole, lamp pole, lamppost, streetlamp, light standard, or lamp standard is a raised source of light on the edge of a road or path. Similar lights may be found on a railway platform. When urban electric power distribution b ...
ing, sound monitoring for smart cities, radiation monitoring and alarms.. It is
open-source software Open-source software (OSS) is Software, computer software that is released under a Open-source license, license in which the copyright holder grants users the rights to use, study, change, and Software distribution, distribute the software an ...
released under the BSD-3-Clause license. Contiki was created by
Adam Dunkels Adam Dunkels (born 28 May 1978) is a Swedish computer scientist, software engineer, entrepreneur, and founder of Thingsquare, an Internet of things (IoT) product development business. His father was professor of mathematics Andrejs Dunkels. His ...
in 2002 and has been further developed by a worldwide team of developers from Texas Instruments, Atmel, Cisco, ENEA,
ETH Zurich ETH Zurich (; ) is a public university in Zurich, Switzerland. Founded in 1854 with the stated mission to educate engineers and scientists, the university focuses primarily on science, technology, engineering, and mathematics. ETH Zurich ran ...
, Redwire,
RWTH Aachen University RWTH Aachen University (), in German ''Rheinisch-Westfälische Technische Hochschule Aachen'', is a German public research university located in Aachen, North Rhine-Westphalia, Germany. With more than 47,000 students enrolled in 144 study prog ...
, Oxford University, SAP, Sensinode,
Swedish Institute of Computer Science RISE SICS (previously Swedish Institute of Computer Science) is a leading research institute for applied information and communication technology in Sweden, founded in 1985. It explores the digitalization of products, services and businesses. In ...
, ST Microelectronics, Zolertia, and many others. Contiki gained popularity because of its built in TCP/IP stack and lightweight preemptive scheduling over event-driven kernel which is a very motivating feature for IoT. The name ''Contiki'' comes from
Thor Heyerdahl Thor Heyerdahl KStJ (; 6 October 1914 – 18 April 2002) was a Norwegian adventurer and Ethnography, ethnographer with a background in biology with specialization in zoology, botany and geography. Heyerdahl is notable for his Kon-Tiki expediti ...
's famous Kon-Tiki raft. Contiki provides multitasking and a built-in
Internet Protocol Suite The Internet protocol suite, commonly known as TCP/IP, is a framework for organizing the communication protocols used in the Internet and similar computer networks according to functional criteria. The foundational protocols in the suite are ...
(TCP/IP stack), yet needs only about 10
kilobyte The kilobyte is a multiple of the unit byte for Computer data storage, digital information. The International System of Units (SI) defines the prefix ''kilo-, kilo'' as a multiplication factor of 1000 (103); therefore, one kilobyte is 1000&nbs ...
s of
random-access memory Random-access memory (RAM; ) is a form of Computer memory, electronic computer memory that can be read and changed in any order, typically used to store working Data (computing), data and machine code. A random-access memory device allows ...
(RAM) and 30 kilobytes of
read-only memory Read-only memory (ROM) is a type of non-volatile memory used in computers and other electronic devices. Data stored in ROM cannot be electronically modified after the manufacture of the memory device. Read-only memory is useful for storing sof ...
(ROM). A full system, including a
graphical user interface A graphical user interface, or GUI, is a form of user interface that allows user (computing), users to human–computer interaction, interact with electronic devices through Graphics, graphical icon (computing), icons and visual indicators such ...
, needs about 30 kilobytes of RAM. A new branch has recently been created, known a
Contiki-NG
The OS for Next Generation IoT Devices


Hardware

Contiki is designed to run on types of hardware devices that are severely constrained in
memory Memory is the faculty of the mind by which data or information is encoded, stored, and retrieved when needed. It is the retention of information over time for the purpose of influencing future action. If past events could not be remembe ...
, power, processing power, and communication bandwidth. A typical Contiki system has memory on the order of kilobytes, a power budget on the order of milliwatts, processing speed measured in megaHertz, and communication bandwidth on the order of hundreds of kilobits/second. Such systems include many types of
embedded system An embedded system is a specialized computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is e ...
s, and old
8-bit In computer architecture, 8-bit integers or other data units are those that are 8 bits wide (1 octet). Also, 8-bit central processing unit (CPU) and arithmetic logic unit (ALU) architectures are those that are based on registers or data bu ...
computers.


Networking

Contiki provides three network mechanisms: the uIP TCP/IP stack, which provides
IPv4 Internet Protocol version 4 (IPv4) is the first version of the Internet Protocol (IP) as a standalone specification. It is one of the core protocols of standards-based internetworking methods in the Internet and other packet-switched networks. ...
networking, the uIPv6 stack, which provides
IPv6 Internet Protocol version 6 (IPv6) is the most recent version of the Internet Protocol (IP), the communication protocol, communications protocol that provides an identification and location system for computers on networks and routes traffic ...
networking, and the Rime stack, which is a set of custom lightweight networking protocols designed for low-power wireless networks. The IPv6 stack was contributed by Cisco and was, when released, the smallest IPv6 stack to receive the ''IPv6 Ready'' certification. The IPv6 stack also contains the ''Routing Protocol for Low power and Lossy Networks'' (RPL) routing protocol for low-power lossy IPv6 networks and the 6LoWPAN header compression and adaptation layer for IEEE 802.15.4 links. Rime is an alternative network stack, for use when the overhead of the IPv4 or IPv6 stacks is prohibitive. The Rime stack provides a set of communication primitives for low-power wireless systems. The default primitives are single-hop unicast, single-hop broadcast, multi-hop unicast, network flooding, and address-free data collection. The primitives can be used on their own or combined to form more complex protocols and mechanisms.


Low-power operation

Many Contiki systems are severely power-constrained. Battery operated wireless sensors may need to provide years of unattended operation and with little means to recharge or replace batteries. Contiki provides a set of mechanisms to reduce the power consumption of systems on which it runs. The default mechanism for attaining low-power operation of the radio is called ContikiMAC. With ContikiMAC, nodes can be running in low-power mode and still be able to receive and relay radio messages.


Simulation

The Contiki system includes a sensor simulator called Cooja, which simulates 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. In Contiki 2.6, platforms with the TI MSP430 and
Atmel AVR AVR is a family of microcontrollers developed since 1996 by Atmel, acquired by Microchip Technology in 2016. They are 8-bit RISC single-chip microcontrollers based on a modified Harvard architecture. AVR was one of the first microcontroller ...
microcontrollers can be emulated.


Programming model

To run efficiently on small-memory systems, the Contiki programming model is based on
protothreads A protothread is a low-overhead mechanism for concurrent programming. Protothreads function as Call stack, stackless, lightweight Thread (computer science), threads, or coroutines, providing a blocking context cheaply using minimal memory per proto ...
. A protothread is a memory-efficient programming abstraction that shares features of both multithreading and
event-driven programming In computer programming, event-driven programming is a programming paradigm in which the Control flow, flow of the program is determined by external Event (computing), events. User interface, UI events from computer mouse, mice, computer keyboard, ...
to attain a low memory overhead of each protothread. The kernel invokes the protothread of a process in response to an internal or external event. Examples of internal events are timers that fire or messages being posted from other processes. Examples of external events are sensors that trigger or incoming packets from a radio neighbor. Protothreads are cooperatively scheduled. Thus, a Contiki process must always explicitly yield control back to the kernel at regular intervals. Contiki processes may use a special protothread construct to block waiting for events while yielding control to the kernel between each event invocation.


Features

Contiki supports per-process optional preemptive multithreading,
inter-process communication In computer science, interprocess communication (IPC) is the sharing of data between running Process (computing), processes in a computer system. Mechanisms for IPC may be provided by an operating system. Applications which use IPC are often cat ...
using message passing through events, as well as an optional
graphical user interface A graphical user interface, or GUI, is a form of user interface that allows user (computing), users to human–computer interaction, interact with electronic devices through Graphics, graphical icon (computing), icons and visual indicators such ...
(GUI) subsystem with either direct graphic support for locally connected terminals or networked virtual display with
Virtual Network Computing VNC (Virtual Network Computing) is a graphical desktop-sharing system that uses the RFB protocol, Remote Frame Buffer protocol (RFB) to remotely control another computer. It transmits the computer keyboard, keyboard and computer mouse, mouse in ...
(VNC) or over Telnet. A full installation of Contiki includes the following features: * Multitasking kernel * Optional per-application preemptive multithreading * Protothreads *
Internet Protocol Suite The Internet protocol suite, commonly known as TCP/IP, is a framework for organizing the communication protocols used in the Internet and similar computer networks according to functional criteria. The foundational protocols in the suite are ...
(TCP/IP) networking, including
IPv6 Internet Protocol version 6 (IPv6) is the most recent version of the Internet Protocol (IP), the communication protocol, communications protocol that provides an identification and location system for computers on networks and routes traffic ...
* Windowing system and GUI * Networked remote display using
Virtual Network Computing VNC (Virtual Network Computing) is a graphical desktop-sharing system that uses the RFB protocol, Remote Frame Buffer protocol (RFB) to remotely control another computer. It transmits the computer keyboard, keyboard and computer mouse, mouse in ...
* A
web browser A web browser, often shortened to browser, is an application for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's scr ...
(claimed to be the world's smallest) * Personal
web server A web server is computer software and underlying Computer hardware, hardware that accepts requests via Hypertext Transfer Protocol, HTTP (the network protocol created to distribute web content) or its secure variant HTTPS. A user agent, co ...
* Simple
telnet Telnet (sometimes stylized TELNET) is a client-server application protocol that provides access to virtual terminals of remote systems on local area networks or the Internet. It is a protocol for bidirectional 8-bit communications. Its main ...
client *
Screensaver A screensaver (or screen saver) is a computer program that blanks the display screen or fills it with moving images or patterns when the computer has been idle for a designated time. The original purpose of screensavers was to prevent phosphor s ...
Contiki is supported by popular SSL/TLS libraries such as wolfSSL, which includes a port in its 3.15.5 release.


Ports


Microcontrollers

* AtmelARM, AVR *
NXP Semiconductors NXP Semiconductors N.V. is a Dutch semiconductor manufacturing and design company with headquarters in Eindhoven, Netherlands. It is the third largest European semiconductor company by market capitalization as of 2024. The company employs approx ...
– LPC1768, LPC2103, MC13224 *
Microchip An integrated circuit (IC), also known as a microchip or simply chip, is a set of electronic circuits, consisting of various electronic components (such as transistors, resistors, and capacitors) and their interconnections. These components a ...
dsPIC, PIC32 (PIC32MX795F512L) *
Texas Instruments Texas Instruments Incorporated (TI) is an American multinational semiconductor company headquartered in Dallas, Texas. It is one of the top 10 semiconductor companies worldwide based on sales volume. The company's focus is on developing analog ...
MSP430, CC2430, CC2538, CC2630, CC2650, CC2538: cctv, Firefly, Zoul (comprises the CC2538 and CC1200 in a single module format) *
STMicroelectronics STMicroelectronics Naamloze vennootschap, NV (commonly referred to as ST or STMicro) is a European multinational corporation, multinational semiconductor contract manufacturing and design company. It is the largest of such companies in Europe. ...
STM32 W


Computers

*
Apple II Apple II ("apple Roman numerals, two", stylized as Apple ][) is a series of microcomputers manufactured by Apple Computer, Inc. from 1977 to 1993. The Apple II (original), original Apple II model, which gave the series its name, was designed ...
cc65 based development * Atari 8-bit computers * Atari ST * Atari Portfolio * Pocket Viewer * Commodore PET *
VIC-20 The VIC-20 (known as the VC-20 in Germany and the VIC-1001 in Japan) is an 8-bit entry level home computer that was sold by Commodore International, Commodore Business Machines. The VIC-20 was announced in 1980, roughly three years after Commod ...
, *
Commodore 64 The Commodore 64, also known as the C64, is an 8-bit computing, 8-bit home computer introduced in January 1982 by Commodore International (first shown at the Consumer Electronics Show, January 7–10, 1982, in Las Vegas). It has been listed in ...
, Commodore 128 * Oric * NEC PC-6001 * Sharp Wizard *
x86 x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel, based on the 8086 microprocessor and its 8-bit-external-bus variant, the 8088. Th ...
-based
Unix-like A Unix-like (sometimes referred to as UN*X, *nix or *NIX) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Uni ...
systems, atop
GTK+ GTK (formerly GIMP ToolKit and GTK+) is a free software cross-platform widget toolkit for creating graphical user interfaces (GUIs). It is licensed under the terms of the GNU Lesser General Public License, allowing both free and proprietary s ...
, or more directly using an
X Window System The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems. X originated as part of Project Athena at Massachusetts Institute of Technology (MIT) in 1984. The X protocol has been at ...
.


Game consoles

* GP32 *
Game Boy The is a handheld game console developed by Nintendo, launched in the Japanese home market on April 21, 1989, followed by North America later that year and other territories from 1990 onwards. Following the success of the Game & Watch single-ga ...
*
Game Boy Advance The (GBA) is a 32-bit handheld game console, manufactured by Nintendo, which was released in Japan on March 21, 2001, and to international markets that June. It was later released in mainland China in 2004, under the name iQue Game Boy Advanc ...
*
Jaguar The jaguar (''Panthera onca'') is a large felidae, cat species and the only extant taxon, living member of the genus ''Panthera'' that is native to the Americas. With a body length of up to and a weight of up to , it is the biggest cat spe ...
*
Nintendo Entertainment System The Nintendo Entertainment System (NES) is an 8-bit home video game console developed and marketed by Nintendo. It was first released in Japan on 15 July 1983 as the and was later released as the redesigned NES in several test markets in the ...
*
TurboGrafx-16 The TurboGrafx-16, known in Japan as the , is a home video game console developed by Hudson Soft and manufactured by NEC. It was released in Japan in 1987 and in North America in 1989. The first console of the fourth generation of video game con ...


See also

* BeRTOS * ERIKA Enterprise * Nano-RK *
RIOT A riot or mob violence is a form of civil disorder commonly characterized by a group lashing out in a violent public disturbance against authority, property, or people. Riots typically involve destruction of property, public or private. The p ...
* SymbOS * TinyOS * Comparison of real-time operating systems


Notes


References

* : unofficial website for historic ports of the 1.x version. * . * . * .


External links

* {{Real-time operating systems Embedded operating systems Free web browsers Free software operating systems TRS-80 Color Computer Commodore 64 software Commodore 128 software Apple II software Atari 8-bit computer software Atari ST software VIC-20 software ARM operating systems MIPS operating systems Software using the BSD license TCP implementations