Software is a set of instructions, data or programs used to operate computers and execute specific tasks. Opposite of hardware, which describes the physical aspects of a computer, software is a generic term used to refer to applications, scripts and programs that run on a device. Software can be thought of as the variable part of a computer and hardware the invariable part.
Software is often divided into application software, or user downloaded programs that fulfill a want or need, and system software, which includes operating systems and any program that supports application software. The term middleware is sometimes used to describe programming that mediates between application and system software or between two different kinds of application software. For example, middleware could be used to send a remote work request from an application in a computer that has one kind of operating system to an application in a computer with a different operating system.
An additional category of software is the utility, which is a small, useful program with limited capability. Some utilities come with operating systems. Like applications, utilities tend to be separately installable and capable of being used independently from the rest of the operating system.
Software can be purchased or acquired in the following ways:
- Shareware- usually distributed on a free or trial basis with the intention of sale when the period is over.
- Liteware- a type of shareware with some capabilities disabled until the full version is purchased.
- Freeware- can be downloaded for free but with copyright restrictions.
- Public domain software- can be downloaded for free without restrictions.
- Open source- a type of software where the source codeis furnished and users agree not to limit the distribution of improvements.
Today, much of the purchased software, shareware and freeware is directly downloaded over the Internet. In these cases, software can be found on specific vendor websites or application service providers. However, software can also be packaged on CD-ROMs or diskettes and sold physically to a consumer.
Some general kinds of application software include:
- Productivity software, which includes tools such as word processors and spreadsheets.
- Presentation software, also known as slideware.
- Graphics software.
- Vertical marketor industry-specific software, for example, banking, insurance and retail applications.
A specialized type of software that allows hardware to run is firmware. This is a type of programming that is embedded onto a special area of the hardware's nonvolatile memory, such as a microprocessor or read-only memory, on a one-time or infrequent basis so that thereafter it seems to be part of the hardware.