\chapter{Software} We can think of the operations of a system in \textit{layers}. At the very top there is the user. Below this there are applications that the user interacts with. These then interact with the operating system in the layer below, which interacts with the system hardware as the bottom layer. \begin{myquote} \textit{Software} consists of the programs and other operating information used by a computer. \end{myquote} \textit{Application software} performs tasks for a user (such as a word processor, game, or web browser) through interaction with the operating system. \textit{Utility programs} are used to maintain and improve functionality of the computer. Utility programs include \textit{firewalls} (which blocks network activity deemed dangerous), \textit{disk defragmenters} (which ensure that files are organised in a sensible way across the blocks on a hard disk in order to improve performance, rather than having a file scattered across multiple blocks), \textit{disk formatters}, and \textit{system information and diagnostics} tools. \section{Operating sytem} The operating system is a type of system software which provides an interface between applications and the hardware. It has five primary tasks: \begin{itemize} \item Processor management: allocating time and cores for applications to run on the CPU. \item Memory management: allocating and managing main memory needed by applications. \item Security: managing login and other basic authentication and security operations of the system, such as preventing an unprivileged user from making some changes. \item Input/output (I/O) device management: managing any I/O devices such as keyboards, mice, screens, printers, speakers, and network interfaces by ensuring that the necessary drives are present to allow many different devices to work with the system. \item Applications: interfacing with the applications being run and providing essentials such as a graphical interface for the application to the user and network access to an application. \end{itemize}