Layers of a Computer
There are three levels to computing, each building on the previous to achieve the general-purpose operating systems that we have learned through using a computer. By building a system consisting of physical hardware parts and integrated firmware, we create a digital software space for performing tasks through applications.
These systems are built to existing architectures, standards, protocols and specifications. Whether created by a corporation or a committee, these systems allow them to be used interchangeably within compatible hardware and software environments.

Hardware
This is the physical side of computing, created using integrated circuits created from silica and rare earth metals. The name "hardware" is derived from its relatively rigid nature in respect to change.

Hardware includes the motherboard, which acts as a seat for all hardware parts within a computer and enables their communication. The CPU performs precise calculations, the GPU handles graphical manipulation, and the RAM is used to store data in use by software. Long-term data storage is accomplished through high-capacity platter disks or solid-state flash memory drives.
Other hardware components may include: network interface cards, sound cards, BlueTooth, and USB for connecting external devices.
Firmware
This low-level software enables the hardware to interact with higher level software, such as your operating system. Hardware components have low-level code embedded into them that enable your computer to configure it. Hardware abstraction provides an operating system with access to low-level functions on a hardware component without needing to know its low-level machine code. For example, requesting an idle hardware component go to sleep to conserve power.

Altering firmware may require replacing a physical module or flashing a reprogrammable memory chip. The name "firmware" reflects the amorphous blend of hardware and software components. Motherboards contain a firmware interface such as BIOS (Basic Input Output System) or UEFI (Unified Extensible Firmware Interface). These offer access to hardware-level configurations such as which storage device to boot from or which components to disable.
This basic software can run a rudimentary POST (Power on Self Test) to verify your hardware is working and hand control over to the operating system.
Firmware differs from software because it is stored on a small chip on your motherboard called Read Only Memory. This chip is powered by a small coin cell battery that allows it to store settings even when powered off. This chip can only be written to through a special process known as flashing.
Software
when talking about software, we are generally referring to operating systems and applications that are installed onto your storage device. an operating system creates a user environment that provide tools for applications to perform more specific tasks.
