Weather Forecast


Jason Ogaard: Hardware, software, firmware … um, what?

When I was in college working toward a degree in computer science, we would joke at all the terminology we had to learn. In retrospect, the terminology was the easy part, but there was a lot of it.

There were so many acronyms, we had acronyms to describe them. TLAs are three-letter-acronyms, FLAs are four-letter-acronyms, etc. Over the years, these terms have become ingrained, and I learn new terms every week. The field of technology is changing at a rapid pace. I’ve found the three most common terms, also some of the oldest, are only partially understood by most people. Hardware, software and firmware are used to describe different aspects of computing. Often incorrectly. It’s common for me to hear even a computer salesman at a store use the terms incorrectly. This is because when people talk about hardware, software and firmware, it’s easy to get a general idea of what they mean so no one bothers to look into it further. And why should they? Knowing exactly what these mean isn’t that important, but I have a column to write, so you’re going to learn them today. Let’s start with the easiest to explain, hardware. Hardware is the physical aspect of computing. The different components that make up a computer are the hardware. Hardware encompasses a wide range of components. The monitor, the hard drive, the CPU, the RAM, the motherboard, the case, etc. Even your printer could be considered hardware. The term hardware predates computing, it refers to machinery, tools, etc. When you go to buy a hammer or screws, you probably end up at a hardware store. The next term, software, refers to something that could be considered abstract. I’m a software engineer, I write software that runs on computers, phones, tablets, and whatever other devices will run it. Software is called software because it doesn’t physically exist. It’s a play on hardware. Whereas hardware refers to an actual physical object, software doesn’t physically exist. Software lives as either electrical signals or magnetic charge on a hard disk. Those signals or charges represent 1s and 0s the computer interprets. Software does take up space, you can only fit so many magnetic charges on a hard drive before it’s full, but those charges don’t weigh anything, you would have a hard time quantifying their volume. It doesn’t physically exist, but it takes up space. It’s weird, ok? The last term is maybe the hardest one to describe. The term firmware is another play on words. Firmware, technically, is software, but it’s used to control hardware. The term ‘firm’ refers to something that would be considered neither soft nor hard. It isn’t stored on a hard drive. It’s stored right on the hardware. Hardware is just a bunch of electrical circuits. Hardware doesn’t know what to do with the 1s and 0s so firmware is put directly onto the chips to tell them how to behave. Firmware must be stored on the hardware. When you first boot up a computer it might display a bunch of output. The initial output is the firmware powering up the CPU, the hard drive, the RAM, etc. It’s testing the components to make sure they work and then loading the operating system from the hard drive. If there was no firmware present the hardware wouldn’t do anything. You probably had a good idea of what hardware and software meant before you read this, but did you know what firmware was?

— Jason Ogaard was born in Bemidji and is a software engineer for FICO, a Minneapolis based public company providing analytics and decision-making services, including credit scoring credit bureaus.