MN404 Role of Operating Systems and Command Line Interface Assessment Answer
Assignment 1a: Operating Systems (OS)
Necessity of OS for IoT Devices
An embedded RTOS or real-time operating system enables data processing without any buffering delay. Hence, RTOS possesses the ability to schedule tasks, to prioritize tasks and multitask. It manages sharing of multiple resources amongst a number of tasks. These operating systems are more relevant and useful for providing needs of IoT devices used in various sophisticated and complex situations such as the aviation, heavy industries and healthcare (Jaskani, Manzoor, Amin, Asif and Irfan, 2019). The comparatively less complex and sophisticated operating systems are not far behind. Those come with extra benefits like fewer resource requirements (for example, RAM, processing power) and lesser power consumption.
Essential Features Desired
Primarily, an ideal OS is expected to have low requirements for memory, power and processing due to device-based constraints. For both the nodes and gateways, there must be one single OS that both developers and integrators are familiar with. OS should be portable. By using POSIX calls, an OS could be ported to various board support package (BSP) interfaces and hardware platforms. Hence, there is a facility of portable OS for isolating applications from the hardwares. It is mandatory for an OS to have a kernel core and generally supports several distinct kinds of connectivity protocols including Wi-Fi, Ethernet, IEEE, BLE, 802.15.4 and so on. Other functionalities for modularity can be used as add-ons if application requirements seem so. A suitable and smooth-running OS should be able to secure and protect IoT devices by way of boot securing, SSL supporting and securing other drivers and components through encryption (Zikria,Kim, Hahm, Afzal andAalsalem,2019). For various systems built for critical missions require certainty and reliability of performance. There are remote locations where IoT devices are used and the operating system is expected to deliver uninterrupted service without fail. Hence, OS should come with guaranteed certifications and requirement fulfilments for certain applications.
Importance and Justification
As explained by Jaskani, Manzoor, Amin, Asif and Irfan(2019), Tiny OS and Contiki OS are the top event driven models that are widely recognized. Tiny OS has already emerged as a promising and complete system that can be used for system-wide optimization using language instruments. The C programming language is supported by the Tiny OS. Its components are steered by implicit software protocols. The version 2.1 of Tiny OS has supportive TOS threads. This means if CPU is not active or in use, then the responsibility of providing CPU services explicitly is entrusted with an application. The preemptive FIFO scheduling can be used by scheduler to execute any thread or schedule as a high priority.
Similarly, the lightweight Contiki OS is an open-source operating system specifically developed for WSN. This OS has strong and systematic tools ideal for setting up complex and broader wireless communication systems. It features lightweight network stack called Rime Network Stack that is very advantageous for various low-powered WSNs. Contiki supports several IoT equipment like sky, wismote and z1. Even on small platforms like MSP430, 8051-powered chip systems and a wide variety of ARM and AVR devices. Both of these operating systems adhere by the seven significant features namely real time capabilities, memory footprint, architectural design, hardware support, scheduler, network connectivity and energy efficiency.
Assignment 1b: IoT Operating system and Unix scripts
1. From the assignment 1 we have got many feedbacks about the different IOT operating systems and their need. Operations systems are required for the IOT devices for providing help in the sophisticated and complex situations. OS should have all the capability to run the IOT devices effectively. OS should be chosen according to the requirement of IOT. OS should be secure and support various protocols like Wi-Fi, Ethernet, IEEE etc. OS has to work on remote area under critical conditions so OS should be reliable.
2. TinyOS is a flexible application oriented OS, designed for sensor networks. It is open source operating system. Basically, sensor networks are combination of tiny and low power nodes and TinyOS is the best suitable option for that type of application. TinyOS fulfil all the needs of the WSN and performs best for static applications. TinyOS is better than the Contiki OS in terms of performance. It also provides large no. of components to the developers related to routing, power, storage etc.
3. These are some perimeters used for selecting a suitable IOT OS
- Scalability: it is very important for the Operating system. OS must be scalable for any type of device. IOT devices are combination of small and large MCU. So scalable OS can run on 16 or 32 bit MCUs for future use.
- Connectivity: it is very essential to IOT. The OS should support all the standard network protocols like IEEE 802.15.4, Wi-Fi and Bluetooth. It must also support Ethernet for wired media.
- Reliability: it is very essential thing for the OS. Operating system has to work for many years without issue even in very critical situations, so OS must be reliable. It must have certification for the essential applications for better reliability.
- Security: IOT security is very important. So, OS must have some unique and powerful authentication methods like secure boot, SSL support, DTLS, SCEP etc. With the help of this methods OS can add security to the IOT devices.
- Modularity: modular OS simplifies the development process. OS must support the modular functionality. Modular OS separates the kernel from the protocol and applications. All other functionality ca be added later as per requirement.
- It is event driven OS. It means it is related to the surrounding events. Like temperature. If temperature goes down or up from the certain point, OS will trigger an event.
- It needs low memory for functioning. No need to buy higher memory devices for this OS. Battery density is increasing very rapidly, in that case TinyOS is very good. It also provides greater flexibility in power management.
- The source of TinyOS is very small in size compared to other operating systems. Device work very fast due to the small code and the code of TinyOS is very well optimized for the devices.
- It is a flexible OS. It is very suitable OS for the flexible environment. It also supports the modularity function. All the modules of the OS work with each other effectively so that wireless device can work properly.
5. TinyOS is designed for low power wireless devices. Most of the platforms provide interfaces for UART, I2C, SPI etc. TinyOS can run on different hardware platforms like
- telosa-MSP430 CPU, cc2420,
- btnode3-Atmega128L CPU and radio,
- epic-MSP430, cc2420
- iris-Atmega1281 and AT86RF230 radio chip
- z1-MSP430 CPU and CC2420 transceiver
- mica2-Atmega128L and Chipcon 868/916 radio chip,
- span- MSP430 CPU and CC2420 transceiver
- mulle- Renesas M16C and AT86RF230 transceiver etc.
6. IOT operating systems are designed to perform certain task that are related to the IOT devices. There are many features of an IoT-OS that can be used for a diverse set of applications. Some of them are:
- Heterogeneous devices support: it is very important features of an IOT-OS. The growth of Iot with diverse set of applications are increasing day by day, in that case the feature of Heterogeneous devices support for an IOT-OS is very good. With the help of this feature IOT-OS can easily integrate without any issue.
- Energy efficiency: it is the vital features of the IoT-OS. Iot deployment is diverse and challenging in nature. Humongous IoT network require energy efficient OS to run on the Iot devices. This feature is very beneficial for diverse set of applications.
- Small memory footprint: it is very crucial to optimise the module without losing its functionality. With the help of this feature an IoT-OS that can be used for a diverse set of applications.
- Real-time capability: it is very important feature for the performing the critical task. RTOS are designed to provide the guaranteed results with the certain time limit. Therefore, this feature can be used for a diverse set of applications that require real time functionality.