Basically, firmware determines how a piece of hardware will behave and resides in memory provided by that
hardware, not in the memory that your programs run in. It can consist of data and/or executable code. Historically,
firmware was permanently programmed into hardware before it was shipped. Nowadays, hardware is capable of
being reprogrammed after it's been shipped to fix bugs and provide new features or enhancements. If you have
ever "flashed" your motherboard or video board, you have changed its firmware. A piece of hardware can also
request firmware in the form of a file during boot time, and that is what is being referred to here, usually involving
a network card.