blob: 9c71711a6c00262ec238918d52d60c1f0c3e703f [file] [log] [blame]
adamdunkels988ec502004-09-01 18:11:55 +00001Contiki is an open source, highly portable, networked, multi-tasking
2operating system for memory-constrained systems.
adamdunkelsca9ddcb2003-03-19 14:13:31 +00003
adamdunkels988ec502004-09-01 18:11:55 +00004Contiki runs on a variety of tiny systems ranging from embedded 8-bit
5microcontrollers to old homecomputers such the Commodore 64. Code
6footprint is on the order of kilobytes and memory usage can be
7configured to be as low as tens of bytes.
adamdunkelsca9ddcb2003-03-19 14:13:31 +00008
adamdunkels988ec502004-09-01 18:11:55 +00009Contiki provides a simple event-driven kernel with per-process
10optional preemptive multi-threading, interprocess communication using
11message passing through events, a dynamic process structure with
12support for loading and unloading programs, native TCP/IP support
13using the uIP TCP/IP stack, and a GUI subsystem with either direct
14graphic support for locally connected terminals or networked virtual
15display with VNC or over Telnet.
adamdunkelsec09d9b2004-07-04 11:23:38 +000016
adamdunkels988ec502004-09-01 18:11:55 +000017The Contiki source code is split into the following directories:
adamdunkelsec09d9b2004-07-04 11:23:38 +000018
adamdunkels988ec502004-09-01 18:11:55 +000019 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
adamdunkelsca9ddcb2003-03-19 14:13:31 +000026
adamdunkels988ec502004-09-01 18:11:55 +000027To build a Contiki system, you also need a Contiki port. This contains
28all the architecture specific files needed to build an actual
29system. For most ports, the build procedure is simple: place the
30port's directory in the same directory as the contiki/ directory and
31run "make" (or "gmake" under FreeBSD) in the port's directory.