Quiz Entry - updated: 2026.09.18
How do the three tiers of an IoT system differ in what software they run?
The device typically runs no OS at all or a real-time OS; the gateway runs Linux; the cloud runs remote servers — the software gets heavier at every hop because the resources do.
| IoT device | Edge / gateway | Backend / cloud | |
|---|---|---|---|
| Software base | No OS, embedded C, an RTOS, or a small Linux | Linux, with C/C++/Java | Remote servers |
| Main job | Monitoring, communication, data-store control | Buffering and relaying data messages; schedules and config sync | Data gathering and monitoring management |
| Hardware | Compute SoC, energy die, wake-up radio, flash file storage, sensors (T/H/P/light), camera | General-purpose machine with mains power | Datacentre |
| Links | BLE, WiFi, LoRa, wake-up radio | WiFi, cellular, REST APIs | Internet |
| Also holds | Local sensor buffers | IoT device software images, data storage, interfaces to message channels, services | Data storage, analysis and reporting, config management, error correction, security support, software-image management, distribution services |
Two things fall out of the table that are easy to miss:
- The gateway stores the device firmware images. Over-the-air updates are staged there, which is what makes the gateway a high-value target: compromise it and you are positioned to push firmware to everything behind it.
- Configuration flows down while data flows up. Schedules and config sync travel cloud → gateway → device; sensor data travels the other way. Both directions need protecting, and the downward one is the more dangerous if it is not.
Tip: "no OS, embedded C" at the left-hand end is the single biggest practical difference from ordinary systems work. There may be no process isolation, no memory protection and no package manager — so protections you would take for granted have to be designed in explicitly.
Go deeper:
Wikipedia — Real-time operating system — what the middle option on the device tier actually is: a scheduler for microcontrollers where bounded latency and static allocation matter more than throughput.