- [Craig] In this video, we look at the purpose and functionality of system software within a computer system.
(uplifting piano jingle)
We know that all computer systems input data, they process that data and they output a result.
And quite often, this process is going to involve a user that's going to provide that data.
And the output is going to be produced by some hardware, whether that's a display or a printer of some form.
So, the user needs a way of interacting with that hardware, and that's the purpose of an operating system.
It provides the interface between the user and the hardware.
Now, the user doesn't tend to interact directly with the hardware, but instead, they use application software such as word processors,
spreadsheets or graphics programs in order to accomplish a given task.
And it's the role of the operating system to provide a platform on which that application software can run.
Application software today usually involves a common user interface,
so the user is interacting with the application software in a familiar and friendly way.
The application software will have a user and the operating system is providing a platform for those applications to run,
and it's also providing its own user interface experience in addition to the application software.
There are also a number of utility programs, some of which are built into the operating system
that help to maintain the computer.
Some typical examples might be encryption software, compression software and defragmentation software.
Loading programs into memory so they can be executed and managing the data of those programs in memory is not a trivial task,
especially when you combine that with virtual memory that we've studied in previous topics,
and so the operating system has to manage the memory for the processor.
The user will also want to save what's in the memory from time to time so they don't lose their work when the power's switched off,
so the operating system also has to manage the file store.
It has to make decisions about where files are going to be stored and where they're going to be loaded from again.
The large array of additional peripheral hardware connected to computers
are also going to operate in a very specific way and, therefore, they need some device drivers
in order to translate operating system instructions into something that the hardware is actually going to understand.
So in summary, there are two types of system software.
There's the operating system that provides a platform on which users can run programs
and there's also utility software, which is used to maintain the computer system.
We're going to look at each of those concepts in a little bit more detail in subsequent videos.
But first, let's look at one of these concepts now.
The user interface,
which is a catch-all umbrella term for the way in which you interact with a computer as a human being.
There are a number of ways of providing that interaction by an operating system,
and one of the most common and familiar to you is what's known as the graphical user interface or GUI.
So here, we've got windows, we've got icons, we've got menus and we've got the pointer,
and this is often known as a WIMP interface; windows, icons, menus and pointers.
It's a very visual interface and it's very interactive.
It's quite intuitive to use, so it's ideal for beginners, and it's optimised for the mouse and touch gesture input.
The opposite of a graphical user interface is a command line interface.
It's very text-heavy but it's less resource-heavy compared to a GUI.
It's very slimlined and efficient; it tends to have more commands than a graphical user interface.
It's best-suited for advanced users that want to accomplish tasks quickly.
It's useful for automating processes with scripts,
and it's often the interface that's used if you want to do something quite technical with your computer.
Another type is the menu-drive interface.
This is the sort you're going to find at cashpoints and on chip-and-pin devices
So here, in this example, we see a chip-and-pin device asking the user whether they want to give a gratuity, a tip,
and the user's going to choose yes or no depending on the buttons they press.
So, we have successive menus presented to the user with a single option chosen at each stage,
and you often interact with them via buttons on a keypad.
A user interface that's gaining popularity today is the natural language interface,
the idea that you can actually speak in your natural language into a computer system so it responds to questions,
for example, said in spoken English.
The historical problem with these interfaces is they're often not very reliable,
but the technology is certainly gaining in pace and accuracy.
Siri, Cortana, Hey Google and Alexa are all examples of this,
and it is pretty cool to be able to say to a device, "Hey Siri, what's the weather today?"
or, "Alexa, how many emails haven't I read?"
(uplifting piano jingle)