|
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:
- 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
- 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).
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
|