Operating System

Description
An operating is not technically regarded as a software but more an interface between a computer and the user. The operating system's main purpose is to manage the computer's hardware and software resources undefined. There are a variety of operating systems available and each one's performance and features is significantly dependent on how the vendor developed it.

Operating systems are usually full of vulnerabilities that attackers can exploit and therefore vendors will regularly release patches to correct these vulnerabilities and help strengthen the operating system's security. The most commonly targeted operating system is Microsoft's Windows operating system.

Functionality
The operating system is vital for managing hardware and software running on the computer, but it also helps coordinate multiple processes as well. When multiple applications are running at the same time, it needs to be processed by the central processing unit (CPU), portions need to be stored in the random access memory (RAM), and the application files need to be accessed and read from storage undefined. The operating system coordinates all of these aspects so that computer resources are used properly, such as letting applications use only the amount of memory that it needs and allowing each application an opportunity to obtain some processing time, and the operating system will need to determine where to read file data from when application are run.

The operating system is also responsible for allowing hardware and software to communicate with each other accordingly so that applications and the computer can behave in a stable and predictable manner. It also helps control additional devices connected to the computer such as a mouse, keyboard and screen undefined. Old operating systems required users to have an understanding of command-line instructions to use a computer, and most actions were performed by entering in commands and the computer would produce an output. Modern operating systems use a graphical user interface (GUI) approach where the user interacts with text fields, buttons and uses a mouse cursor to select certain objects on the computer to perform a task. When this is done, the operating runs the respective commands in the background for the user, thereby relieving the need to know a large amount of complex commands, but if the user wants, they can still use commands in the built-in command prompt application.

Users are also able to access data on hard disks easier with operating systems. The operating system uses a type of file structure system in which files and folders can be stored. When the user needs to access a file or data, they simply navigate through the GUI until they get to the desired storage location, and this makes it easier for the operating system to locate and read files when necessary, as opposed to older operating systems where one disk could be read at a time and had to be entered in by the user in order to be used.

Operating systems are also responsible for handling hardware drivers. Drivers are specific pieces of software that allow hardware to communicate with the operating system and therefore allow that hardware to work on the computer, and in some cases communicate with software. This makes it easier for devices from various vendors to work together and work on the same operating system without any (or at least minimal) compatibility issues.

The most common operating systems in use today are:
 * Android - This is the most popular operating system for mobile devices, with over one billion users.
 * MacOS - This is the operating system found on Apple devices, with iOS being used for mobile Apple device.
 * Windows - This is the most commonly used operating system for computers worldwide. Windows for mobile devices is appears to be losing popularity.
 * Linux - This is an open-source operating system claimed to be very efficient and very secure. It's commonly used on servers in organizations and is the favorite operating system for hackers.

Security
The kernel is a very valuable target for attackers, because if they are able to take control of the kernel, it can grant them the highest level of control of the target system. If malware were to infect the kernel, then the system can become unstable, perform slow or suffer significant damages. Attackers will usually try to run rootkits in the kernel as this can give them the most amount of control possible over the operating system and the system's hardware undefined.

Over the years, vendors have been improving the security of their operating systems to protect them from malware, remote attackers and reduce the amount of vulnerabilities available for exploitation. However, given the size and immense amount of features and components within an operating system, it's nearly impossible to make an operating system that's 100% secure. Another reason operating systems will not be completely secure is attackers dedicate a lot of time and effort understanding new features added to operating systems, looking for vulnerabilities and also understanding the new features so they can try develop ways to bypass them.

An operating system's security is also dependent on how the user configures security policies. A user who disables updates, misconfigures control policies and built-in security mechanisms is highly vulnerable to attack. This is a common case and often results in either a data breach or a successful malware infection. Security policies and features should be implemented and configured by a user who has a good understanding of how these mechanisms work and potential security threats that the operating system may face.