Types of software

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.[2] 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 an 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.
Utilities, 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.

Nature or domain of execution

Desktop applications such as web browsers and Microsoft Office, as well as smartphone and tablet applications (called “apps”). (There is a push in some parts of the software industry to merge desktop applications with mobile apps, to some extent. Windows 8, and later Ubuntu Touch, tried to allow the same style of application user interface to be used on desktops, laptops and mobiles.) Server software, including:
Web applications, which usually run on the web server and output dynamically generated web pages to web browsers, using e.g. PHP, Java, ASP.NET, or even JavaScript that runs on the server. In modern times these commonly include some JavaScript to be run in the web browser as well, in which case they typically run partly on the server, partly in the web browser.
Plugins and extensions are software that extends or modifies the functionality of another piece of software, and require that software be used in order to function;
Embedded software resides as firmware within embedded systems, devices dedicated to a single use or a few uses such as cars and televisions (although some embedded devices such as wireless chipsets can themselves be part of an ordinary, non-embedded computer system such as a PC or smartphone).[3] In the embedded system context there is sometimes no clear distinction between the system software and the application software. However, some embedded systems run embedded operating systems, and these systems do retain the distinction between system software and application software (although typically there will only be one, fixed, application which is always run).
Microcode is a special, relatively obscure type of embedded software which tells the processor itself how to execute machine code, so it is actually a lower level than machine code. It is typically proprietary to the processor manufacturer, and any necessary correctional microcode software updates are supplied by them to users (which is much cheaper than shipping replacement processor hardware). Thus an ordinary programmer would not expect to ever have to deal with it.

2 thoughts on “Types of software

  1. I truly thank you for well composed content material. You have made it interesting and appealing to go through. I personally accept your views on this specific subject matter. It is incredible to find a writer who loves their particular material.

  2. I wanted to demonstrate my own gratitude for your point of view on this particular topic by leaving you a very good remark. Many thanks for writing high quality content for viewers just like me. You actually are a blessed writer.

Leave a Reply

Your email address will not be published. Required fields are marked *