* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download The Contiki Operating System
Survey
Document related concepts
Berkeley Software Distribution wikipedia , lookup
Plan 9 from Bell Labs wikipedia , lookup
Distributed operating system wikipedia , lookup
Security-focused operating system wikipedia , lookup
Process management (computing) wikipedia , lookup
Library (computing) wikipedia , lookup
Linux kernel wikipedia , lookup
Burroughs MCP wikipedia , lookup
Kernel (operating system) wikipedia , lookup
Transcript
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 “Contiki runs on tiny and prehistoric computers, yet is able to do much of what we expect from large and modern computers.” 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/i ndex.html 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 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 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) 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 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 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. Event-driven Event-driven (TinyOS) Processes do not run without events Event occurs: kernel Kernel invokes event handler Event handler runs to completion (explicit return;) Handler Handler Handler Handler Contiki: implementing threads on top of an event-based kernel Event Event Kernel Event Event Thread Thread 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. End Works Cited Slides 10 and 11 Taken from Adam Dunkles Presentation Contiki – a Lightweight and Flexible Operating System for Tiny Networked Sensors found at http://www.sics.se/~adam/slides/contikiemnets.ppt