A week ago the Contiki embedded operating system announced uIPv6, the world’s smallest compliant IPv6 stack, developed by Cisco, Atmel, and SICS. Contiki now releases the first snapshot release that contains uIPv6, released under a 3-clause BSD-style license.
Contiki is a very small multitasking operating system, designed specifically for memory-constrained networked devices. And with small, I mean really small – it requires 2 kilobytes of RAM, and 40 kilobytes of ROM.
Contiki consists of an event-driven kernel on top of which application programs are dynamically loaded and unloaded at runtime. Contiki processes use light-weight protothreads that provide a linear, thread-like programming style on top of the event-driven kernel. Contiki also supports per-process optional preemptive multi-threading, interprocess communication using message passing through events, as well as an optional GUI subsystem with either direct graphic support for locally connected terminals or networked virtual display with VNC or over Telnet.
The footprint of uIPv6 is also quite tiny – 11 kilobytes of code and 2 kilobytes of buffer memory – yet uIPv6 passes all the tests required for IPv6 Ready Phase 1 approval. The open source release of uIPv6 makes IPv6, previously considered too heavyweight, available even to memory-constrained networked embedded devices such as wireless sensors.
This might let people rethink their opinion on IPv6 and maybe we can slowly (and finally) move to IPv6.
This may be very important for the “an IP address for every device” idea of IPv6. It’s hard to have your toaster on IP if it needs a meg of RAM just to handle the IPv6 stack.