[From the last episode: IoTThe Internet of Things. A broad term covering many different applications where "things" are interconnected through the internet. devices (and other systemsThis is a very generic term for any collection of components that, all together, can do something. Systems can be built from subsystems. Examples are your cell phone; your computer; the radio in your car; anything that seems like a "whole.") can be trained to perform complicated tasks]
Today we’re going to cover something that, for anyone involved in technology even just a little bit, might be obvious. But not everyone has a tech background, so these are some important basic concepts. We’re going to look at the notions of hardwareIn this context, "hardware" refers to functions in an IoT device that are built into a silicon chip or some other dedicated component. It's distinct from "software," which refers to instructions running on a processor. and softwareIn this context, "software" refers to functions in an IoT device that are implemented by running instructions through some kind of processor. It's distinct from "hardware," where functions are built into a silicon chip or some other component.. This will help you understand what a software update is.
How Computers Work
Let’s think of a typical computer – like a desktop or laptop machineIn our context, a machine is anything that isn't human (or living). That includes electronic equipment like computers and phones., or perhaps a serverA computer with a dedicated purpose. Older familiar examples are print servers (a computer that controls local printing) and file servers (a computer used for storing files centrally). More modern examples are web servers (the computers that handle your web requests when you use your browser) or application servers (computers dedicated to handling the computing needs of a specific application). Servers are often powerful, expensive machines since they have to handle a heavy load. such as might reside in the cloudA generic phrase referring to large numbers of computers located somewhere far away and accessed over the internet. For the IoT, computing may be local, done in the same system or building, or in the cloud, with data shipped up to the cloud and then the result shipped back down.. It works at two levels: hardware and software.
The hardware centers around a processor. That’s the chip that does the computing. There are different kinds of processorsA computer chip that does computing work for a computer. It may do general work (like in your home computer) or it may do specialized work (like some of the processors in your smartphone). – some for basic work, some for math-heavy work, and even some optimized for running machine-learnedMachine learning (or ML) is a process by which machines can be trained to perform tasks that required humans before. It's based on analysis of lots of data, and it might affect how some IoT devices work. algorithmsA way of calculating something, typically as a step-by-step recipe. A familiar one to all of us is how we do long division on paper: that's an algorithm. Algorithms abound in the IoT.. There might be more than one processor; each doing its own thing.
There are lots of other hardware chipsAn electronic device made on a piece of silicon. These days, it could also involve a mechanical chip, but, to the outside world, everything looks electronic. The chip is usually in some kind of package; that package might contain multiple chips. "Integrated circuit," and "IC" mean the same thing, but refer only to electronic chips, not mechanical chips. as well; they do specialized tasks like processing sound or video or WiFiA common type of wireless network used to connect computers and phones to each other and the internet.. They help the processors.
A processor, on its own, doesn’t do anything. Think of it as a player piano: it can’t play anything until you give it instructions. For a player piano, those instructions might consist of a roll of paper with holes strategically placed. For a computer, those instructions come from the software.
Hardware is better for building some things; software for others. But there’s a gray area where, depending on needs, one might use hardware or software for something. So let’s look at the pros and cons of both hardware and software.
Hardware
If you build something in hardware, then the good news is that whatever you built will run much faster than it would if you did it in software. It also might take less battery powerThe rate of energy consumption. For electricity, it’s measured in watts (W). than doing the same thing in software, and it might be more secure.
The downside is that it means another chip in the system (or more circuits on an existing chip), which adds cost and takes space. Then there’s the big downside: making a chip is a really expensive process. And once it’s done, it’s done. Making a change to a chip – either because there was a flaw or bug in the first version or because you decided you wanted to do something different – is very costly, and it’s something companies work hard to avoid.
That means that, once a chip has been built, its functions are set. You have no flexibility beyond any options that might be built into the chip. (Yes, there are chips called FPGAs that can have their functionsA small portion of a program that’s set aside and given a name. It helps isolate key code in an easy-to-understand way, and it makes changes easier and less error prone. It’s a really important way to make programs easier to understand. May also be called a subroutine. changed over and over again, but most of them are too big, power-hungry, and expensive to use in IoT devices.) So any function done in hardware has to be solid.
An example might be data encryptionEncryption refers to encoding and decoding (or encrypting and decrypting) data so that it can't be read unless you have the right key. It's critical for good security.. That’s a compute-intensive function, and it works much faster in hardware if it doesn’t make the machine too expensive. Encryption algorithms are well established, so, as long as you do it right, it’s not likely to change in the future, and hardware becomes a viable option.
Software
Software has one huge thing going for it: it’s flexible. Unlike with chips, if a software program needs a tweak after you’ve purchased it, then a software update can make that possible.
The downsides are speed – software runs slower than hardware; possibly power – since the processor running the software might use lots of juice; and securityRefers to whether or not IoT devices or data are protected from unauthorized viewers.. With that last one, software can be made somewhat safe, but the challenge is that clever hackersA misused, but common term for an unauthorized person trying to break into a device or network. Originally, in this context, "hackers" referred to the good guys (or "white hats"), while "crackers" were the bad guys (black hats). might be able to watch the software as it runs (especially if the processor wasn’t designed to keep them out). Chips with critical algorithms (like encryption) can be built so that they’re really hard to hackThis can mean a couple things. A quick-and-dirty (but not elegant) trick to get something done is a hack. A computer security break-in is also a hack (because inelegant tricks are used to break in). It can be a noun or a verb ("he hacked my computer").. Well-designed hardware is typically more secure than software – even well-designed software.
The whole software-update process has security implications; we’ll look at that in the future.
Firmware
You might see mentions of something called firmwareSoftware that is stored on a device itself. Regular computers have very little firmware, since software mostly comes from a hard drive or some other storage. But on IoT devices, much of the software may be firmware.. Firmware is really software. It’s just that, unlike software that you might download from the internet or get on a CD, firmware is built into the device itself. It’s stored in some internal memory.
It is possible to update firmware as well as software; it’s just harder – at least on your typical computer. But computers are different from IoT devices. Computers come with a little bit of firmware – just enough to start the machine up. Then the computer loads software from a hard diskA type of persistent (non-volatile) memory built from rotating platters and “read heads” that sense the data on the platters. to do all the things it needs to do.
With an IoT device, you’re not generally going to be loading your own software up on it like you might on your computer. The software is built in. So most of the software for IoT devices will really be firmware. And any software updates will really be firmware updates. The challenge to gadget-makers is to make that update process as easy – and secure – as possible.
Of course, these choices for how to build a system – hardware or software – aren’t choices you have to make yourself; they’re done by the designers. But it gives you a flavor of the tradeoffs they have to manage and why software updates can fix only so much.
Leave a Reply