| Contiki is an open source, highly portable, networked, multi-tasking |
| operating system for memory-constrained systems. |
| |
| Contiki runs on a variety of tiny systems ranging from embedded 8-bit |
| microcontrollers to old homecomputers such the Commodore 64. Code |
| footprint is on the order of kilobytes and memory usage can be |
| configured to be as low as tens of bytes. |
| |
| Contiki provides a simple event-driven kernel with per-process |
| optional preemptive multi-threading, interprocess communication using |
| message passing through events, a dynamic process structure with |
| support for loading and unloading programs, native TCP/IP support |
| using the uIP TCP/IP stack, and a GUI subsystem with either direct |
| graphic support for locally connected terminals or networked virtual |
| display with VNC or over Telnet. |
| |
| The Contiki source code is split into the following directories: |
| |
| apps/ - Applications |
| conf/ - Example configuration files |
| ctk/ - CTK, the Contiki GUI toolkit |
| doc/ - Files for building documentation from the sources |
| ek/ - Event kernel, multitasking, protothreads |
| lib/ - Libraries |
| uip/ - The uIP TCP/IP stack |
| |
| To build a Contiki system, you also need a Contiki port. This contains |
| all the architecture specific files needed to build an actual |
| system. For most ports, the build procedure is simple: place the |
| port's directory in the same directory as the contiki/ directory and |
| run "make" (or "gmake" under FreeBSD) in the port's directory. |