System software
System software is any computer software which manages and controls computer hardware so that application software can perform a task. System software helps run the computer hardware and computer system. System software is software that basically makes the computer work. Examples beside operation systems are anti-virus software, communication software and printer drivers. Without the system software the computer doesn't work. The part of the operating system that resides in main memory (internal instructions) is most important; without these instructions, the computer cannot operate. These instructions must be loaded from storage when the computer is first turned on (called booting for microcomputers and initial program load for mainframes) — otherwise, none of the hardware components will function. Internal instructions must reside in main memory at all times while the computer is on. External command instructions perform so-called housekeeping tasks, which frequently have to do with "desktop" management and file and storage management. System software performs tasks like transferring data from memory to disk, or rendering text onto a display device. It includes: operating systems, device drivers, diagnostic tools, servers, windowing systems, utilities and more. System Software can be classified as operating system and language processors.
Operating system creates an interface between user and the system hardware. Language processors are those which help to convert computer language to machine level language.
Some low-level languages, called assembly languages, were created using abbreviations to help programmers avoid the tedious and time-consuming task of writing programs in machine language (0s and 1s). High-level languages were developed to make the job even easier. However, both high-level and assembly languages must be translated into machine language for the CPU to use them. The translation can be done by interpreters, which convert software instructions from source code to object code a line at a time and thus allow for on-the-spot error correction, or compilers, which convert the whole source program at once and create a program in object code that the computer can understand (called an object program) and save. The average business user will not have to interact directly with language translators. The level of sophistication of systems software depends on the size of the computer it operates and the tasks it is intended to perform. When operating systems were first developed, they could support only single users; many mainframe operating systems and some microcomputer operating systems can now support multitasking (performing several tasks so fast that it appears they are being done at once), multiprocessing (using two or more CPUs to process two or more programs simultaneously), timesharing (allowing several users to work at the computer at the same time using assigned time slices), and virtual storage (employing a piecemeal procedure for using secondary storage that increases the efficiency of main memory use). The example of language processors are assemblers, compilers and interpreters.
Specific kinds of system software include: loading programs, operating systems, device drivers, programming tools, compilers, assemblers, linkers, and utility software.
If system software is stored on non-volatile memory such as integrated circuits, it is usually termed firmware.
The most popular disk operating systems for microcomputers are MS - DOS/PC-DOS, OS/2, Apple DOS, and UNIX. Operating systems like OS/2 and UNIX can support multi-users and multitasking on microcomputers. Software is written to work with a particular type of microprocessor and is incompatible with machines that do not use that type of processor.