adamdunkels | 988ec50 | 2004-09-01 18:11:55 +0000 | [diff] [blame] | 1 | Contiki is an open source, highly portable, networked, multi-tasking |
| 2 | operating system for memory-constrained systems. |
adamdunkels | ca9ddcb | 2003-03-19 14:13:31 +0000 | [diff] [blame] | 3 | |
adamdunkels | 988ec50 | 2004-09-01 18:11:55 +0000 | [diff] [blame] | 4 | Contiki runs on a variety of tiny systems ranging from embedded 8-bit |
| 5 | microcontrollers to old homecomputers such the Commodore 64. Code |
| 6 | footprint is on the order of kilobytes and memory usage can be |
| 7 | configured to be as low as tens of bytes. |
adamdunkels | ca9ddcb | 2003-03-19 14:13:31 +0000 | [diff] [blame] | 8 | |
adamdunkels | 988ec50 | 2004-09-01 18:11:55 +0000 | [diff] [blame] | 9 | Contiki provides a simple event-driven kernel with per-process |
| 10 | optional preemptive multi-threading, interprocess communication using |
| 11 | message passing through events, a dynamic process structure with |
| 12 | support for loading and unloading programs, native TCP/IP support |
| 13 | using the uIP TCP/IP stack, and a GUI subsystem with either direct |
| 14 | graphic support for locally connected terminals or networked virtual |
| 15 | display with VNC or over Telnet. |
adamdunkels | ec09d9b | 2004-07-04 11:23:38 +0000 | [diff] [blame] | 16 | |
adamdunkels | 988ec50 | 2004-09-01 18:11:55 +0000 | [diff] [blame] | 17 | The Contiki source code is split into the following directories: |
adamdunkels | ec09d9b | 2004-07-04 11:23:38 +0000 | [diff] [blame] | 18 | |
adamdunkels | 988ec50 | 2004-09-01 18:11:55 +0000 | [diff] [blame] | 19 | apps/ - Applications |
| 20 | conf/ - Example configuration files |
| 21 | ctk/ - CTK, the Contiki GUI toolkit |
| 22 | doc/ - Files for building documentation from the sources |
| 23 | ek/ - Event kernel, multitasking, protothreads |
| 24 | lib/ - Libraries |
| 25 | uip/ - The uIP TCP/IP stack |
adamdunkels | ca9ddcb | 2003-03-19 14:13:31 +0000 | [diff] [blame] | 26 | |
adamdunkels | 988ec50 | 2004-09-01 18:11:55 +0000 | [diff] [blame] | 27 | To build a Contiki system, you also need a Contiki port. This contains |
| 28 | all the architecture specific files needed to build an actual |
| 29 | system. For most ports, the build procedure is simple: place the |
| 30 | port's directory in the same directory as the contiki/ directory and |
| 31 | run "make" (or "gmake" under FreeBSD) in the port's directory. |