Hardware Vs Software

Learn about differences between hardware and software.

Hardware describes the electrical or electro-mechanical aspects of a computer. These are the physical, tangible parts of the computer, such as keyboard and mouse.

On the other hand, Software describes the programs that make the computer function. These are the intangible parts of a computer which are necessary for its operations. For example, the audio on a CD doesn't have a physical presence, you cannot touch the 0s and 1s that make up the program.

Some examples to help distinguish between hardware and software:

Hardware
Software

Monitor

RAM Chip

MacOS

Microphone

Virus Checker

Software

All software fit into one of these categories: system software and application software.

A diagram to show classification of software

System Software

System software is the required to run & manage a computer's hardware and it's application software.

Function of system software include:

  • Peripheral Management

  • Allocation of jobs to processor

  • Maintaining cyber security (checking for malware)

  • Application software installation

  • Translation of program code into machine code

Operating System

An Operating System (OS) serves as a middle-man for communication between a computer's hardware and software. Software applications cannot communicate directly with the hardware, so an OS is required.

Some examples of popular operating system (as at 02/2024):

  • MacOS

  • iOS

  • Windows

  • Linux

  • Android (modified version of the Linux kernel)

Tasks of an OS include:

  • Resource Management (IO management, processor scheduling etc)

  • Providing a user interface (can be command line interface or graphical user interface)

Utility Software

Utility software is designed to analyse, configure, optimise or maintain a computer system.

Some of the most common tasks of utility software are: disk defragmentation, installing/uninstalling software, updating software & monitoring resources and performance.

Some utility software perform additional common tasks which are needed by almost all users: virus detection, auto backup/restore and file compression.

Libraries

A library is a collection of pre-compiled routines which can be used by other programs. This can useful as programmers will not have to re-write long code and they can instead focus on their missions.

Example of libraries in python:

import math, random, turtle, requests

OS Libraries

Most operating systems have hundreds of libraries which can be shared by multiple processes.

Fun fact: Windows stores library files with .dl extension.

Translators

Machine code is the lowest level of instruction that is in pure binary format. All computer instructions need to be converted into machine code in order to be executed. That's why we use a translator program to translate code that has been written in assembly or other high-level language into machine code.

Translator software are distinct from utility software.

Types of Translator Software

There are three types of translator software.

Assemblers — translate assembly into machine code.

Compilers — translate high-level language programs into object code (machine code) which can be saved and ran when needed, without the compiler being present.

Interpreter — translates high-level language programs into object code, line-by-line.

Application Software

Application software refers to programs and software designed for user-end tasks or purposes, such as word processing, web browsing, or gaming.

A diagram to show categories within application software

General Purpose Software

These are software packages that can be used for a range of generic tasks. Examples of this type of software include:

  • Word Processors — for letters, posters, thumbnails or textbooks

  • Graphics packages — for image retouching, photo editing or drawing diagrams

  • Spreadsheet software — for modelling, creating tables of data or list

Special Purpose Software

Special purpose software performs tasks for a single, specific job. For example: Payroll/Accountancy software, media player, calendar programs and online payment systems.

Examples

Some examples to help tell difference between general purpose software and special purpose software:

General Purpose
Special Purpose

Presentation Software

Driving Simulator

Route Finding App

Calculator

Video editing suite

Off-the-Shelf Software

These are software that can be downloaded from a public marketplace.

Pros
Cons

Readily available for usage.

Little-To-No control over features.

Less costly as development costs are shared among the buyers.

It may not do exactly what you want.

More likely to be well-tested & well-documented

There may be a security threat which you cannot fix as you have no control.

Bespoken Software

This is the type of software that's specifically created to fulfil your own exact specification.

The main disadvantage of bespoken software is that it can be significantly costly and it may take months/years to develop. However, bespoken software gives you a complete control over it's functioning and updates.

Last updated