Firmware used to mean software that was implementing an interface that consumers assume is hardware. For example, your NIC looks like a fixed-function device that can do some filtering to put things in different receive queues, but those things might also be implemented in a programmable core. It was code that existed because adding a programmable core to a device was cheaper than adding fixed-function logic, but the software still existed to expose something that looked like a fixed-function device. It was an implementation detail. As a user, I didn’t care whether the behaviour came as a result of hard or soft logic, only that it occurred.
Since then, it’s gradually grown to mean basically any software that you aren’t meant to look inside and I find myself using it to mean ‘a self-contained image that runs on an embedded device’.
“embedded software” doesn’t strike me as an obviously better or worse term than “firmware” for “the software that runs on the lowest level of a complex modern computer system, designed to facilitate directly configuring the hardware, and that is not intended to be a user-facing OS”.
Software and Hardware have pretty clear definitions
But I’d like to see those definitions, because author’s problems with the term “firmware” seems to relate to these (implicit) definitions. As it is, I just can’t see the problems with the term that the author does.
Firmware used to mean software that was implementing an interface that consumers assume is hardware. For example, your NIC looks like a fixed-function device that can do some filtering to put things in different receive queues, but those things might also be implemented in a programmable core. It was code that existed because adding a programmable core to a device was cheaper than adding fixed-function logic, but the software still existed to expose something that looked like a fixed-function device. It was an implementation detail. As a user, I didn’t care whether the behaviour came as a result of hard or soft logic, only that it occurred.
Since then, it’s gradually grown to mean basically any software that you aren’t meant to look inside and I find myself using it to mean ‘a self-contained image that runs on an embedded device’.
“embedded software” doesn’t strike me as an obviously better or worse term than “firmware” for “the software that runs on the lowest level of a complex modern computer system, designed to facilitate directly configuring the hardware, and that is not intended to be a user-facing OS”.
The linked piece starts with
But I’d like to see those definitions, because author’s problems with the term “firmware” seems to relate to these (implicit) definitions. As it is, I just can’t see the problems with the term that the author does.
Is a cookbook software?
I dunno, is the Code of Hammurabi software?
Is DNA software?
Pretty sure DNA is firmware actually.