Conferences and supporting programme
What is an IoT OS?
A lot of focus in the Internet of Things is given to the Cloud, the data, the analytics, the networking (Fog, Cloud), the mobile devices (tablet, smartphones). Unfortunately, the IoT devices, the devices that produce the data are the neglected element in this system. Not a lot of attention is given to the architecture, design and implementation of IoT devices. This paper will cover one aspect of the IoT devices: The IoT OS. IoT is often presented as Information Technologies (IT) being pushed to Operations (OT). There is a major problem when we look at IoT this way. It is the hardware used for the IoT devices. It is not capable of running IT software. The average IoT device microcontroller runs between 50Mhz to 200Mhz and contains between 64KB to 1MB of Flash (code space) and 4KB to 512 KB of RAM. Processors that run smartphones or Cloud servers run at Gigahertz speed and have Terabytes of available code space Gigabytes of RAM. We are thinking about networking protocols, security requirements (multiple encryption and decryption algorithms) and remote firmware update (Firmware Over The AIR : FOTA). All this require resources an average microcontroller does not have. So, how do we address the problem? By architecting the system in such a way that we can achieve all these requirements at an affordable cost and still meet a cost that makes the system commercially viable. First, the use of a gateway in many cases is unavoidable. It is impossible to run all the IoT software on a sensor/actuator device. So, which Operating System do we run on the device, which functions do we enable on the device and which Operating System do we run on the gateway and which services are provided by the gateway. The gateway will generally be running on an Application processor (Cortex-A, Intel Qwark or similar). In this case, a General-Purpose OS (GPOS) like Android and Linux can be used. But, because the IoT device runs on a microcontroller (typically a Cortex-M), a GPOS is out of the question. Some software developers would like to use bare metal code to optimize the quantity of code that can fit on the device. But, when we talk about IoT, we talk about connectivity. Connectivity stacks (TCP/IP, WiFi, Bluetooth, Thread, Zigbee and others) are large piece of code and are time sensitive. Therefore, the use of a Real-Time Operating System (RTOS) is mandatory. It will simplify the software architecture, help achieve performance and reduce maintenance costs. There is also the question of certification. There are industries where devices must meet safety critical rules. In this case, the IoT device software must be able to meet these certification requirements. Today, in the industry, there is no definition for an IoT OS. In this session, I will lay the foundations of what such a software must be. For the industry to achieve the forecasted billions of deployed devices, we mandatorily require such a definition.
--- Date: 27.02.2018 Time: 9:30 AM - 10:00 AM Location: Conference Counter NCC Ost