The Windows Club

Contiki OS vs Windows 10 for Internet of Things

If you have been creating smart devices, you sure might have worked on Contiki OS. Almost all devices prior to the launch of Windows 10 IoT edition were either using Contiki OS or Linux for creating interactive smart devices that make the Internet of Things. There are some other lesser known OS too. So which is better for Internet of Things? This comparison helps you select the OS for your Internet of Things project.

What is Contiki OS

Contiki is an open source operating system for Internet of Things. You can say that Contiki dominates the market when it comes to Internet of Things’ devices. With the introduction of Windows 10 for IoT, future may change as the Windows 10 is now a viable OS for IoT. Check out this comparison – Contiki vs Windows 10 – to know which one of them is better for your IoT project.

Size of Contiki compared to Windows 10 for IoT

When it comes to smart devices or Internet of Things, footprint of the OS is the first thing to consider. Since most of you might be using a single board computer, you will have to keep the OS footprint small so that you can accommodate data etc. on the same board. You have to select an OS that occupies lower space on the board so that there is space available for other apps and data files.

A stripped down version (for e.g., after removing debugging tools) Contiki occupies only 32KB while Windows 10 for IoT is a lot bigger. Basically, Windows 10 for IoT has been designed with Raspberry Pi 2 in mind. The average space requirements for Windows 10 IoT edition is around 200MB. You can see that the difference is huge.

Don’t jump your gun on this one point. Check out other features in this comparison of Contiki with Windows 10 IoT edition. While OS footprint is one objective, the other major objectives of programmers are to provide good interface and security for end users.

Contiki OS vs Windows 10 for IoT

RAM requirements

Contiki is the winner again when it comes to RAM requirements. It can do well with minimum RAM of 10KB. Windows 10 for IoT requires 256MB of RAM when you don’t need display. If you are using display as well, the RAM requirements for Windows 10 for IoT increase to 512MB.

An important point to be noted here is that while Contiki core is 10KB RAM, you’ll need more if you use the full-fledged operating system. In that case, you can expect Contiki’s RAM requirement to be over 50KB but still pretty less compared to Windows 10 IoT edition that requires >= 256MB even for a stripped down, without display option.

User Interface

Coming to the user interface, Windows 10 IoT scores much more compared to Contiki. Both Windows 10 (IoT) and Contiki are able to provide graphical user interface (GUI) to the end users. Contiki, however, is a bit coarse compared to the smooth interface provided by Windows 10 IoT Edition. If you have seen the MS Word for DOS edition, you’ll know what a coarse GUI is. To get an idea, press Windows key and R at the same time to bring up Run dialog. In the Run dialog, type EDIT to open DOS based word processor integrating graphical user interface. Then open Notepad from Start Menu -> All Apps. Check out the interface of both to get an idea of how different is the experience. Obviously, the smoothness of pixels is one of the strongest points of Windows 10 for Internet of Things edition. However, it uses much more RAM to provide this experience.

If you need to provide a user interface that involves considerable steps on part of end users, Windows 10 for IoT is better. But if it is a basic user interface – with not many interactions on part of user, you should go for Contiki as it is not feasible to engage so much RAM (256 MB RAM) for just one or two prompts to the end user. It depends upon what kind of device you are developing.

Security

Experts have many security concerns about Internet of Things. Windows 10 for IoT scores again when it comes to built-in security. It is not that Contiki cannot provide security. In Contiki also, you can implement good security if you know how to go about processing it. That is, you will have to delve deeper into programming to place several checkpoints or at least use Contiki’s pre-built patches that enhance security.

With Contiki, programmers have to use customized security scripts for enhancing security for processes such as firewalls, data transmission over network/Internet, and logins. If you do not wish to spend much time on basic security, Windows 10 IoT is better. If you are ready to code security scripts and user interface is not an issue, Contiki is better.

You can also create security patches for IoT and reuse them when developing on Contiki. An example of such security patches for IoT is implementation of AES encryption for data transmission and encrypted local or cloud storage. You simply developed an independent code that can be called to different programs. While calling such code, you may pass parameters that the code will process for desired results.

Remember that the more security you implement, the more will be OS’ disk requirement and RAM usage.

Conclusion

At the basic level, Windows 10 IoT has all the features that provide good user interface, security, and networking. You can implement the same in Contiki by making use of your programming skills. Thus, if you can accommodate storage, Windows 10 IoT should be preferred as it will save a lot of time on coding. However, if you are constrained on space and RAM (to build smaller devices or to make the device battery last longer), Contiki should be your choice.

The above is a bird’s eye view of Contiki vs Windows 10 for IoT – Internet of Things. This comparison aims to assist you in choosing the better operating system for your IoT project.