On virtually all computer platforms, software can be grouped into a few broad categories.
Purpose, or domain of use
Based on the goal, computer software can be divided into:
• Application software
which is software that uses the computer system to perform special functions or provide entertainment functions beyond the basic operation of the computer itself. There are many different types of application software, because the range of tasks that can be performed with a modern computer is so large—see list of software.
• System software
which is software that directly operates the computer hardware, to provide basic functionality needed by users and other software, and to provide a platform for running application software. System software includes:
• Operating systems
which are essential collections of software that manage resources and provides common services for other software that runs “on top” of them. Supervisory programs, boot loaders, shells and window systems are core parts of operating systems. In practice, an operating system comes bundled with additional software (including application software) so that a user can potentially do some work with a computer that only has one operating system.
• Device drivers
which operate or control a particular type of device that is attached to a computer. Each device needs at least one corresponding device driver; because a computer typically has at minimum at least one input device and at least one output device, a computer typically needs more than one device driver.
which are computer programs designed to assist users in the maintenance and care of their computers.
• Malicious software or malware
which is software that is developed to harm and disrupt computers. As such, malware is undesirable. Malware is closely associated with computer-related crimes, though some malicious programs may have been designed as practical jokes.