- Software is computer code that tells a computer how to perform a specific task.
- There are many kinds of software, including operating systems, applications, and malware.
- Software can be distributed for free, as shareware, commercially, or with its source code (which is called open-source).
- Visit Insider's Tech Reference library for more stories.
Software is a set of instructions, written in computer code, that tells a computer how to behave or how to perform a specific task. Software usually comes in the form of commercial programs (like Microsoft Word and Adobe Photoshop), games, a computer operating system, or even malware like viruses and ransomware. Any program or code that runs on a computer is an example of software, and anything you do with a computer requires the use of software. Software is created by computer programmers, commonly referred to as coders.
Types of software
There are many types of software in use today. To give you a sense of the scope of the software industry, here is an overview of the major kinds of software in use today.
System software is the general category of software that allows the computer hardware to function and serves as the underlying platform for applications to run. System software is particularly complex, and there are multiple "layers" associated with any computing device. For example:
- Operating system (OS): Without an operating system like Windows or MacOS, a computer is just a collection of hardware components unable to perform any functions. The OS allows the computer to perform basic functions, provides an interface so users can interact with the computer, and a platform on which applications can run. The OS "abstracts" many common tasks for applications to minimize redundancy – for example, the OS offers printing as a service to applications so every program doesn't need to have its own way of sending files to the printer.
- Firmware: Many devices and components have firmware, which is semi-permanent software that tells the device how to behave and how to interact with other devices. Firmware can often be updated, but persists when there's no power applied to the device.
- Device drivers: Device drivers are small programs that allow the operating system and computer components to communicate. Every component needs a driver so the OS knows how to use that device. Virtually every component in a computer, including the video card, sound chip, keyboard, and mouse have their own drivers.
- Utilities: Blurring the line between system software and application, utilities are small programs that often come with or tightly integrate themselves into the OS to perform specific OS tasks. Anti-malware software, hard drive cleanup, and file compression tools (like WinZip) are examples of utilities.
This is the kind of software you are probably most familiar with – also called programs or apps, they are packages that usually have a specific purpose and you use to accomplish a certain goal.
There's a virtually limitless variety of applications. Some of the most common include productivity software like word processors, spreadsheets, and email clients (Microsoft Word, Excel and Outlook are common examples). Database software like Microsoft Access is used to organize and manage large volumes of data.
Games are also popular applications, as well as multimedia software (the Camera app on your phone is an application, as well as Adobe Photoshop, which is used to edit graphics and photos). Web browsers are also among the most common software applications.
It's probably no surprise that software is created with other software. Coders rely on a number of different software tools to create programs. Here are a few examples of programs used by coders during software development:
- Compilers are programs that convert the code written by humans into a lower-level form of machine code that's directly interpretable by computer hardware. The existence of compilers makes it practical to create extremely sophisticated software.
- Debuggers are computer programs used to test and "debug" (find and remove errors) from computer code.
- Linkers are programs that take the output from a compiler – often many individual files – and combine them into a single executable file that can be run on its own by a user without the need to run it within a programming environment.
- Malware is software designed to act in harmful ways, and there are many examples of malware today including viruses, worms, Trojans, and ransomware. When infected with malware, a computer and its software may misbehave or stop working entirely. There's an arms race between malware developers and anti-malware utility writers, and it's important to have anti-malware software installed on your computer. You should also follow best practices to avoid malware.
How software is distributed
Not all programs are distributed, sold, or shared the same way, and the primary method of distribution has changed over the years. At one time, virtually all software was commercial and sold through retailers. That's far from the case today. Here are some of the major distribution mechanisms.
- Commercial: A lot of software is still commercial, though it's far less common than it once was. Any program you purchase and get a physical or digital copy of is commercial software. Keep in mind that you don't own the software; you only own a license that confers the right to use the software. The distinction is important for a lot of reasons, not the least of which is it gives the publisher the right to change the software via online updates without your express permission.
- Open-source: Often seen as the opposite of commercial, open-source software is usually made available with all of its source code, which allows an entire community of coders to update, modify, and improve the program. Not all open-source software is free; some is sold at retail prices.
- Freeware: A lot of software is completely free to download and use. The freeware model allows publishers to distribute its software more easily because a lot of people will be willing to try something for free. Some freeware is also referred to as adware because while the application is free, it comes with embedded advertising.
- Shareware: A variation of freeware, shareware is free for a limited time. If you find the application useful, you have the option to pay for it to continue using it. Many shareware programs are free for a limited period of time, though other programs will only work for a specific number of uses.