\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}
