/** \mainpage The Contiki Operating System 2.x \author Adam Dunkels The Contiki operating system is a highly portable, minimalistic operating system for a variety of constrained systems ranging from modern 8-bit microcontrollers for embedded systems to old 8-bit homecomputers. Contiki provides a simple event driven kernel with optional preemptive multithreading, interprocess communication using message passing signals, a dynamic process structure and support for loading and unloading programs, native TCP/IP support using the uIP TCP/IP stack, and a graphical subsystem with either direct graphic support for directly connected terminals or networked virtual display with VNC or Telnet. Contiki is written in the C programming language and is freely available as open source under a BSD-style license. More information about Contiki can be found at the Contiki home page: http://www.sics.se/~adam/contiki/ \section contiki-mainpage-tcpip TCP/IP support Contiki includes the uIP TCP/IP stack (http://www.sics.se/~adam/uip/) that provides Contiki with TCP/IP networking support. uIP provides the protocols TCP, UDP, IP, and ARP. \sa \ref uip "The uIP TCP/IP stack documentation" \sa \ref tcpip "The Contiki/uIP interface" \sa \ref psock "Protosockets library" \section contiki-mainpage-threads Multi-threading and protothreads Contiki is based on an event-driven kernel but provides support for both multi-threading and a lightweight stackless thread-like construct called protothreads. \sa \ref process "Contiki processes" \sa \ref pt "Protothreads" \sa \ref etimer "Event timers" \sa \ref mt "Optional multi-threading" \section contiki-mainpage-lib Libraries Contiki provides a set of convenience libraries for memory management and linked list operations. \sa \ref timer "Simple timer library" \sa \ref memb "Memory block management" \sa \ref list "Linked list library" */