What Does It Do?
The operating system is the most fundamental piece of system software used on a computer. Without it we are unable to use the hardware attached to the computer system.
The operating system has the following roles,
- Hide the complexities of the hardware from the user (this is called the provision of the virtual machine)
- Manage the hardware resources allocating processor time, memory and I/O devices to the processes that use them
- Manage data storage
The Virtual Machine
Interaction with computer systems is always mediated by the operating system. These days that means using a graphical user interface with icons and windows representing the operations you want to carry out. Software provides us with the means to interact with the hardware without needing specialist knowledge of the inner workings of that hardware.
Application Programming Interface
APIs are layers of software that provide developers with access to operating system functions. You use an API when you write a program with file handling or 3D graphics.
Command-Line Interface (CLI)
The user types in commands and they are executed (or errors reported). You find this with MS-Dos. You also have access to console-type interfaces in most implementations of Linux - you can't really get by without using this from time to time even in a very Windows-like distribution like Ubuntu. This kind of interface relies on users being able to remember the series of commands that they will need to use. Batch files in MS-Dos are text files containing statements which execute one after another. It is common to have some of these files running on startup in such a setup. Up until Windows 95, Windows users were reliant on using Dos to run games and some other applications. These sometimes required different startup procedures. We wrote a program to present us with a menu of commonly used options, executing the correct startup procedure for each option.
With a CLI, statements and commands are processed by the Command Line Interpreter.
Graphical User Interface
A GUI is a visual method of representing the programs, files and devices that make up the computer system. The key elements of a GUI are Windows, Icons, Menus and Pointers.
The advantage of a GUI is that it is more accessible to the ordinary user, the most common actions involve clicking on icons or menu items to launch programs. In some cases, it is easier and quicker to perform operations than with the CLI. For example, copying 10 files from different locations into a new folder would require a series of statements in a CLI, both to find the files to copy and then to copy them. With a GUI, you might simply drag-and-drop the file from one window to another. Errors, often hard for the inexpert user to understand, are less likely to occur with a GUI since only valid options tend to be available to the user.
The downside of the GUI is the additional processing power, hard drive space and memory required. These days, with the advent of the Vista operating system, better graphics cards are required to achieve the visual effects within the interface. As a result of the additional work done by the computer to represent operations graphically, the GUI will execute tasks more slowly than the CLI. You may also wish to reflect upon the pet hates that all of us develop with continued use of a particular GUI.
Classifying Operating Systems
An interactive operating system allows the user to interact with the system whilst it undergoes execution. The user can supply instructions and data at runtime and receive a timely response.
- Non-sequential applications (no start - process - end like a batch job).
- Dealing with events which happen in parallel or at unpredictable moments in time.
- Processing must be completed within a fixed period of time.
- May be safety-critical and require fail-safes.
Some real-time systems have different response times. For fly-by-wire systems, real-time responses tend to be in milliseconds, for other systems, the response is a few seconds. Such systems can sometimes be referred to as pseudo-real-time systems.
Network Operating System
Software to manage communication between computers connected on a network.
Device Operating Systems
It's worth reminding yourself that our definition of computer has to be broad. Devices like smartphones and MP3 players have operating systems too. They are fairly powerful when compared with desktop computers of only 15 years ago.
Embedded systems are computer systems that are built into many of the devices that we use today. Cars, household appliances, computer peripherals have dedicated computer systems. Some have limited use-interfaces, some have none at all.
Desktop Operating System
A desktop operating system is used on modern PCs. Remember to think beyond the market leader.
Consider the requirements of modern desktop operating systems. They tend to be very broad - we all use our PCs for quite a range of tasks. These days, operating systems tend to require frequent small updates which are 'patched' over the existing operating system to provide additional features or fix problems.
Server Operating System
Such a system is optimised to provide specialist network services to networked clients and devices.