Operating Systems for IoT
Now the things we need in the operating system are different kinds of the kernel. Now kernels are usually divided into Monolithic kernel, layered kernel, and micro-kernel.
The monolithic kernel lacks modularity and is also complex. In a layered approach, there are two things which are kernel mode and user mode. Micro-kernel is one of the preferred options for operating systems of IoT. It has limited setup tools and it also operates under kernel and user mode but it performs limited operations.
IoT OS
· Boot Loader with Application
· Tiny OS
· Contiki OS
· RIOT OS
· Free RTOS
So main thing before OS, we had a Boot Loader which is also considered as an operating system and this type of system is more in number, for example, one of Boot Loader OS types is RTOS(Real-Time Operating System) which are more than 3000.
Now 10 years back we had an operating system called Tiny OS, this system is small, and also it is almost outdated now in 2021 so it does not support the latest IoT devices. It is based on a monolithic kernel and it uses a programing language called NESC(Network Embedded System C compiler). It has algorithms, protocols, device drivers, file systems, and also shell but as it is not actively maintained it has many issues.
One of the popular OS is RIOT which has a limited memory footprint so it is popular among the IoT OS. It is based on the micro-kernel operating system so the microkernel approach is the ultimate approach for memory minimization. It has a tick-less scheduler, so during an ideal time, the thread will go to the ideal. Also, most of these threads are running under low clock speed so it is decent to work with the low clock speed and power utilization will be minimum, and frequency of operation will also be minimum. It supports C and C++ and also POSIX(Portable Operating System Information Exchange).
Another OS is Free RTOS which is similar to Boot Loader but has only 4–5 files which make it the entire operating system, so it is a simple operating system but has many issues and functionalities that are very few.
Now the most popular OS for IoT is Contiki OS which supports a wide variety of sensor devices and many auto-motive devices. Newest Contiki Os is Contiki OS(NG) i.e next generation of OS which is based on layered architecture, it supports C and C++, it is based on protothreads, it has an Ip stack called micro Internat protocol stack, it also has device drivers and it provides communication APIs. Here code replacement can be done during runtime for example if sensors are running or IO devices are running, during the runtime itself, we are able to modify the code so that the sensors will be running with the new setup code after the programming.
Comparison Between Tiny OS, Contiki OS, and RIOT