Contiki
BSD-3-Clause | |
Official website | www |
---|
Stable release | 4.9
/ June 17, 2023 |
---|---|
Repository | github |
Website | www |
Contiki is an
Contiki was created by
Contiki provides multitasking and a built-in
A new branch has recently been created, known as 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
Networking
Contiki provides three network mechanisms: the
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.[9]
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.[10] 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 of Contiki nodes.[11] 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
Programming model
To run efficiently on small-memory systems, the Contiki programming model is based on
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 using message passing through events, as well as an optional graphical user interface (GUI) subsystem with either direct graphic support for locally connected terminals or networked virtual display with Virtual Network Computing (VNC) or over Telnet.
A full installation of Contiki includes the following features:
- Multitasking kernel
- Optional per-application preemptive multithreading
- Protothreads
- Internet Protocol Suite (TCP/IP) networking, including IPv6
- Windowing system and GUI
- Networked remote display using Virtual Network Computing
- A web browser (claimed to be the world's smallest)
- Personal web server
- Simple telnet client
- Screensaver
Contiki is supported by popular SSL/TLS libraries such as wolfSSL, which includes a port in its 3.15.5 release.[14]
Ports
Microcontrollers
- AVR
- NXP Semiconductors – LPC1768,[15] LPC2103, MC13224
- dsPIC, PIC32(PIC32MX795F512L)
- Texas Instruments – MSP430, CC2430, CC2538, CC2630, CC2650, CC2538: cctv, Firefly, Zoul (comprises the CC2538 and CC1200 in a single module format)
- STMicroelectronics – STM32 W
Computers
- Apple II[a]
- Atari 8-bit family[a]
- Atari ST
- Atari Portfolio
- Pocket Viewer
- Commodore PET[a]
- VIC-20,[a]
- Commodore 64,[a] Commodore 128[a]
- Oric[a]
- NEC PC-6001
- Sharp Wizard
- GTK+, or more directly using an X Window System[16]
Game consoles
See also
Notes
References
- ^ a b Contiki OS.
- ^ Contiki: Bringing IP to Sensor Networks
- ^ "Community", Contiki OS.
- ^ Dunkels, Adam (2004), "Contiki – a lightweight and flexible operating system for tiny networked sensors", Proceedings of the 29th Annual IEEE International Conference on Local Computer Networks., pp. 455–462.
- ^ Out in the Open: The Little-Known Open Source OS That Rules the Internet of Things
- ^ Dunkels, Adam (May 2003), "Full TCP/IP for 8 Bit Architectures", Proceedings of the First ACM/Usenix International Conference on Mobile Systems, Applications and Services (MobiSys), San Francisco
{{citation}}
: CS1 maint: location missing publisher (link) - US: ACM
- ^ Newsroom, Cisco, 2008.
- ^ Dunkels, Adam; Österlind, Fredrik; He, Zhitao (November 2007), "An adaptive communication architecture for wireless sensor networks", Proceedings of the Fifth ACM Conference on Networked Embedded Sensor Systems (SenSys), Sydney, AU
{{citation}}
: CS1 maint: location missing publisher (link). - ^ Dunkels, Adam, The ContikiMAC Radio Duty Cycling Protocol (PDF).
- ^ "Start", Contiki OS.
- ).
- ^ "Protothread", Code.
- ^ "wolfSSL CONTIKI OS port - wolfSSL". 2018-12-18. Retrieved 2019-01-09.
- ^ "The Contiki Operating System / [Contiki-developers] Contiki port for the LPC1768 arm processor". 19 December 2020.
- ^ Stein, H, Running Contiki under Windows, Trix, archived from the original on 2003-12-09.
- "Tools Contiki", Hitmen, AT: C02: unofficial website for historic ports of the 1.x version.
- "Minimal Contiki OS for LPC2103", Manishshakya, NP, archived from the original on 2014-06-04.
- Contiki 2.5 config file and disk image generator, A2 retro systems.
- Contiki porting on PIC32 (Seed-Eye Board), IT: SSSUP, archived from the original on 2013-03-18, retrieved 2013-01-31.