System software helps use the operating system and computer system. It includes diagnostic tools, compilers, servers, windowing systems, utilities, language translator, data communication programs, database systems and more. The purpose of system software is to insulate the applications programmer as much as possible from the complexity and specific details of the particular computer being used, especially memory and other hardware features, and such accessory devices as communications, printers, readers, displays, keyboards, etc.
Specific kinds of system software include:
- Loaders
- Linkers
- Utility software
- Desktop environment / Graphical user interface
- Shells
- BIOS
- Hypervisors
- Boot loaders
- Database Management Systems(SQL, NoSQL)
If system software is stored on non-volatile memory such as integrated circuits, it is usually termed firmware