Let us take a look at what ‘Hardware’ means when you talk about computers – almost all of the devices that you can find assembled into your computer come under the category of hardware. This includes the processor, the memory, the motherboard, the hard disks, the removable media drives (CD-ROM/DVD Reader/Writer, floppy drives, USB drives, the power supply, sound card, networking devices and Input/Output devices.
What makes all these hardware devices work together is the software that controls them. Software is the term given to programs that are usually run on computers. You may be familiar with and may have used many software packages – word processing software such as MS-Word and games are common examples. Software normally resides on the hard disk of the computer and is usually invoked by the operating system to perform specific tasks. It is usually coded in high-level languages like C or Java.
Firmware is a term used for a specific type of software. Many processors (other than the CPU of your computer) require software to implement a functionality and this usually is programmed into some kind of Read-only Memory (ROM) on the device itself. This bundled or embedded software that controls a hardware device is called Firmware. Firmware is code that is meant for a particular hardware device and is usually in machine code (patterns of zeros and ones).
A good example would be that of surfing the Internet – you would use hardware in the form of a network card or a modem to connect to the Internet. The Operating System on your computer communicates with the network card or modem using software called device drivers. The processor around which the modem or the network card is built around would have its own firmware that controls the communication with the Internet and the host (computer).
Another good example of firmware in action is a cell phone, a washing machine or a microwave oven. Firmware is not usually meant to be reprogrammable, though in special cases like a cell phone, it may be so.
If you receive updates from the makers of devices like the CD-ROM drive in your computer that provide additional functionality or remove bugs, it is probably a firmware update and your OS would use the device drivers for that hardware to update the firmware.