Fundamentals of Computer Systems: System software

From Wikibooks, open books for an open world
Jump to: navigation, search

UNIT 2 - ⇑ Fundamentals of Computer Systems ⇑

← Classification of software System software Application software →

We should know by now that system software is software that helps a computer to run. We will now look at the different types of system software out there and why each is needed:

Operating system software[edit]

An operating system (OS) is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system. Without an operating system, a user cannot run an application program on their computer (unless the application program is self booting).

Xfce Graphical User Interface to a Linux operating system

Time-sharing operating systems schedule tasks for efficient use of the system and may also include accounting for cost allocation of processor time, mass storage, printing, and other resources.

For hardware functions such as input/output and main memory management, the operating system acts as a middleman between application programs and the computer hardware, although the application code is usually executed directly by the hardware it will frequently call the OS or be interrupted by it. Operating systems can be found on almost any device that contains a computer, from mobile phones and video game consoles to supercomputers and web servers.

Examples of popular modern operating systems include Android, iOS, Linux, Mac OS X and Microsoft Windows, but don't use these names in the exam!

Extension: Open vs Closed Source operating systems

You might hear the words Open Source when you read about operating systems. Linux is the most well known Open Source OS and Windows is the most well known Closed Source OS. So what does this mean?

Open Source programs are programs where you can see the code (the source), you can edit it, copy it and use as you wish within the confines of an open source license. You can even sell it, but the person would be welcome to acquire the code for free if they wanted. As a result of this Linux is not developed by one person or one company but uses code developed by thousands of people, working for different organisations all over the world. And as a result there are many different versions (known as distributions) of Linux out there including Ubuntu, Slackware and Fedora. Android is built using Linux code.

Closed Source software doesn't allow people to look at the code or adapt it. Companies normally sell closed source products and you'll have to pay for a copy of Windows. Currently about 83% of desktops run the Windows OS.

Utility programs[edit]

Utility software is a type of system software designed to help analyse, configure, optimize and maintain the computer. A single piece of utility software is usually called a utility or tool.

Utility software should not be confused with application software, which allows users to do things like creating text documents, playing games, listening to music or surfing the web. Rather than providing these kinds of user-oriented or output-oriented functionality, utility software usually focuses on how the computer infrastructure (including the computer hardware, operating system, application software and data storage) operates. Due to this focus, utilities are often rather technical and targeted at people with an advanced level of computer knowledge.

KDE System Guard monitoring the CPU usage, processes and memory usage

Examples of utility software include:

Library programs[edit]

Library programs are collections of resources used to develop software. These include pre-written code and subroutines.

Illustration of an application which uses libvorbisfile to play an Ogg Vorbis media file

Library programs contain code and data that provide services to other programs such as interface (look and feel), printing, network code and even the graphic engines of computer games. If you have ever wondered why all Microsoft Office programs have the same look and feel, that is because they are using the same graphical user interface libraries. For computer games a developer might not have the time and budget to write a new graphics engine so they often buy graphical libraries to speed up development, this will allow them to quickly develop a good looking game that runs on the desired hardware. For example Battlefield 3 and Need for Speed both use the same Frostbite engine.

The history of game engine development

Most programming languages have a standard set of libraries that can be used, offering code to handle input/output, graphics and specialist maths functions. You can also create your own custom libraries and when you start to write lots of programs with similar functionality you'll find them very useful. Below is an example of how you might import libraries into VB.NET:

'imports the libraries allowing a program to send emails
Imports System.Net.Mail
 
'imports the libraries allowing a program to draw in 2D
Imports System.Drawing.Drawing2D

Translator software[edit]

The final type of system software that you need to know is translator software. This is software that allows new programs to be written and run on computers, by converting source code into machine code. There are three types that we'll cover in a lot more detail shortly:

  • Assembler - converts assembly code into machine code
  • Interpreter - converts 3rd generation languages such as javascript into machine code one line at a time
  • Compiler - converts 3rd generation languages such as C++ into machine code all at once
Exercise: System software

Give the 4 system software types

Answer :

  • Operating system
  • Utility programs
  • Library programs
  • Translator software

Explain two functions of an operating system:

Answer :

  • Memory management
  • Provides interface between applications and hardware
  • Printing
  • Processor time allocation

Give a benefit of using library programs:

Answer :

  • You can use code made by other people without having to write it yourself
  • You can use the same code again and again without having to re-write it

Give two examples of utility programs:

Answer :

  • Virus scanner
  • Disk defragmenter
  • File manager

What is system software for?

Answer :

System software performs tasks to analyse and help with the smooth running of a computer system

What is utility software for?

Answer :

Utility software is a kind of system software designed to help analyze, configure, optimize and maintain the computer

What is the purpose of translator software, give two examples

Answer :

to convert program source code into machine code that can be executed on the processor

  • Assembler
  • Compiler
  • Interpreter