The Computer software reference article from the English Wikipedia on 24-Apr-2004
(provided by Fixed Reference: snapshots of Wikipedia from wikipedia.org)

Computer software

Computer software is a generic term for organized collections of code representing instructions executed by a computer. Software is often written first as source code, and then converted to a binary format that is specific to the device on which the code will be executed.

Sometimes (especially in older texts) software is also used as opposite of hardware for everything a computer processes or even generally for data. Some dictionary e.g. lists a second meaning Information (generally copyrightable) that may provide instructions for computers; data for documentation; and voice, video, and music for entertainment or education. This meaning is less and less often found. Places where this meaning is used like the Debian Social Contract cause repeated confusion.

Software for personal computers is often broken into two major categories: system software that provides the basic non-task-specific functions of the computer, and application software used to accomplish specific user-oriented tasks. Programs stored on non-volatile storage on integrated circuits are usually termed firmware.

The term was first used in this sense by John W. Tukey in 1957. For other uses of the word software see Software (disambiguation).

Table of contents
1 System software
2 Application software
3 Software creation
4 Software patents
5 Related articles

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 an 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.

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 interpreterss, 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