Chapter 2. Examples and Building Blocks

To guide the rest of the discussion, I’ll start by presenting a basic framework for the IoT: a population of (physically) small computing devices, tied to the physical world with sensors and actuators, possibly communicating with one another and with backend systems.

Computing Devices

To make the book self-contained for the reader without a detailed computer science background, this section discusses the basics of computer systems (central processing unit, memory, software structure) and how “embedded systems” differ from regular ones.

Basic Elements

Generally speaking, computing devices consist of a central processing unit (CPU), memory, and some kind of input/output (I/O). The memory typically includes some kind of nonvolatile storage (so there’s a program to run when the machine first powers up) and some kind of slower but more efficient backing store for longer-term storage. In a simpler universe, the CPU would fetch an instruction from memory, figure out what the instruction means, carry it out, and then go on to the next one. “Carrying out” the instruction would involve reading or writing to memory or an I/O device or an internal CPU register, and/or doing some mathematical operation. However, the universe is not that simple anymore. The field traded simplicity for speed (as I have to cover in the “dirty tricks” section of my architecture course): pieces of many instructions may be carried out at the same time and may be executed ...

Get The Internet of Risky Things now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.