Professional Documents
Culture Documents
Gen600 Final Technical Report: Research in Internet of Things' Operating Systems (Iot Os'S)
Gen600 Final Technical Report: Research in Internet of Things' Operating Systems (Iot Os'S)
Salahuddin M. ElKazak
Abstract
With the recent extraordinary scientific discoveries and technological advances computers have
become ubiquitous and the vision of Internet of Things (IoT) is coming to reality; while Operating
Systems (OS's) may be considered a relatively old field of research, its unique role in the IoT and
the crucial reliance on it being critically efficient in various ways for various types of Things re-
ignites its field of research once more. This report first introduces the two terminologies IoT and OS
explaining what they are and defining their relationship to one another. Then, the report continues to
explore the field of IoT OS's and current research as a form of survey report. Finally, the report
proves that the field of IoT has reignited the field of OS research and that current IoT OS's are still
in need of valuable research to enforce the field of IoT and let it thrive into fruition.
Keywords: IoT, Internet of Things, OS, Operating Systems, Field of Research, Survey on
IoT OS
Table of Contents
1.Introduction.......................................................................................................................................5
2.Objectives..........................................................................................................................................6
3.What is IoT........................................................................................................................................7
3.1.IoT as a new area of research.....................................................................................................8
3.2.IoT's importance in the future....................................................................................................8
4.What are Operating Systems...........................................................................................................10
4.1.OS's as an old ongoing technology..........................................................................................11
4.2.OS's impact due to IoT............................................................................................................12
4.3.Comparison between IoT OS's and nonIoT OS's.....................................................................13
4.4.Differing Concepts...................................................................................................................14
4.5.Need for a special OS..............................................................................................................15
5.Survey on IoT OS's..........................................................................................................................16
5.1.Comparison of IoT OS's..........................................................................................................18
5.2.Most used IoT OS's..................................................................................................................19
5.3.Specialized usage of IoT OS's.................................................................................................20
6.IoT OS as an area of research..........................................................................................................21
7.Conclusion.......................................................................................................................................22
8.Future Work.....................................................................................................................................23
List of Tables
Table 5.1: IoT OS Comparisons (Several Cited Resources)...............................................................18
List of Figures
Figure 3.1: MCU Billion Dollar Sales (Micrium, 2015)......................................................................9
Figure 3.2: Billion MCU Unit Shipments (Micrium, 2015).................................................................9
Figure 4.3: Impact of application and hardware trends on OSs, what’s broken in current OS design,
and the OS outlook. (Milojičić, D., Timothy, R., 2016).....................................................................12
Figure 4.4: Typical components of an OS for low-end IoT devices,including a common low-power
IPv6 protocol stack.............................................................................................................................13
List of Abbreviations
Acronym Expanded Form Acronym Expanded Form
1. Introduction
With the recent extraordinary scientific discoveries and technological advances computers have
become ubiquitous and the vision of Internet of Things (IoT) is coming to reality; while Operating
Systems (OS's) may be considered a relatively old field of research, its unique role in the IoT and
the crucial reliance on it being critically efficient in various ways for various types of Things re-
The applications and usage of IoT and the need for its specialized OS's along with the slow reaction
of researchers is an alarm for the urgency of more research in this area. IoT developers/researchers
are still rare, many cannot even define the word correctly. OS developers/researchers are also rare
and that is due to the fact that it is a highly specialized field with a very slow curve and tolerance
for change.
This report first introduces the two terminologies IoT and OS, in the first and second sections,
explaining what they are and defining their relationship to one another. Then in the third section, the
report continues to explore the field of IoT OS's and current research as a form of survey report.
Finally in the last sections, the report proves that the field of IoT has reignited the field of OS
research and that current IoT OS's are still in need of valuable research to enforce the field of IoT
2. Objectives
The main importance of this report lies in the need to grasp IoT researchers' attentions and lead
3. What is IoT
The Internet of Things (IoT) is the vision of interconnecting objects, users and entities or “things”.
While humans can communicate with others via various applications and websites, the vision is to
enable human to object communication, object to object communication and various variations
(ITU-T, 2012).
The Internet is no longer limited to human communication, for example one may communicate with
their own air conditioner and instruct it to start working before arriving home. Even more so, let the
car deliver that instruction automatically, it can use the Internet to predict traffic, tell the air
conditioner that you are heading home and the expected arrival time depending on which the air
While this may seem of science-fiction or at least extremely luxurious for homes, it is the natural
evolution of the Internet. More and more devices are becoming connected in the industry either to
be controlled, used for sensing or be simply accounted for. Smart grids are demanding an IoT
structure to rationalize nation-wide energy consumption. Wireless Sensor Networks are turning into
an IoT structure.
it is not a new terminology or idea, however only recently when computers in general and
embedded systems in particular became ubiquitous, the field of IoT research started booming.
more and more people contribute unknowingly to it. However, without proper research, IoT can
Imagine a world of IoT without any regulations, without any security designs, without efficient use
of technology. The result could range from simple invasion of people's privacy to illegal control of
cities perhaps even countries. Even ignoring the security threats, how about electrical and energy
threats, what about efficient use of power and rules for conserving it?
As shown in Figure 3.1 and Figure 3.2, micro-controller unit (MCU) sales have been booming in
the last few years. This is a powerful indicator of the future and demand for Embedded Systems
Operating Systems (OS's) are system programs that manage computer resources whether tangible
resources (like memory, storage, network, input/output etc.) or intangible resources (like running
other computer programs as processes, providing logical ports for different network connections
etc.). The OS mainly comprises of a kernel, utility software and a system shell.
The kernel contains modules for managing various resources. It is the real master and controller of
the hardware; it gives permissions/authorization to other software and users to perform any action.
The kernel, from its name, is the most essential and core part of the OS without which an OS will be
useless. Examples of popular kernels are Linux, Minix, Windows NT, XNU and Unix. As opposed
to their encompassing OS's that could be of various distributions and flavors like Ubuntu (Linux),
Android (Linux), Embedded Linux (Linux), Fedora (Linux), RedHat (Linux), Windows XP (NT),
Windows 7 (NT), MacOS (XNU), iOS (XNU), FreeBSD (Unix), NetBSD (Unix).
Utility software supports the OS's operation and provides the kernel with essential software like
debuggers, compilers, etc. It also provides users access to basic software like text editors etc.
existing with almost no agreed upon standards, and proprietary, the code being almost exclusive to
Since they are an essential part of almost any computer/device, their developers and designers try
not to change anything that is not broken for the sake of stability, (Milojičić, D., Timothy, R.,
2016).Not being able to change quickly forces any field to have a slow research and development
process. This results in a field that is not very attractive which further impedes its growth.
OS's previously were designed after the classical models like the Harvard or Von Neumann
architectures, which is no longer applicable with new parallel and distributed models that require
OS research thrived with open source according to (Milojičić, D., Timothy, R., 2016); which would
be expected since by definition, an open source product would provide researchers with a cheaper
bounded by the extremes. Going outside these zones will compromise the optimizations for this
sweet spot. Thus, the Linux community has less interest in going outside the current zones, where
Furthermore, (Milojičić, D., Timothy, R., 2016) believes that current OS's cannot change enough to
suit future changes in both directions (high-end and low-end devices). Our concern is low-end IoT
devices and Figure 4.3 shows impact on OS design in general including IoT OS's.
longer actively supporting technological advancements. The article proceeds to stress on hardware,
software and network trends that force the nonIoT OS's to serve only a specific group instead of
being general-purpose.
(Hahm et al, 2015) describes an IoT OS's structure for low-powered devices. All changes and
segments supporting the previous arguments and described in more details in the next segment.
critically pinpoints the defining differing concepts between IoT and nonIoT OS's and hence, the
The hardware trends are changing rapidly towards more complex internal structures which demand
control by the OS, this would require changes in the OS structure. Furthermore, the hardware
structure has flexible energy requirements that should be supported by the OS. Moreover, the
emergence of Nonvolatile Memory (NVM) and Nonvolatile RAM (NVRAM) changes the typical
Additionally, even the most stable and feature-rich OS's fail to completely envelope the hardware
due to proprietary drivers and thus fail to withhold the fundamental purpose of OS's as resource
managers. Finally, the diversity and fast-paced technological improvements cannot be fully
On the other hand, application models are shifting towards rack-scale computing; this demand for
large-scale scalable parallel distributed computing would definitely require a technological shift in
the structure of OS design to match it. Even more, the applications would require virtual machine
technologies to adapt to their separate needs of hardware, networks and supporting software.
Specifically pinpointing the lagging OS aspects, the monolithic kernel in-memory structure that
requires the kernel to be the sole controller of the system fails the distributed structure which has
separate memories across network(s). This also affects the security of the system since high-
privileged data requires secure communication which would have to occur across platforms and
networks. More so, it will affect the scheduling algorithms which depend on a limited number of
Two critical stacks of the OS should also be changed, the network and data storage/filesystem
stacks. These are affected by Direct Memory Access (DMA) due to their demanding bandwidth of
large data streams. This causes a demand of computer structural change like using the network
interface card as a simple switch or using solid-state drives as a storage underlying technology.
These changes would have to be adapted for large-scale parallelized and distributed systems with
multi-core integration. Their basic data structures and governing protocols would have to be suited
avoiding the use of OS's would be ignoring the technological advancements in this particular area.
IoT devices need to manage their resources, OS's act mainly as resource managers.
IoT devices are usually simple in nature and exist mainly for a few purposes like smoke sensors or
a.c. controllers or TV's etc. However, ignoring the uses of OS's in appropriately managing resources
especially now that there is an extra network stack added to each and every IoT device would be
counter-productive.
Finally, the supporting and suggested structural changes discussed previously can only indicate and
prove one thing, that current general-purpose OS's are no longer general-purpose and that specific-
“TinyOS is an open source, BSD-licensed operating system designed for low-power wireless
devices, such as those used in sensor networks, ubiquitous computing, personal area networks,
smart buildings, and smart meters. A worldwide community from academia and industry use,
develop, and support the operating system as well as its associated tools, averaging 35,000
“Contiki is an open source operating system for the Internet of Things. Contiki connects tiny low-
Carnegie Mellon University with multi-hop networking support for use in wireless sensor networks.
Nano-RK currently runs on the FireFly Sensor Networking Platform as well as the MicaZ motes. It
includes a light-weight embedded resource kernel (RK) with rich functionality and timing support
using less than 2KB of RAM and 18KB of ROM. Nano-RK supports fixed-priority preemptive
multitasking for ensuring that task deadlines are met, along with support for CPU, network, as well
as, sensor and actuator reservations. Tasks can specify their resource demands and the operating
system provides timely, guaranteed and controlled access to CPU cycles and network packets.
Together these resources form virtual energy reservations that allows the OS to enforce system and
“FreeRTOS is a market leading RTOS from Real Time Engineers Ltd. that supports 35 architectures
and received >113000 downloads during 2014. It is professionally developed, strictly quality
controlled, robust, supported, and free to embed in commercial products without any requirement to
expose your proprietary source code. FreeRTOS has become the de facto standard RTOS for
microcontrollers by removing common objections to using free software, and in so doing, providing
“ARM® mbed OS is an open source embedded operating system designed specifically for the
"things" in the Internet of Things (IoT). It includes all the features you need to develop a connected
product based on an ARM Cortex-M microcontroller, and is perfect for applications including smart
“RIOT is an operating system designed for the particular requirements of Internet of Things (IoT)
scenarios. These requirements comprise a low memory footprint, high energy efficiency, real-time
capabilities, a modular and configurable communication stack, and support for a wide range of low-
power devices. RIOT provides a microkernel, utilities like cryptographic libraries, data structures
(bloom filters, hash tables, priority queues), or a shell, different network stacks, and support for
various microcontrollers, radio drivers, sensors, and configurations for entire platforms, e.g. TelosB
“Brillo brings the simplicity and speed of software development to hardware for IoT with an
embedded OS, core services, developer kit, and developer console.” (Brillo, 2015)
As shown in Table 5.1, typical configuration sizes are in a few kilobytes of RAM and ROM built
for embedded architectures and platforms. Most OS's are working on supporting various low-power
communication technologies which is a recognized area of research. The competition also exists in
supporting the huge variety of embedded system architectures available while some are dedicated to
particular architectures. While the licenses displayed above are exclusively Open Source variants,
there are proprietary OS's for mobile and other embedded platforms. OS challenges like multi-
threading and event handling can be viewed as an important issue displayed on their respective
websites.
2. IoT-specialized OS's are new and limited because the field is new.
3. IoT specialists are few. Most developers, researchers and even companies are in the learning
phase.
Leading with these three reasons, which are a summary of the findings of a few surveys like
(Skerret, I., 2015) and (Progress, 2015), it is difficult to find a correct answer for what is the most
While the answer is difficult, it could be misleading to assume or take for granted the fact that
Linux is the most used kernel and Linux-based OS's are the dominant IoT OS's. The surveys stress
on Linux, Android (a Linux-based OS), Embedded Linux (another Linux-based OS) as the most
Mobile-based OS's are very well a part of the IoT, they probably will be the main interface in the
future. However, there lies millions of other things that are still not connected to the Internet and a
lot others that cannot make use of heavy OS's (heavy in the sense of ROM/RAM requirements and
power consumption) such as the Wireless Sensor Networks (WSNs) that may be power-critical.
Minimalistic OS's as shown in Table 5.1 will dominate the embedded world of the Internet of
Things; that is not only my opinion but of other researchers too such as (Milojičić, D., Timothy, R.,
low-resource demands. This is demanded in most IoT devices which are usually constrained devices
relative to processing, storage and in general power consumption. These devices usually rely on
According to (Hahm et al, 2015), three IoT OS categories exist: multi-threaded, event-driven and
worst-case real-time. They believe that RIOT, Contiki and FreeRTOS will become the dominant in
the field of IoT. RIOT being dominant in the multi-threaded category. Contiki in the event-driven
Checking the Internet Archive for snapshots of wikicfp.com, the number of IoT call for papers in
2014 was 132. Astonishingly, viewing the current version in January 2016, there are 259 call for
papers. The number of IoT call for papers has doubled in 2 years!
In 2015, even in the industry, multinational billion dollar companies like Google and Huawei
announced that they are developing their own IoT OS's, respectively Brillo OS (Brillo, 2015) and
Building on the previous facts, it is very safe to assume that IoT OS as an area of research is not
only in its beginning, but it is gaining a clear and heavy momentum for years to come. This should
place its researchers and specialists in a very high demand in upcoming years and would be a clear
7. Conclusion
The report has shown that the IoT market is rapidly expanding, the current demand for IoT and the
The report displayed various statistics and surveys concerning the demand for different OS's and
The report also compared current IoT OS's with one another to view their differences and their
The report further analyzed these comparisons into a single conclusion, IoT OS research is a new
8. Future Work
This report argued for the sake of IoT OS research and a detailed analysis of a number of surveys
has been covered to enforce the argument; this has lead to the conclusion that this type of research
is worthy of contributing to and should be joined as early as possible for greater impact on its
future.
Another issue that has been recognized in the referenced documents is IoT OS's security measures
and their urgent need for standardization. A few ideas regarding various encryption schemes and
security protocols have been discussed privately and should be implemented as part of a few
Further work with more specialized areas of research such as IoT applications in country-wide
traffic, smart grids and large world-wide projects concerning the hubble telescope and hackerspace
grids have inspired the author with important improvements to IoT OS's.
References
[Ashton, 2009] Ashton, K. (2009). That 'Internet of Things' Thing. RFID Journal LLC. Retrieved
[Contiki, 2015] Contiki (2015). Contiki: The Open Source OS for the Internet of Things. Contiki-
[FreeRTOS, 2015] FreeRTOS (2015). FreeRTOS: Quality RTOS & Embedded Software.
[Hahm et al, 2015] Hahm, O., Baccelli, E., Petersen, H., Tsiftes, N. (2015). Operating Systems
[ITU-T, 2012] ITU-T (2012). Overview of the Internet of things. ITU-T. Retrieved from
[Lavington, 1998] Lavington, S. (1998). A History of Manchester Computers. 2nd ed. Swindon:
[Liteos, 2015] Huawei (2015). Huawei’s Agile Network 3.0 Architecture Launched at Huawei
[mbed, 2015] mbed (2015). mbed OS. ARM mbed.com. Retrieved from
[Micrium, 2015] Micrium Embedded Software (2015). The Internet of Things and RTOS.
[Milojičić, D., Timothy, R., 2016] Milojičić, D., Timothy, R. (2016). Outlook on Operating
Systems. IEEE Computer Society. Retrieved from IEEE Computer Magazine, 01.16 ed.
[Progress, 2015] Progress (2015). State of IoT: 2015 Global Developer Study. Progress.com.
[RIOT, 2015] RIOT (2015). RIOT - The friendly Operating System for the Internet of Things.
[Skerret, I., 2015] Skerret, I. (2015). IoT Developer Survey 2015. Eclipse Foundation. Retrieved
2016, Jan.