An operating system (or OS) is a group of computer programs, including device drivers, kernels, and other software that lets people interact with a computer. It manages computer hardware and software resources. It provides common services for computer programs. An OS can be small (like MenuetOS), or large (like Microsoft Windows). Different operating systems can be used for different purposes. Some are used for everyday things like on a personal computer. Others are mobile operating systems or are used for specialized work.

An operating system has many jobs. It makes sure that all the programs can use the CPU, system memory, displays, input devices, and other hardware. Some also give the user an interface to use a computer. An OS is also responsible for sending data to other computers or devices on a network. 

Some examples of commonly used operating systems are macOS, Linux, and Microsoft Windows.

History

The first operating system was used with the ENIAC (Electronic Numerical Integrator and Computer). It was very hard to make ENIAC do work. How the operating system worked was based on how the switches and cables were put together and depending on this factor punch cards would make a result. While this was an operating system of a kind, it is not what is thought of as one in modern times.

The first operating system that looked and felt like operating systems in the modern age was UNIX, made in 1969 by Bell Labs. It had a small kernel and many tiny programs that could be put together to work with user input and data. Many of its features were taken from Multics, an older operating system made in 1964.

Types

Single- and multi-tasking 
A single-tasking system can only run one program at a time.  A multitasking operating system can run more than one program at the same time.  Multi-tasking is done by dividing processor time.  The processor gives a little bit of its time to each program.

Single- and multi-user 
Single-user operating systems cannot distinguish between users, but may allow multiple programs to run simultaneously. A multi-user operating system permits multiple users to interact with the system at the same time.

Distributed 
A distributed operating system manages a group of distinct computers and makes them appear to be a single computer. Distributed computations are carried out on more than one machine.

Templated 
In an OS, distributed and cloud computing context, templating refers to creating a single virtual machine as a guest operating system, then saving it as a tool for multiple running virtual machines. The technique is common in large server warehouses.

Embedded 
Embedded operating systems are designed to be used in embedded systems. They are designed to operate on small machines like PDAs with less autonomy and are able to operate with a limited number of resources.

Real-time 
A real-time operating system guarantees processing of events or data by a specific moment in time. A real-time operating system may be single- or multi-tasking, but when multitasking, it uses specialized scheduling algorithms so that a deterministic nature of behavior is achieved. An event-driven system switches between tasks based on their priorities or external events while time-sharing operating systems switch tasks based on clock interrupts.

Library 
A library operating system is one in which the services that a typical operating system provides, such as networking, are provided in the form of libraries and composed with the application and configuration code to construct a unikernel: a specialized, single address space, machine image that can be deployed to cloud or embedded environments.

Related pages
 BIOS

References