Intro
I was looking at my kettle with its touch buttons and different modes and wondered about its components and inner hardware, I assumed there’s a chip in there that regulated power and time to facilitate different boil settings.
But How Complex Is It? I know some “smarter” appliances run some Linux server to manage their functionality and features. Looking at you Samsung fridges…
The answer to what I was wondering is Firmware. It’s code that runs Hardware components directly. Or that’s what I thought, so let’s look into it.
What is Firmware?
Firmware refers to software that runs the hardware, it’s embedded into the components.
Pretty much every device you can think of relies on firmware, even the fully fledged computers that do a ton of stuff, run firmware to control different parts of their system.
Where Does it Live?
Firmware needs to live in persistent storage, no use if gets wiped when the power’s off. So all firmware is stored on NonVolatileStorage such as RAM, ROM, Flash Memory, etc.
What Does it Do?
Firmware mostly handles tasks that enable the rest of the larger system to function.
These are innumerable in reality, but common examples include.
- Delivering instructions for booting up.
- Defines how a system interacts with other devices, including I/O.
Firmware comprises many Embedded Systems that together enable an OS to function as expected by providing it with the services it needs and running the hardware it runs on.
Installation
Most firmware is installed during the device’s manufacturing, this is necessary since it facilitates interaction between the OS and the hardware, so a device shipped without firmware is rather useless…
This means that the OS needs the firmware but not the other way around. Firmware runs at the most lowest of levels, even before an OS is installed. An example of this is BIOS (Basic Input/Output System) on a computer.
How it Differs From Software
Software is a general term, but it usually refers to code/programs that pertain to interaction and completing tasks the user initiates. Whereas firmware, helps devices start up and communicate with each other.
“Manufacturers frequently update firmware to add new features, enhance security and protect against vulnerabilities… Software, on the other hand, is installed on a device to improve user interaction with activities like browsing the Internet, checking email, word processing, watching videos, streaming music and more. Software isn’t as closely connected to the hardware as firmware and needs firmware to communicate with the hardware its providing functions for.” Source
Types
…
Low-Level
High-Level
Subsystem
Applications
..