Hardware refers to the physical components of a computer system like the CPU, RAM, and hard drives. Software includes programs like operating systems, browsers, and apps that allow interaction with hardware. Firmware is a type of software designed to act as an intermediary between hardware and software or for single-purpose devices like printers. It is updated infrequently and users have limited interaction with it. Examples of firmware include the BIOS and EFI.