What’s the difference between software and firmware?

I know this is a bit of a basic question, but I am a little confused and couldn’t find the complete answer on Google.

I know that the difference has to deal with how permanent and malleable a section of code is. However, how do you draw the line between a set of instructions being software and firmware? Can a computer/printer/etc. have both software and firmware on it? What does OS qualify as?

Thanks in advance, sorry again for the rudimentary question.

Firmware is a kind of Software

A block of computer instructions, no matter how permanent and malleable they are, is Software.

Several devices are strictly connected with a portion of software. In these cases the hardware cannot run other software and that software only run on that specific hardware. We call this Firmware. And it’s still Software.

Other types of Software are Apps, Operative Systems, Videogames, Web Application Servers.


In electronic systems and computing, firmware is a type of software that provides control, monitoring and data manipulation of engineered products and systems.

Firmware is a type of Software usually strictly connected with a device. Usually it doesn’t change during the lifetime of the device unless some update or bug fixing is required.

Back in 2008, the second iteration of what we today know as iOS (the iPhone and iPad Operative System) was called iPhone OS Firmware 2.0. It was a Firmware (by definition) and definitely it was a Software.


Computer software, or simply software, is that part of a computer system that consists of encoded information or computer instructions, in contrast to the physical hardware from which the system is built.

Hardware is hard, metal and silicon and plastic and such. Software is soft, bits stored magically with electricity or magnetics or other such things. Firmware is software that is a bit more firm, in that when you have software say in your television set or you clock radio or your microwave, it is software running on hardware but it is very likely not ever going to be replaced or at least designed such that it is hopefully never going to be replaced. So it is software that is a bit hardened, so it is considered “firm”.

Leave a Reply

Your email address will not be published. Required fields are marked *