Computers of all form factors are comprised of several components, each building and depending on another in order to carry out the functions, or instructions, handed to it by way of input devices. Hardware carries out core functions such as supplying power or executing process, software performs tasks by utilizing programming code, other software or it interfaces with hardware.
Hardware
Computers use a combination of hardware and software, with software being a general term to describe the non-tangible elements of a computer that are vital to its operation. Computer hardware is easy to differentiate between software, simply because you can see and touch the hardware. The motherboard, CPU or computer processing unit, local storage or hard drive, main memory or RAM, network interface card or NIC card, power supply, and I/O ports are all components of computer hardware.
Computer Software
Computer software is a term generalizing the parts of a computer that you cannot see or touch. To define the scope, computer software is grouped into three categories; system, programming, and application. System software like operating systems, utilities, and BIOS work directly with hardware by sending information to the user about hardware performance or providing an interface to execute commands. Programming software uses code to create other tools or programs. Application software is used to carry out specific sets of tasks. Programming software is often extended thorough application software.
The operating system, BIOS, device drivers, shells, and servers are types of system software. Firmware and middle-ware are also terms used to describe system software. Compilers, interpreters, debuggers, and IDE’s are types of programming software. A few example of application software are Microsoft Word, Google Chrome, or different types of database applications such as Oracle or MS SQL Server Management Studio.
Let’s Build a House
I often use a house analogy to explain the various roles of computer hardware and software, and how these components depend on each other.
Hardware to house Comparisons
Every house has a foundation on which everything is built. The foundation of a house dictates where the pluming and electrical will go. The foundation also dictates the size (square footage) and shape of the home. It also supports the frame, the second most important part of a home. Similarly, the motherboard acts as the foundation for a computer. The motherboard is the piece of hardware to which all other pieces of computer hardware attach. Motherboards come in many sizes, or form factors, to fit different sized computer casings; but every computer has one, just as every home has a foundation.
The frame is a house in its most basic form, providing the homes structural support. The CPU performs a similar function in that it controls the capabilities of the computer and uses the lowest level of instruction to understand and execute processes. Just as the frame determines the style of of a house; ranch, bungalow, two-story, town-home, condo, etc., so does the CPU dictate the types of software and hardware that it will accommodate; thus dictating the type of computer that can be built for example Intel vs AMD, 64 v 32-bit.
I like to compare the windows of a house to the I/O ports of the computer. Without windows, we are unable to see outside and no one can see inside. Without I/O ports, users cannot connect devices to the computer to transfer/receive data to/from the computer. More hardware comparisons:
- Closets are like RAM because RAM is a form of computer storage, or memory, that is easily accessible and used often by software applications.
- A storage shed is like the disk drive; used to store programs, and just like a shed can be removed, a disk drive can be used with another computer with a compatible CPU to the disk drive.
- Electrical wiring is analogous to the power supply. This one is always pretty straight forward.
- The frame provides the primary structure of a house, so does the CPU to a computer system by executing computer instructions (processes) in binary.
Software to house Comparisons
We can also use the house to explain the roles of software. If the CPU is like the frame, then the operating system would be like the walls. Without walls, the home would still be usable, but you would have to put in more effort to complete tasks. Not to mention, the house would not be nice to look at. Walls transform the frame struts into usable and easily identifiable spaces. The operating system does the same thing by utilizing a GUI (graphical user interface) to make it easier for users to identify the components and applications used to transfer data.
System software works directly with hardware (firmware) or it works with other software to assist computer components (middle-ware). System diagnostics software measures hardware performance just as electric meters measure amounts of electricity used (middle-ware). The circuit breaker controls the flow of electricity to the home, just as device driver software controls access to specific hardware (firmware).
Rooms of the house are like application software. Just as each room has a specific purpose, so does application software. We use a garage for car storage and protection from the elements. Similarly, word processing software would be used solely for that purpose.
Summary
In closing, all computers use a combination of hardware and software to allow users to send and receive data. Hardware is tangible, software is non-tangible and is generalized into three categories; systems, application, and programming software. Peripherals such as monitors, keyboards, mouse, smartphones, tablets and other computers allow the transfer of data using the I/O ports on a computer.