System software, or systems software, is computer software designed to provide a platform to other software. Examples of system software include operating systems, computational science software, game engines, industrial automation, and software as a service applications.
In contrast to system software, software that allows users to do things like create text documents, play games, listen to music, or web browsers to surf the web are called application software.
The line where the distinction should be drawn is not always clear. Many operating systems bundle application software. Such software is not considered system software when it can be uninstalled usually without affecting the functioning of other software. Exceptions could be e.g. web browsers such as Internet Explorer where Microsoft argued in court that it was system software that could not be uninstalled. Later examples are Chrome OS and Firefox OS where the browser functions as the only user interface and the only way to run programs (and other web browser can not be installed in their place), then they can well be argued to be (part of) the operating system and then system software.
Another borderline example is cloud based software. This software provides services to a software client (usually a web browser or a JavaScript application running in the web browser), not to the user directly, and is therefore systems software. It is also developed using system programming methodologies and systems programming languages. Yet from the perspective of functionality there is little difference between a word processing application and word processing web application.
Operating systems or System control programs
The operating system (prominent examples being Microsoft Windows, macOS and Linux), allows the parts of a computer to work together by performing tasks like transferring data between memory and disks or rendering output onto a display device. It provides a platform (hardware abstraction layer) to run high-level system software and application software.
A kernel is the core part of the operating system that defines an API for applications programs (including some system software) and an interface to device drivers.
Device drivers, including also computer BIOS and device firmware, provide basic functionality to operate and control the hardware connected to or built into the computer.
A user interface "allows users to interact with a computer." Either a command-line interface (CLI) or, since the 1980s a graphical user interface (GUI). Since this is the part of the operating system the user directly interacts with, it may be considered an application and therefore not system software.
Utility software or system support programs
For historical reasons, some organizations use the term systems programmer to describe a job function which is more accurately termed systems administrator. Software tools these employees use are then called system software. This so-called Utility software helps to analyze, configure, optimize and maintain the computer, such as virus protection. In some publications, the term system software also includes software development tools (like a compiler, linker or debugger).
See also
- System programming
- Systems programming language
System software of video game consoles:
- From Microsoft:
- Xbox 360 system software
- Xbox One system software
- From Nintendo:
- Wii system software
- Wii U system software
- Nintendo DSi system software
- Nintendo 3DS system software
- From Sony:
- PlayStation 3 system software
- PlayStation 4 system software
- PlayStation Portable system software
- PlayStation Vita system software
- PSP Go
References
External links
- Sammet, Jean (October 1971). "Brief Survey of Languages Used for Systems Implementation". SCM SIGPLAN Notices. 6 (9): 1â"19. doi:10.1145/942596.807055.Â