An operating system is the lowest-level program running on a computer. The operating system provides software interfaces for the computer hardware, basic input and output functions, file and network management, and memory allocation. On top of these functions the user may run a command line, web, or graphical user interface. Additionally, the operating systems of non-specialized home and office computers are able to run third-party programs that either extend the functionality of the computer, or provide alternative interfaces to the existing functions. These programs need not know what hardware the computer consists of: the operating system provides the hardware abstraction necessary for running a single program on millions of different possible hardware combinations.
Most home computers today use the Microsoft Windows operating system. Other operating systems, such as Apple Macintosh and Linux, have traditionally been termed as "alternative operating systems", implying that Windows is usually expected to be installed by default. However, the usability issues surrounding Windows Vista, combined with improvements in the usability of graphical user interfaces for Linux, have catalyzed renewed interest in Linux and Macintosh. Other concerns, such as restrictive licensing and DRM issues, are expected to further interest in alternative, mostly open source operating systems. Currently, Linux is the leading open source operating system, with many distributions consisting entirely of open source software.
The first computers had no operating systems. The hardware of these early systems was very specialized, and only certain types of programs would run on them. These programs, being so specialized, interfaced directly with the system's hardware. Thus, these programs were not portable and any changes in hardware required changes in the computer program. As computers became less specialized, and different companies began producing hardware, the need for abstraction layers that would allow programs to run on the various hardware became apparent. Hence the concept of the shared library was invented, the first of which provided uniform software interfaces to various hardware. Later, these libraries incorporated time-sharing management tools and automatic job switching functions. Thus, the operating system was born.