1 / 13

The Contiki Operating System

The Contiki Operating System. Jack Nosek. History. Developed by Adam Dunkels of SICS Also developed protothreads and μ IP First released on March 10, 2003 Named after Thor Heyerdahl's famous Kon-Tiki raft

pascal
Download Presentation

The Contiki Operating System

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The Contiki Operating System Jack Nosek

  2. History • Developed by Adam Dunkels of SICS • Also developed protothreads and μIP • First released on March 10, 2003 • Named after Thor Heyerdahl's famous Kon-Tiki raft • “Contiki runs on tiny and prehistoric computers, yet is able to do much of what we expect from large and modern computers.”

  3. Who uses it? • Most common application is as an OS for Networks of Embedded Systems • Hobbyists use it as an OS for older and smaller systems • Ports for Apple II, Atari, Gameboy, NES, Commodore 64 and 128 • Screen captures at http://www.sics.se/~adam/contiki/ports/index.html

  4. Features • Minimalist Event Driven Kernel, even runs on 8-bit Microcontrollers • TCP/IP Stack Support • Dynamic Loading and Unloading of Programs • Small Memory Requirements • Optional Preemptive Multithreading through Protothreads

  5. Event Driven Kernel • Kernel is event based making it a real time OS • An event triggers the kernel to call the corresponding event handler • Functions very similar to TinyOS • Has its drawbacks, i.e. long running computations

  6. TCP/IP Stack Support • Implements Dunkels’s own TCP/IP stack called μIP • Memory Requirements • Kilobytes of Program Code • Hundreds of bytes of RAM • Allows to connect to networks using SLIP (Serial Line IP)

  7. Dynamic Program Loading • The Core Code and Program Code are kept separate in ROM. • Program Code loaded at runtime. • Program code can be loaded from ROM or RAM • Allows for “Over the Air Programming” for networks of sensors

  8. Small Memory Requirements • The base system, providing multitasking and TCP/IP networking, can be compiled in about 32 KB • Smallest system to date uses about 2000 bytes of RAM • Jack Ganssle praised Contiki for its low memory usage in his Embedded Muse newsletter, #113

  9. Protothreads • Implemented as an additional library on top of the event based kernel • Stackless, lightweight thread comprised of a single C function using 2 bytes of RAM to record its state • Adds a layer of abstraction to the state-machine event based code usually written, to create a sequential flow of program code.

  10. Event-driven Handler • Event-driven (TinyOS) • Processes do not run without events • Event occurs: kernel invokes event handler • Event handler runs to completion (explicit return;) Handler Kernel Handler Handler

  11. Contiki: implementing threads on top of an event-based kernel Event Thread Thread Event Kernel Event Event

  12. Contiki Programs • Contiki Tool-kit (CTK) GUI • Virtual Network Computing (VNC) Server • A Web Server • A Web Browser • A command line shell. • A telnet server. • An IRC client. • An FTP client. • A disk directory file reader. • A file and disk image downloader utility. • A simple desktop calculator.

  13. End • Works Cited • Slides 10 and 11 Taken fromAdam Dunkles Presentation Contiki – a Lightweight and Flexible Operating System for TinyNetworked Sensorsfound at http://www.sics.se/~adam/slides/contiki-emnets.ppt

More Related