# data[].attributes.body
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.

For hardware functions such as input and output and memory allocation, the operating system acts as an intermediary between programs and the computer hardware.

# data[].attributes.body
1.Kernel
With the aid of the firmware and device drivers, the kernel provides the most basic level of control over all of the computer's hardware devices. It manages memory access for programs in the RAM, it determines which programs get access to which hardware resources, it sets up or resets the CPU's operating states for optimal operation at all times, and it organizes the data for long-term non-volatile storage with file systems on such media as disks, tapes, flash memory, etc.

# data[].attributes.body
2.Program execution
The operating system provides an interface between an application program and the computer hardware, so that an application program can interact with the hardware only by obeying rules and procedures programmed into the operating system. The operating system is also a set of services which simplify development and execution of application programs.

# data[].attributes.body
3.Interrupts
Interrupts are central to operating systems, as they provide an efficient way for the operating system to interact with and react to its environment.
Interrupt-based programming is directly supported by most modern CPUs. Interrupts provide a computer with a way of automatically saving local register contexts, and running specific code in response to events.

# data[].attributes.body
4.Modes
Modern microprocessors support multiple modes of operation. CPUs with this capability offer at least two modes: user mode and supervisor mode.

-Supervisor mode is used by the kernel for low level tasks that need unrestricted access to hardware, such as controlling how memory is accessed.

-User mode, in contrast, is used for almost everything else. Application programs, such as word processors and database managers, operate within user mode,etc.

# data[].attributes.attachment_link.title
Operating Systems; Kernel Mode and User Mode

# data[].attributes.body
5.Memory management
This ensures that a program does not interfere with memory already in use by another program. Since programs time share, each program must have independent access to memory.

Memory protection enables the kernel to limit a process' access to the computer's memory. Various methods of memory protection exist, including memory segmentation and paging.

# data[].attributes.body
6.Virtual memory
The use of virtual memory addressing  means that the kernel can choose what memory each program may use at any given time, allowing the operating system to use the same memory locations for multiple tasks.

# data[].attributes.body
7.Multitasking
Multitasking refers to the running of multiple independent computer programs on the same computer; giving the appearance that it is performing the tasks at the same time. Since most computers can do at most one or two things at one time, this is generally done via time-sharing, which means that each program uses a share of the computer's time to execute.

# data[].attributes.body
8.Disk access and file systems
Access to data stored on disks is a central feature of all operating systems. Computers store data on disks using files, which are structured in specific ways in order to allow for faster access, higher reliability, and to make better use of the drive's available space. The specific way in which files are stored on a disk is called a file system, and enables files to have names and attributes.

# data[].attributes.body
9.Networking
Currently most operating systems support a variety of networking protocols, hardware, and applications for using them. This means that computers running dissimilar operating systems can participate in a common network for sharing resources such as computing, files, printers, and scanners using either wired or wireless connections.
Client/server networking allows a program on a computer, called a client, to connect via a network to another computer, called a server.

# data[].attributes.body
10.Security
A computer being secure depends on a number of technologies working properly. A modern operating system provides access to a number of resources, which are available to software running on the system, and to external devices like networks via the kernel.
The operating system must be capable of distinguishing between requests which should be allowed to be processed, and others which should not be processed.

# data[].attributes.body
11.User interface
The user interface is usually referred to as a shell and is essential if human interaction is to be supported. The user interface views the directory structure and requests services from the operating system that will acquire data from input hardware devices, such as a keyboard or mouse  and requests operating system services to display prompts, status messages and such on output hardware devices, such as a video monitor or printer.
The two most common forms of a user interface have historically been the command-line interface,  and the graphical user interface.
A screenshot of the Bash command line:

# data[].attributes.body
-Microsoft Windows: is a family of proprietary operating systems designed by Microsoft Corporation and primarily targeted to Intel architecture based computers.

-Linux:  because of its open license model, the Linux kernel code is available for study and modification, which resulted in its use on a wide range of computing machinery from supercomputers to smart-watches.

-macOS: is a line of open core graphical operating systems developed, marketed, and sold by Apple Inc., the latest of which is pre-loaded on all currently shipping Macintosh computers.

# data[].attributes.body
-Unix and Unix-like operating systems: the Unix-like family is a diverse group of operating systems, with several major sub-categories including System V, BSD, and Linux.

-BSD and its descendants: a subgroup of the Unix family is the Berkeley Software Distribution family, which includes FreeBSD, NetBSD, and OpenBSD. These operating systems are most commonly found on webservers, although they can also function as a personal computer OS.

-Android: is a mobile operating system based on a modified version of the Linux kernel and other open source software, designed primarily for touchscreen mobile devices such as smartphones and tablets.