The main difference between software and hardware is that software refers to the programs that are used to run a computer system, while hardware refers to the physical equipment that makes up the system. For example, an operating system such as Windows is software, while the hard drive of your laptop or desktop computer that is running Windows is hardware. Other examples of hardware include printers, monitors, keyboards, and any other physical object that would be part of a computer. Certain hardware is needed to run certain software, and the proper software is needed to operate a computer, often in a way that is as easy as possible for someone to understand.

Types of Software
Practical computer systems often divide software into system software, programming software, and application software. System software provides a platform for other software, which makes it necessary for a computer system to run in the first place. Think of operating systems such as Windows or Linux. Programming software allows programmers to create, maintain, and debug applications and programs within system software. Finally, application software is what allows users to perform tasks on computers. The distinction between these three types of software is often blurred and arbitrary. Basically, any program that runs a task on a device and only exists as data can be called software.

Types of Hardware
While the software doesn’t exist in the physical sense, hardware is the opposite. Any physical object that makes up part of a computer or other device can be called hardware. A hard drive containing data is hardware since it is a physical object, as are computer monitors, keyboards, and any other tangible device you might use. 

Hardware is often associated with computers, but it also refers to anything that relies on software to run, such as global positioning systems, cell phones, medical equipment, air traffic control systems, and electronic devices such as televisions and game consoles. Hardware is also changed less frequently than software. While computers and cell phones often need new operating systems and other programs every few years to stay current, the same hardware can be used to run several generations of new software for years before it becomes obsolete.