As complex to run on nodes. On the

As mentioned before we have announced two fields of applications, which are sensors nodes / sensing applications and gateways. According to different environments we want to compare these operating systems starting with Contiki-NG and RIOT for end nodes and ending with Android Things, Contiki-NG and Windows 10 IoT Core for gateways. subsection{Sensors}To give the reader a better view of the different operating systems, we have concluded the differences and similarities in Table 1. The table shows the RAM and ROM for the different operating systems. Therefore, we already see that Android Things and Windows 10 IoT Core are too complex to run on nodes.

On the other side, Contiki-NG and RIOT are quite constrained according to RAM and ROM.After a quick overview over the table we see that RIOT and Contiki-NG support MCUs. For example, processors are usually not used in embedded systems because they need external sources to handle memory, input and output. However a microcontroller unit uses an embedded design and several pins to manage these functionalities.This is the reason why we decided that in the topic of sensors RIOT and Contiki-NG are suitable operating systems. To go further into this we start looking at the targeted device classes that the IETF introduced: Contiki-NG is an operating system for class 0 and 1 because of its small RAM requirements of less than 10 kB. Hence, RIOT only needs around 1.

We Will Write a Custom Essay Specifically
For You For Only $13.90/page!


order now

5 kB of RAM in its minimal state and is therefore considered a class 0-2 device. As you can see both operating systems fulfill the requirement to run on very restrained nodes which is for instance one of the main goals in Wireless Sensor Networks.ewlineMoving on, we want to compare the different kernel architectures. RIOT has a microkernel, whereas Contiki-NG is using a layered kernel model. The microkernel however is to prefer in bigger systems because of its fault tolerance, less dependencies and therefore its easier maintainability. Furthermore, the minimum set of functions that runs in kernel mode make it more reliable. RIOT is designed in a modular way where the size of the kernel is minimized. The microkernel is written in ANSI C and supports a POSIX-like API which is developer friendly as mentioned before.

ewlineHowever, Contiki-NG is using a layered kernel approach which is better according to performance in small systems.Furthermore, the scheduling in Contiki-NG is purely event driven using lightweight Protothreads which only need about 2 Bytes per Protothread and no further stack. This scheduling is optimal for pure event processing e.g. handling interrupts from a sensor. On the contrary RIOT uses a preemptive scheduling, also called tickles scheduler. This means that if there are no pending tasks, it switches to idle mode. This way of scheduling guaranties a maximum time of deep sleep modes which also minimizes the energy consumption for the entire system.

ewlineTo continue with networking we need to point out that Contiki-NG is restructuring Contiki’s network stack in order to adapt to newest technologies in low power and lossy networks and focusing on secure IPv6 based communication and reliability. Therefore, Contiki-NG and also RIOT support protocols such as IPv6, CoAP, TCP, RPL, 6LoWPAN and IEEE 802.15.4 which are desired in the context of Wireless Sensor Networks.ewlineTo sum it all up, both Contiki-NG and RIOT are strong representatives of operating systems for sensing applications.

However, RIOT’s modular design and its energy efficiency are more persuasive according to our study