An operating system provides the connection between a computer's fundamental hardware, peripheral devices and users. It also creates a consistent development platform for programmers. Computers of all sizes, from cell phones to supercomputers, need operating systems to function.
Most computers have a processor, which performs calculations and processes information, memory, which holds program information, and a disk drive for storing programs and data. These devices need an operating system to work together. Computer RAM, for example, relies on the operating system to determine where information is held.
Operating systems also manage external devices. Operating systems typically come with drivers for graphics and sound chips and cards, and they typically support keyboards, mice and other input devices. Other devices, such as printers and scanners, often need third-party drivers to function. Most operating systems provide a driver interface to ease the process of developing hardware drivers.
Programmers rely on the abstraction provided by operating systems to make development simpler. Instead of having to work directly with a keyboard or mouse, programmers use signals provided by the operating system. Instead of having to create a graphical windowing system to display information, programmers can send relatively simple commands to the operating system, which handles much of the work. This abstraction often allows developers to target multiple operating systems with a single code base while making only small system-specific tweaks.