From the course: IoT Foundations: Operating System Applications

IoT applications from the OS perspective

From the course: IoT Foundations: Operating System Applications

Start my 1-month free trial

IoT applications from the OS perspective

- You may wonder how the smart devices used in our home can take our voice commands to control other devices connected. How the smart devices can talk to each other or how to deal with the data we've collected over time. On each device, there is most likely an operating system application program up and running, taking care of multiple tasks such as handling sensors, transferring and the processing data, safeguarding the data and the software, and the taking user controls. Using an OS to develop your IoT device software is usually a important step toward building your exciting IoT products for many vertical applications. In general, developing your IoT systems on top of an OS brings an ecosystem that you can utilize for your products. An OS essentially provides a development framework that you can build your applications more easily. More specifically, let's look at the benefits based on the genericsies in architecture of an OS. An operating system may have many forms, but things get clear if we keep in mind that it usually has a kernel that does the fundamental heavy duties for your software, such as managing tasks and memory, providing interfaces for hardware components, or managing clocks. Then around that, an OS may add some built-in features in the form of utility functions and the software libraries. Some examples include crypto libraries for security, cloud connectors for interacting with various cloud endpoints, networking stacks for data transfers, security and the software management, as well as add-on device drivers that can make our software manipulate many peripherals, such as sensors and actuators. As for the application software built with an OS, there's some key high-level characteristics we care about. The first is the robustness. Basically, we expect our IoT device to run stably for as long as possible. It is true that it's related to manufacturers, but in general, the robustness of our OS-based applications can be enhanced by the debugging features that may be provided by an OS. This is especially important for the real-time applications using a real-time operating systems, where the timing sequence of the task execution needs to be carefully considered in the design and the developmental phase. The debugging, testing, and code analysis are related considerations in order to develop robust OS-based applications. Security. For an OS application it involves the software's security and the network's security. Where the platform is trustworthy, the software running on top of it should be secure, as well as the data stored on the device and the transfer through the networks is secure. Modularity and extensibility are something that we can make our application flexible enough to add or remove features. In the ideal case, our application features are developed on a modular basis and any should happen to one software module, and the runtime won't effected others. If your IoT solution requires a scalable deployment in geographically distributed areas, you may also need remote manageability of your device software, such as secure software image updates, and the device manager updates. Connectivity and interoperability. Connectivity is essential for IoT applications where the data on one device gets transferred to another on the network. Upon making the connection, it is the interaction between devices that makes it practical.

Contents