>> Contiki will soon face competition from the likes of Microsoft, which recently announced Windows for the Internet of Things [0]. But while Microsoft’s new operating system will be free for devices less than 9 inches in size, it won’t be open source. And Contiki has an 11-year head start.<p>What? Why even mention windows here, these two OS's aren't even close to being in the same category other than they share the price tag of "free". I'd like to see windows try to run in under 128mb let alone the 1mb for linux or the mere kilobytes need for Contiki. A windows mention here seems very out of place.<p>[0] <a href="http://www.wired.com/2014/04/free-windows/" rel="nofollow">http://www.wired.com/2014/04/free-windows/</a>
It's interesting to see that Contiki is taking the lead in this space, since it was once going toe-to-toe with another open source OS for wireless embedded networked devices, TinyOS. TinyOS had a large following in the research community and I believe it was used in several commercial sensor network deployments by Dust Networks and Arch Rock and at least one other Korean startup company -- that i believe is still using it in their deployments.<p>Adam Dunkel has done a nice job of pulling Contiki from the obscure research community and into the commercial space and is riding the "internet of things" wave right now. We'll see if it lasts. I'm not familiar with what developments have taken place on their OS since maybe 2010 or so.
Note that it's got a pretty good emulator, with a VM image to get you up and running fast:<p><a href="http://contiki-os.org/start.html" rel="nofollow">http://contiki-os.org/start.html</a><p>(ironically a 1GB download for a Micro-OS)<p>The emulator lets you do interesting things, like experimenting with mesh networking, that would require quite a lot of hardware to try for real. (Plus it's a lot quicker than flashing 15 nodes every time you make a bugfix!)
The last time I read about Contiki, all of the screenshots were running on a C64. And it looked <i>awesome</i>! It made me want to play with it on my C64. The current website is all boring network simulation stuff. Looks like a corporation.<p>But, I'm happy to hear Open Source continues to make inroads into the embedded space. There's billions of devices out there that sometimes people's lives depend on running a terrifying array of proprietary and unmaintained software that is potentially broken in subtle (or not so subtle) ways.<p>Edit: Here's all the stuff about ports to a variety of awesome hardware: <a href="http://hitmen.c02.at/html/tools_contiki.html" rel="nofollow">http://hitmen.c02.at/html/tools_contiki.html</a>
I love this, I remember back when Adam Dunkels came up with this and feeling proud that he was from Sweden.<p>Here's a quote of his I kept with me from those days, paraphrased.<p><pre><code> When I program I always try to code as if I'm writing for a PDP-11.
</code></pre>
So no wonder he made such compact C code for the C64.
I'm using this wonderful operating system for my own sideproject for LED juggling props.<p>Aside from the strong hardware support and large community behind it, Thingsquare has recently released it's slides from their training classes on Contiki that give an excellent overview. Porting an already existing platform to my own custom hardware has been relatively painless compared to Linux or an RTOS, though it is difficult to make Contiki's makefile based workflow work well in an IDE.<p>Cooperative protothreads are surprisingly easy to work with, and the IP/mesh networking stack is highly configurable at each layer. Combined with an excellent overall code quality, this is the very first open-source project I've ever really wanted to get involved in.
<a href="https://www.youtube.com/watch?v=OMzgp7xTp1k" rel="nofollow">https://www.youtube.com/watch?v=OMzgp7xTp1k</a><p>Some example of Contiki running and browsing the internet on 20 year old hardware with 64k of ram (Apple IIe)... video is a few years old but still impressive.<p>I think I want to try and get this running on some atmel hardware just for fun :)
I am unsure about this. It's big advantage is its size and that it does not require as much HW support like Linux (like a MMU). The disadvantage is that it's not a *nix and you loose the whole ecosystem (no Posix).<p>In my opinion the space that it occupies (the "Internet of Things"), is not well-defined and it may be probably cheeper to use something like a full-blown small computer (like the rasperry-pi) with Linux on it.
This is well known in IoT field I assume, I used it a few years back, after comparing with tinyos and such.
Basically you have Linux, then FreeRTOS, then Contiki, from large system to the tiny devices.
Based on this embedded systems survey [1], FreeRTOS is actually quite popular.<p><a href="http://www.freertos.org/" rel="nofollow">http://www.freertos.org/</a><p>[1] <a href="http://www.eetimes.com/document.asp?doc_id=1322014&print=yes" rel="nofollow">http://www.eetimes.com/document.asp?doc_id=1322014&print=yes</a>
Suported hardware: <a href="http://contiki-os.org/hardware.html" rel="nofollow">http://contiki-os.org/hardware.html</a>. Lot of major players in there it seems.
The part I'm interested in for now. It will be fun to have it running inside a C64 emulator on a $50 Android tablet <a href="http://contiki.cbm8bit.com" rel="nofollow">http://contiki.cbm8bit.com</a>
I wonder about name liabilities with the other famous Contiki.<p><a href="http://www.contiki.com/" rel="nofollow">http://www.contiki.com/</a>