System software is a collection of programs that supports computer operations. It is closely tied to computer architecture. By taking care of basic tasks such as input, output and data storage, system software allows application developers to focus on specific tasks their software needs to accomplish. Examples of system software include operating systems, device drivers, programming tools and all of the other utility programs that allow the computer to function.
Operating System Software
Video of the Day
The operating system of a computer controls allocation of hardware resources. It handles input data from peripheral devices, schedules CPU processor time, manages memory use and sends output data to printers and other peripherals. Today, most operating systems allow multiple applications to run at the same time, switching resource allocation between them. Some of the most well-known examples of operating systems include Windows, Mac OS and Linux.
Video of the Day
Device Driver Support
All of the different peripheral devices used by a computer system, including the mouse, keyboard, display monitor, hard drive and printer, are operated by individual pieces of software known as device drivers. Some drivers are included as part of the system software, while others must be installed the first time the device is connected to the computer. To ease this process, most drivers today use a standard protocol supported by the system software, such as Plug and Play, to facilitate communication between the device hardware and the computer system.
Programming Tools
Both system and application software consist of computer instructions that are written in a programming language and then processed for use by the computer. System software may include tools such as compilers, assemblers and linkers that convert human-readable programming code into machine code for the computer to execute. Examples of system software programming tools include Microsoft's Visual Studio IDE (Interactive Development Environment) and Apple's Xcode IDE.
System Utilities
A number of utilities that perform administrative tasks are usually part of system software. These may include programs to: compress disk drive and diagnose disk problems; install and uninstall software; manage the recycling bin and perform system backup and restore. System utilities may be built into the system software or added as separate products.
Other Uses of System Software
Security is a critical issue on computer systems that are connected to the outside world, so most system software provides firewalls and virus checkers to keep out hackers and malicious programs. Support of the user interface, which is the way that humans communicate with the computer, is another important system software function. A user interface may take the form of a command line or may be a full-blown GUI (graphical user interface) that allows users to interact with windows, menus and buttons. System software is also responsible for managing network connections and providing file systems that utilize external storage.