Home Home  Article Index Article Index  
GuruPedia  

Computer software

Computer software (or simply software) is a collection of programs and data held in the storage of a computer for some purpose. Software can implement a computer program; such software performs the function of the program it implements, either by directly providing instructions to the computer hardware or by serving as input to another piece of software. On the other hand, software sometimes consists only of data purely for the use of other software.

The term "software" was first used in this sense by John W. Tukey in 1957. Software is often contrasted with hardware, which is the physical substrate on which software exists.

Any modern general purpose computer (as opposed to an embedded system) has a number of layers of software performing a variety of tasks. These are often divided into two major categories:

  1. system software, which includes the basic input-output system (often described as firmware rather than software), device drivers, an operating system, and typically a graphical user interface which, in total, allow a user to interact with the computer and its peripherals (associated equipment), and
  2. application software, which allows a user to accomplish one or more specific tasks.

Colloquially, the words program and software are often used interchangably to mean application software.

In computer science and software engineering, computer software is all information processed by computer system, programs and data.


For other uses of the word software see Software (disambiguation).

Table of contents

Software in operation

Computer software has to be "loaded" into the computer's storage (or memory).

Once the software is loaded, the computer is able to operate. Computers operate by executing the software. This involves passing instructions from the application software, through the system software, to the hardware which ultimately receives the instruction as machine code. Each instruction causes the computer to carry out an operation -- moving data, carrying out a computation, or altering the flow of instructions.


System software

System software is responsible for controlling, integrating, and managing the individual hardware components of a computer system so that other software and the users of the system see it as a functional unit without having to be concerned with the low-level details such as transferring data from memory to disk, or rendering text onto a display. Generally, system software consists of the operating system and some fundamental utilities such as disk formatters, file managers, display managers, text editors, user authentication (login) and management tools, and networking and device control software.

Some common System Software are:

System software stored on non-volatile storage on integrated circuits is usually termed firmware.

Application software

Application software, on the other hand, is used to accomplish specific tasks other than just running the computer system. Application software may consist of a single program, such as an image viewer; a small collection of programs (often called a software package) that work closely together to accomplish a task, such as a spreadsheet or text processing system; a larger collection (often called a software suite) of related but independent programs and packages that have a common user interface or shared data format, such as Microsoft Office, which consists of closely integrated word processor, spreadsheet, database management system, etc.; or a software system, such as a database management system, which is a collection of fundamental programs that may provide some service to a variety of other independent applications.

Software creation

Software is created with programming languages and related utilities, which may come in several of the above forms: single programs like script interpreters, packages containing a compiler, linker, and other tools; and large suites (often called Integrated Development Environments) that include editors, debuggers, and other tools for multiple languages.

Software patents

The issue of software patents is very controversial, since while patents protect the ideas of "inventors", they are widely believed to hinder software development.

Related articles

External links



Popular Topics

This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.  For the live article, click here.

Privacy