Vision, Challenges and Future Perspectives of Low Constrained Devices IOT Operating Systems: A Systematic Mapping Review

— Now the far-fetched reality has become true with the prominence of IOT (Internet of Things) technology. Various individual devices get connected with each other to establish communication. These devices are built on a microcontroller which is responsible to receive and send information. These devices are very small and appropriate Operating Systems are required on the basis of particular device architecture, scheduling methods, network technologies and programming models. IOT Operating Systems are enormously facilitating low constrained devices to deliver their throughput efficiently in a timely manner. This concept helped a lot in emergence of IOT, which has translated our physical world into a digital cyber world. IOT devices consumes less power, less memory and less energy, therefore they need appropriate Operating Systems to act as interfaces. Low constrained Operating Systems are especially designed to provide support to these low constrained devices. Many researches have been conducted to discuss Operating Systems for these low constrained devices. In this study, capsulization of Internet of Things and its building blocks, architecture of IOT Operating System and network stack architecture of state-of - the art IOT Operating Systems such as Contiki, Tiny OS, Free RTOS, RIOT, Zephyr and Mbed OS is investigated. Moreover this, detailed overview of related work is presented with the comparative analysis of this study with the existing surveys. In addition, open research areas are discussed with recommendations.


I. INTRODUCTION
Parallel with the expansion of Internet of Things, network of connected electronic devices is expanding across the globe. To facilitate users, these devices exchange data and information and provide value creation which is going to embrace proximate level of digitization.
Acclivity in wireless technologies has increased demand of IOT devices. These IOT devices interconnected with each other, utilizing embedded sensing and communication. The word 'things' in IOT is referred to as endpoints (devices and things). IOT is the connection of these endpoints through uniquely identifiable IP addresses. Moreover this, IOT bridges gap between virtual and physical realities by acting as an additional layer of information. In several industries and companies, IOT has created a tangible value. Therefore, by 2050 surge of IOT devices is expected. Published  According to IOT Analytics [2], in 2016, more than 4.7 billion devices were connected to the internet and by 2025 it is estimated that there will be birth of more than 21 billion devices [1]. As per [2], Fig. 1 depicts the expected growth of global number of connected IOT devices by 2025.

A. Contribution to this Survey
As compare to recent review papers, this survey is summarized as follows: • This survey presents contribution, structure and selected studies relevant to this study. • We present discussion on IOT building components and their architecture. • Compare to previous review in the same context we cover Contiki, Tiny OS, Free RTOS, RIOT, Zephyr, Mbed OS for low constrained devices. • We review IOT taxonomy along with discussion of key features and characteristics of major IOT OS. • We also contribute towards Network Stack Architecture and also provide a detailed summary of existing surveys. • Open issues are also discussed to facilitate future research studies.

B. Structure of this Survey
In this paper, we encapsulate details of low-end device IOT Operating Systems in frame of reference of architecture, scheduler, programming model, programming language and network stack architecture. We covered Contiki, Tiny OS, Free RTOS, RIOT, Zephyr and Mbed OS.
The contribution of this paper is structured as follows: • It presents a detailed review of previous review studies in the section of Related work. @ @ Vision, Challenges and Future Perspectives of Low Constrained Devices IOT Operating Systems: A Systematic Mapping Review Sumera Rounaq, Muhammad Iqbal • It discusses network stack architecture with appropriate illustrations. • It covers overview of IOT building blocks, components and its architecture. Whole paper is structured as follows: Section I provides introduction; Section II gives contribution and structure of this survey. Table 1 presents selected studies to define the inclusion criteria of our systematic mapping. Section III provides overview of IOT, building components, IOT taxonomy and IOT OS architectures. Next is Section IV which defines IOT Operating Systems used for this study. Section V focuses on architecture types and features of IOT Operating Systems.
Section VI presents Network Stack architecture and Section VII gives comprehensive review of state of art review studies. Comparative analysis of this review with the existing studies is also discussed in this section. Section VIII is dedicated to open research issues followed by Section IX which is comprised of conclusion.

C. Studies selected for this Survey
Following are the studies taken into consideration to complete this survey. Table 1 presents peer review papers along with year of publication and authors.

III. OVERVIEW OF IOT
When it comes to no humanmachine physical contact while solving problems related to science and engineering domain, only one name comes in our mind and that is IOT. IOT is a revolutionary technology that is gaining popularity by leaps and bounds. Due to advancements in network connectivity, real world objects have liberty to establish connectivity between them. Sharing of information is quite feasible and these objects are identified as nodes in IOT framework. Adding more to it, real world objects join their hands with the sensing elements, micro controllers, internet protocols and storage. Integration of the real-world objects make possible all aspects of communication to accomplish real world tasks.

A. IOT Building Components
Things, Gateways, Network Infrastructure (NI) and Cloud Infrastructure mainly participates in the implementation of IOT. Here, the term 'things' is a piece of equipment consists of sensing, actuating, storage or processing capability. Gateway act as an intermediate block between the things and Cloud Infrastructure. To ensure smooth and secure flow, Network Infrastructure (NI) comes into an action to provide control over the information. Imbued with computing proficiencies and information storage, Cloud Infrastructure allows analytical and logical computing abilities. In addition to this, IOT devices must be comprised of a Physical Layer (PHY), an interface and an Internet Protocol (IP) address. Table 2 presents IOT building components, Associated devices and their features [3].

B. IOT Architecture
Architecture is a skeleton that encompasses physical components with underlined principles. Effective IOT Architectures ensures best, fast, and reliable convergence of information technology. Different researchers have been proposed different architectures. Among those three-layer architecture is the basic one which consists of three layers -Perception Layer, Network Layer and Application Layer. Table 3-6 presents layers and their functionalities of threelayer architecture, five-layer architecture, Middleware Architecture and Service Oriented based Architecture. Network Layer It deals with the transmission and processing of information.

Application Layer
It ties to facilitate user with the application specific services. It is responsible to define various applications in which deployment of Internet of Things could be done.

Transport Layer
It takes data from perception layer and transfers it to the processing layer through various mediums such as LAN, 3G, NFC, RFID and Blue tooth.

Processing Layer
It is responsible to take data from transport layer and then it stores, analyze and process huge amount of data. It provides services to subsequent layers and also manage services related to databases, big data and cloud computing.
Middleware Layer It manages complete system and flow of data.
Application Layer It is responsible to give interface to the user. It also presents final view of IOT. These layers deal with actuators and sensors.

Backbone Network Layer
It presents virtualized plane which consist of cloud and servers.

Middleware Layer
It is responsible to take data from transport layer and then it stores, analyze and process huge amount of data. It provides services to subsequent layers and also manage services related to databases, big data and cloud computing.

Coordination and Application Layer
These layers present application plane which provides interface to the user. It maintains services and interrelationships between services. Each service is responsible to initiate messages from a process or service.

C. IOT Taxonomy
IOT taxonomy is a way in which devices are composed to deliver their specific functionalities. In IOT taxonomy, we discuss those layers which are always supposed to be a part of IOT ecosystem. We begin our discussion with perception layer, which is composed of sensors and actuators, where sensors are responsible to collect data while actuators perform actions on that data. These sensors and actuators are further categorized as low-end, middle end and high-end devices. Sensors, actuators, and motes come under the category of low constrained IOT devices. Constrained technologies are deployed on data preprocessing layer. At this layer, there are some security features which filter the data before processing it further to the middleware.
IOT taxonomy defines IOT ecosystem and IOT ecosystem is divided in to six elements. Starting with IOT devices which exist in all layers of IOT architecture can be divided into open source and proprietary IOT devices. IOT devices have limited capability in terms of memory, power, and storage. IOT gateways mediate between sensing networks and high end IOT devices. Gateways are responsible for collection of data from different sensors and then send data for high level processing.
Due to low constrained nature, IOT devices require efficient communication protocol to establish a network of devices. IOT devices cannot connect directly to the internet through IP stack because IP stack requires more power and here low power technologies like WSN, Bluetooth, Zigbee and WIFI came into existence. Fig. 3 presents elements of IOT.

IV. MAJOR IOT OPERATING SYSTEMS
To make IOT application efficient, reliable, and scalable, an Operating system plays a vital role. IOT OS can be categorized as High-End and Low-End Operating Systems. High End OS operate on devices with single board systems for example: Raspberry pi and on the other hand Low End IOT OS acts as an interface for small board with constrained resources for example Arduino. High End and Low-End OS are further classified into Linux based and non-Linux based category. Fig. 4 presents categorization of IOT Operating System.

A. Contiki
It is best suitable for low constrained devices. It was created by Adam Dunkels in 2002 and it was released under license of BSD as an open-source software. It supports light weight preemptive scheduling, and it is considered as most appropriate OS for low constrained devices due to its TCP/IP stack. It is developed with a modular architecture and it is written in C language. Hardware devices that are low constrained in terms of memory, power and communication bandwidth mostly go for Contiki OS. Moreover this, Contiki OS works on three network stack protocols, the ulP TCP/IP stack, which provides IPV4 networking, the ulPV6 stack, which provides IPV6 networking, and the Rime stack, which is comprised of light weight networking protocols especially designed for low power wireless networks.

B. Tiny OS
It is mainly aim for low power devices operate in wireless sensor networks (WSNs), ubiquitous computing, building automation and smart meters. It is written in nesC, which is a dialect of C programming language. It is an open-source software, and it was released under the license of BSD. Tiny OS provides interface to common abstractions like packet communication, routers, sensors, actuators, and storage.

C. RIOT
With a focus on low constrained devices, RIOT can be considered as a good choice. RIOT is developed by FU Berlin. It has micro kernel architecture, and it is written in C and C++. Its programming model is of Hybrid nature and it supports 6LoWPAN and real time scheduling.

D. RIOT
It is based on microkernel architecture and it is a small operating system for low constrained IOT devices. It is developed by Intel subsidiary wind driver. Its programming model supports multithreading, preemptive and nonpreemptive scheduling. It has been developed in C and C++ programming language. It supports Blue tooth Low Energy (BLE) 5.0 because it provides network stack support with multiple protocols.

E. Mbed OS
It is based on monolithic kernel and it provides support for preemptive scheduling. It has written in C and C++ programming language. It is developed by ARM with the focus on low-constrained devices. It supports multithreading, 6LoWPAN, BLE, WiFi, Near Field Communication (NFC) and Radio Frequency Identification (RFID). Recently, it is considered as an epicenter to IOT research and development due to its multifaceted features.

F. Free RTOS
It is based on microkernel architecture and it provides support for preemptive priority based and cooperative scheduler. Its programming model features multithreading, mutexes and semaphores. It is written in C language and it also possesses set of assembly functions. It is built in tickles idle implementation. It uses Idle task hook which allows power saving and due to this nature, it can be considered for low powered IOT devices.

V. ARCHITECTURE TYPES AND FEATURES OF IOT OPERATING SYSTEMS
Categorization of Architecture of IOT Operating System is defined as follows:  Table 8 presents Key features of major IOT Operating Systems. MAC layer: It is the simplest layer in IOT/IP stack. In case of any traffic, it helps in avoid collisions. It monitors the medium before sending and holds its operations when someone else is sending. This layer depends on RDC layer. RDC (Radio Duty Cycling): It provides facility of energy saving by keeping its radio transceiver off.

A. Key features of IOT OS
Contiki supports three cycling mechanisms: Contiki MAC, X-MAC, LPP (Low-Power Probing). These mechanisms are based on the principles of low power consumption and better power efficiency.
RADIO LAYER: It is the ground layer in the Contiki Net Stack. Here interrupt handlers are responsible to fetch data. The input data is read into the buffer and then polling process sent the data to upper layers.

D. RIOT
It is very flexible as any network can be integrated in its network architecture. It provides two interfaces: Application programming interface and the device driver API netdev [26]. Network stack architecture of RIOT is composed of six layers. Network layer is loosely coupled with the hardware layer. Communication between Network Layer and hardware layer is established by means of netdev API. Application layer communicates with the network stack by means of Sock API. Separate thread is assigned to each device driver. Driver layer provides implementation of radio devices.  E. Tiny OS Prime component of Tiny OS in communication is Active message. Active message is an extensively used protocol in parallel computing where each message consists of an identifier which is user handler name. The handler function is responsible to invoke on the target node using user level handler name to pass the active message. This mechanism give rise to event driven communication between nodes.

F. Free OS
It relies on third party tools to implement MAC layer. For example, IoT LAB. In addition to this, TCP and UDP operate as transport protocols. Free RTOS UDP Protocol is mainly aim for low constrained devices as it provides socket with compact code size. On the other hand, Free RTOS TCP is based on open-source stack which provides Ethernet based stack. TCP/IP protocol is best suitable for low constrained devices because it is based on IwIP. IwIP is mostly used in embedded systems where less resource usage is in focus. Network stack implementation of IwIP is mainly aim for systems which have 10kb of RAM and 40kb of ROM.

VII. RELATED WORK
By the passage of time Operating Systems for low constrained devices have emerged as predominant Operating Systems. This section discusses literature of previous studies and presents comparative analysis of this study with the existing surveys. Table 9 presents comparative analysis of this study with the existing surveys.

A. Small Memory Footprint
To enhance the functionalities of low constrained devices more research is required in the area of small memory footprint. IOT devices operate on minimum RAM and ROM which contains few kilobytes. Hence, the core characteristic of low constrained IOT devices is to minimize the code size to ensure minimum memory utilization.

B. Less Energy Consumption
Sustenance in battery life of IOT devices is a key factor to reduce energy consumption. Designing of more efficient network protocols is highly required to ensure prolong battery life. In addition to this, more effort is required to manage hardware features in such an efficient manner which could result in less power consumption.

C. Reliability of IOT Devices
Another research direction led us to the reliability factor of IOT devices. While designing IOT complex architectures, OS reliability should be ensured by focusing on micro kernel architecture, memory protection units and static code analysis etc.

D. Scheduling Model
Sometimes scheduling model hit processor's performance by affecting system's energy and efficiency. Constraints during scheduling, affect processor's performance and due to this reason IOT Operating Systems are not able to perform up to the mark.

E. Runtime Behavior of RTOS
Extensive research is required to deal with complex run time behavior of RTOS task. In a complex IOT system, proper task priorities and processor shared timings are required. Hence, while implementing RTOS special care should be taken because in case of RTOS predicting real time behavior is very difficult. Tasks may get failed or may result in delay during execution and this low point of RTOS Operating System cannot be tolerated while implementing time critical applications.  • Future work should be focused on efficient techniques to acquire the acute motes of synchronization. • RDC (Radio Duty Cycling) can be another direction of research along with motes synchronization to work on. • More work is needed to achieve accuracy in execution of critical tasks of the IOT motes to enhance real time capabilities. • Critical systems such as health care, smart home, smart city is the flavor of time and their security is still a question mark. [7] Contiki, TinyOS, and FreeRTOS, Different aspects of resource management including process management, memory management, energy management, communication management, and file management are investigated, and their advantages and disadvantages are presented.
• Efficient mechanism is required to utilize the minimum memory. • Reliability of IOT devices requires more research.
• Real time operating systems and execution of tasks without delay in real time is a great challenge. A comprehensive overview of IOT OS was discussed in this paper. Memory, Programmability Support, Network Protocols, Architecture, Schedular, Modularity Support is discussed in view of major OS.
• Scheduling model constraints, limitations in network buffer management and programming model could be considered as future research direction. • IOT operating Systems are still deficient in context of security. [14] Contiki

IX. CONCLUSION
This paper provides an overview of IOT and its building components. This paper gives insights into architecture, programming model, schedular and network stack architecture of different IOT Operating Systems. The contributions are multifaceted. Firstly, we discussed contribution to this survey followed by the structure of this survey. Peer review papers are presented along with year of publication and authors. Secondly, an overview of IOT is presented along with IOT building components. IOT architecture is explained along with layers and its functionalities. In this section we discussed IOT elements and major IOT Operating Systems for low constrained devices with their key characteristics. Network Stack architecture of IOT OS is also given in this section. After this, we discussed related work and compare our work with the previous surveys. Finally, critical research areas are unfolded to facilitate future research studies in this domain.