Computer Software
Program
An ordered sequence of instructions that the hardware can execute.
Software
The programs that allow users to use a computer system and control its activities.
Process
An instance of a running program.
Categorization of Software
Software can be categorized into system software and application software. Categorizing software into these 2 types is a difficult task.
System software
Any software that satisfies any one of the following conditions:
- manages the computer hardware
- can be used to maintain the computer so that it runs efficiently
- helps to do tasks easily and quickly
- helps to create new software
- may not be targeted for end-users
Example: operating system
Systems programming requires a greater degree of hardware awareness compared to programming application software.
Utility software
Performs very specific tasks, usually related to managing computer system resources. Widely used utility software today can be incorporated into operating systems in the future.
Software development tools
Software that are required to create new software.
Examples:
- Compilers
- Assemblers
- Linkers
- Debuggers
Some operating systems (like Linux) provide such software by default.
Firmware
System software embedded in a hardware device (i.e., stored on a non-volatile storage).
Examples:
- BIOS in personal computers
- controlling software in DVD players
Application Software
All software except system software. Designed to be used by end-users.