请输入您要查询的百科知识:

 

词条 Contiki
释义

  1. Hardware

  2. Networking

  3. Low-power operation

  4. Simulation

  5. Programming model

  6. Features

  7. Ports

      Microcontrollers   Computers   Game consoles 

  8. See also

  9. Notes

  10. References

  11. External links

{{About|the embedded operating system}}{{Distinguish|Kon-Tiki}}{{ infobox OS
| name = Contiki
| screenshot = Contiki-ipv6-rpl-cooja-simulation.png
| caption = Screenshot of an Ubuntu system showing Contiki 2.6 running on 41 nodes forming an IPv6-RPL-6LoWPAN network in the Cooja Contiki network simulator.
| developer = Adam Dunkels
| source model = Open source
| released = {{Start date and age|2003|03|10|df=yes}}
| latest release version = 3.0
| latest release date = {{Start date and age|2015|08|26|df=yes}}
| license = BSD
| working state = Current
| website = {{URL|www.contiki-os.org}}
}}

Contiki is an operating system for networked, memory-constrained systems with a focus on low-power wireless Internet of Things devices. Extant uses for Contiki include systems for street lighting, sound monitoring for smart cities, radiation monitoring, and alarms.[1] It is open-source software released under a BSD license.

Contiki was created by Adam Dunkels in 2002[2] and has been further developed by a worldwide team of developers from Texas Instruments, Atmel, Cisco, ENEA, ETH Zurich, Redwire, RWTH Aachen University, Oxford University, SAP, Sensinode, Swedish Institute of Computer Science, ST Microelectronics, Zolertia, and many others.[3] Contiki gained popularity because of its built in TCP/IP stack and lightweight preemptive scheduling over event-driven kernel [4] which is a very motivating feature for IoT. The name Contiki comes from Thor Heyerdahl's famous Kon-Tiki raft.

Contiki provides multitasking and a built-in Internet Protocol Suite (TCP/IP stack), yet needs only about 10 kilobytes of random-access memory (RAM) and 30 kilobytes of read-only memory (ROM).[1] A full system, including a graphical user interface, needs about 30 kilobytes of RAM.[5]

Hardware

Contiki is designed to run on types of hardware devices that are severely constrained in memory, 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 systems, and old 8-bit computers.

Networking

Contiki provides three network mechanisms: the uIP TCP/IP stack,[6] which provides IPv4 networking, the uIPv6 stack,[7] which provides IPv6 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.[8] 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.[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 network simulator called Cooja, which simulates networks of Contiki nodes.[11] The nodes may belong to either of three classes: emulated nodes, where the entire hardware of each node is emulated, Cooja nodes, where the Contiki code for the node is compiled for and executed on the simulation host, or Java nodes, where the behavior of the node must be reimplemented as a Java class. One Cooja simulation may contain a mix of 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 microcontrollers can be emulated.

Programming model

To run efficiently on small-memory systems, the Contiki programming model is based on protothreads.[12][13] A protothread is a memory-efficient programming abstraction that shares features of both multithreading and event-driven programming 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 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

The Contiki operating system is ported to the following systems:

Microcontrollers

  • Atmel – ARM, AVR
  • NXP Semiconductors – LPC1768,[15] LPC2103, MC13224
  • Microchip – dsPIC, PIC32 (PIC32MX795F512L)
  • Texas Instruments – MSP430, CC2430, CC2538, CC2630, CC2650
  • STMicroelectronics – STM32 W

Computers

  • Apple – II series[16]
  • Atari – 8-bit,[16] ST, Portfolio
  • Casio – Pocket Viewer
  • Commodore – PET,[16] VIC-20,[16] 64,[16] 128[16]
  • Tangerine Computer Systems – Oric[16]
  • NEC – PC-6001
  • Sharp – Wizard
  • Intel, AMD, VIA, many others – x86-based Unix-like systems, atop GTK+, or more directly using an X Window System[17]

Game consoles

  • Atari – Jaguar
  • Game Park – GP32
  • Nintendo – Game Boy, Game Boy Advance, Entertainment System (NES)[16]
  • NEC – TurboGrafx-16 Entertainment SuperSystem (PC Engine)

See also

{{Portal |Open-source software}}
  • BeRTOS
  • ERIKA Enterprise
  • RIOT
  • SymbOS
  • TinyOS
  • Wheels (operating system)
  • Comparison of real-time operating systems

Notes

1. ^{{Citation |url= http://www.contiki-os.org/ |title= Contiki OS}}.
2. ^{{Citation |title= Contiki: Bringing IP to Sensor Networks |url= http://ercim-news.ercim.eu/en76/rd/contiki-bringing-ip-to-sensor-networks}}
3. ^{{Citation |url= http://www.contiki-os.org/community.html |title= Contiki OS |contribution= Community}}.
4. ^{{Citation |first= Adam |last= Dunkels |contribution= Contiki – a lightweight and flexible operating system for tiny networked sensors |title= Proceedings of the 29th Annual IEEE International Conference on Local Computer Networks. |pages= 455-462 |year=2004}}.
5. ^[https://www.wired.com/2014/06/contiki/ Out in the Open: The Little-Known Open Source OS That Rules the Internet of Things]
6. ^{{Citation |first= Adam |last= Dunkels |contribution= Full TCP/IP for 8 Bit Architectures |title= Proceedings of the First ACM/Usenix International Conference on Mobile Systems, Applications and Services (MobiSys) |place= San Francisco |date=May 2003}}
7. ^{{Citation |first1= Mathilde |last1= Durvy |first2= Julien |last2= Abeillé |first3= Patrick |last3= Wetterwald |first4= Colin |last4= O'Flynn |first5= Blake |last5= Leverett |first6= Eric |last6= Gnoske |first7= Michael |last7= Vidales |first8= Geoff |last8= Mulligan |first9= Nicolas |last9= Tsiftes |first10= Niclas |last10= Finne |first11= Adam |last11= Dunkels |contribution= Making sensor networks IPv6 ready |title= Proceedings of the Sixth ACM Conference on Networked Embedded Sensor Systems (SenSys) |publisher= ACM |type= poster session |place= Raleigh, NC, US |date=November 2008}}
8. ^{{Citation |publisher= Cisco |title= Newsroom |year= 2008 |url= http://newsroom.cisco.com/dlls/2008/prod_101408e.html}}.
9. ^{{Citation |first1= Adam |last1= Dunkels |first2= Fredrik |last2= Österlind |first3= Zhitao |last3= He |contribution= An adaptive communication architecture for wireless sensor networks |title= Proceedings of the Fifth ACM Conference on Networked Embedded Sensor Systems (SenSys) |place= Sydney, AU |date=November 2007}}.
10. ^{{Citation |format= PDF |title= The ContikiMAC Radio Duty Cycling Protocol |first= Adam |last= Dunkels |url= http://dunkels.com/adam/dunkels11contikimac.pdf}}.
11. ^{{Citation |title= Contiki OS |contribution= Start |url= http://www.contiki-os.org/start.html}}.
12. ^{{Citation |first1= Adam |last1= Dunkels |first2= Oliver |last2= Schmidt |first3= Thiemo |last3= Voigt |first4= Muneeb |last4= Ali |contribution= Protothreads: Simplifying event-driven programming of memory-constrained embedded systems |title= Proceedings of the Fourth ACM Conference on Embedded Networked Sensor Systems (SenSys) |place= Boulder, CO, USA |date=November 2006}} {{Cite book |doi= 10.1145/1182807.1182811| chapter= Protothreads| title= Proceedings of the 4th international conference on Embedded networked sensor systems - Sen Sys '06| pages= 29| year= 2006| last1= Dunkels |first1= A. |last2= Schmidt |first2= O. |last3= Voigt |first3= T. |last4= Ali |first4= M. |isbn= 1595933433}} (PDF, Presentation slides).
13. ^{{Citation |title= Code |url= http://code.google.com/p/protothread/ |contribution= Protothread |publisher= Google}}.
14. ^{{Cite web|url=https://www.wolfssl.com/wolfssl-contiki-os-port/|title=wolfSSL CONTIKI OS port - wolfSSL|date=2018-12-18|language=en-US|access-date=2019-01-09}}
15. ^http://sourceforge.net/p/contiki/mailman/message/31753844/
16. ^cc65 based development
17. ^{{Citation |archiveurl= https://web.archive.org/web/20031209140045/http://hstein.trix.net/contiki/ |publisher= Trix |title= Running Contiki under Windows |archivedate= 2003-12-09 |url= http://hstein.trix.net/contiki/ |first= H |last= Stein}}.

References

{{Reflist |30em}}{{refbegin}}
  • {{Citation |url= http://www.c64web.com/ |title= C64Web}}: a web site run from an unmodified 1982 built Commodore 64
  • {{Citation |url= http://hitmen.c02.at/html/tools_contiki.html |publisher= C02 |place= AT |title= Hitmen |contribution= Tools Contiki}}: unofficial website for historic ports of the 1.x version.
  • {{Citation|url=http://www.manishshakya.com.np/index.php/page/code |contribution=Minimal Contiki OS for LPC2103 |title=Manishshakya |place=NP |deadurl=yes |archiveurl=https://web.archive.org/web/20140604192611/http://www.manishshakya.com.np/index.php/page/code |archivedate=2014-06-04 |df= }}.
  • {{Citation |url= http://a2retrosystems.com/contiki.html |title= Contiki 2.5 config file and disk image generator |publisher= A2 retro systems}}.
  • {{Citation |url= http://rtn.sssup.it/index.php/software/contiki |title= Contiki porting on PIC32 (Seed-Eye Board) |publisher= SSSUP |place= IT}}.
{{refend}}

External links

{{Commons category|Contiki}}
  • {{Official website|www.contiki-os.org}}
{{Wireless Sensor Network}}{{Real-time operating systems}}

12 : 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 family software|Atari ST software|Commodore VIC-20 software|ARM operating systems|MIPS operating systems

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/11/11 23:29:22