Contiki: lightweight operating system for networked embedded systems
Contiki is a small, open-source operating system designed for networked, resource-constrained devices and embedded systems, notable for its tiny memory footprint and networking support.
Contiki is a compact, open-source operating system created for deeply resource-constrained computers and embedded devices. It targets small microcontrollers and early 8-bit platforms as well as modern low-power Internet of Things (IoT) hardware. A typical Contiki installation requires only a few tens of kilobytes of memory, and the system can provide basic services such as multitasking, networking, and a lightweight graphical or web-based interface on suitably equipped platforms.
Image gallery
4 ImagesKey characteristics
At the core of Contiki is an event-driven kernel that combines low memory use with cooperative multitasking. The project introduced the idea of "protothreads," a programming abstraction that offers the simplicity of threads with the memory efficiency of event-driven code. Contiki is modular: network stacks, device drivers and application programs are components that can be included or omitted to match a platform's resources.
- Very small footprint — often tens of kilobytes of RAM and ROM.
- Event-driven kernel with optional lightweight threads (protothreads).
- Built-in networking: small TCP/IP stack (uIP), support for IPv6/6LoWPAN and low-power radio stacks.
- Support for dynamic code loading and simple GUIs or web servers on capable hardware.
History and development
Contiki was developed by Adam Dunkels while working with the Networked Embedded Systems group at the Swedish Institute of Computer Science. The name was inspired by Thor Heyerdahl's Kon-Tiki expedition, reflecting a small platform capable of long journeys. Over time Contiki has been maintained and extended by an active community and has influenced a number of follow-on projects and research efforts addressing low-power wireless networking and small-footprint IP implementations.
Uses and examples
Contiki is widely used in academic research, prototyping and in some commercial embedded products where memory and energy are limited. Typical applications include wireless sensor networks, smart-metering nodes, environmental monitors and other IoT end points. Common example applications that ship with Contiki distributions include a tiny web server, networked sensors, routing protocol implementations and remote debugging shells.
Distinctions and related projects
Contiki differs from other embedded operating systems in its combination of an event-driven kernel with protothreads and a focus on network protocol implementation for constrained devices. It is often compared to TinyOS (which uses a component-based event model) and to small real-time kernels such as FreeRTOS (which provide preemptive scheduling). In recent years, a successor effort known as Contiki-NG has sought to modernize and extend the original codebase for contemporary IoT requirements.
For further technical details, documentation and source code, see the project site and the kernel documentation: Contiki project page and Contiki kernel resources.
Ports
The operating system is or will be executable on the following computers and microcontrollers:
- Apple II
- Commodore 64
- Commodore 128
- Commodore VC 20
- raw X11
- TI MSP430
- x86 (only the outdated version 1.0)
- Atari 8-bit
- Atari Portfolio
- Atari ST
- Atmel AVR
- game boy
- Game Boy Advance
- GP32
- Meshnetics ZigBit
- PC-6001
- Tandy CoCo
- PC engine
- Commodore PET
- Sharp Wizard
- Sony PlayStation
- Sega Dreamcast
- Sentilla JCreate
Questions and answers
Q: What is Contiki?
A: Contiki is a small, open source free operating system.
Q: What was Contiki developed for?
A: Contiki was developed to be used in 8-bit computers and embedded systems.
Q: Does Contiki have a Graphical User Interface?
A: Yes, Contiki has a Graphical User Interface.
Q: How much RAM is needed for the full installation of Contiki?
A: The full installation of Contiki needs about 30 kilobytes of RAM.
Q: What is the origin of the name Contiki?
A: The name Contiki comes from Thor Heyerdahl's famous Kon-Tiki raft.
Q: Who developed the basic kernel and most of the core functions of Contiki?
A: Adam Dunkels developed the basic kernel and most of the core functions of Contiki at the Networked Embedded Systems group at the Swedish Institute of Computer Science.
Q: Is Contiki a paid operating system?
A: No, Contiki is a free and open source operating system.
Related articles
Author
AlegsaOnline.com Contiki: lightweight operating system for networked embedded systems Leandro Alegsa
URL: https://en.alegsaonline.com/art/22759
Sources
- hstein.trix.net : hstein.trix.net/contiki

