Post date: 01-Nov-2014 10:20:14


  • This is a set of programs, which is developed & installed in a computer system for the purpose of developing other programs, and to enhance the functional capabilities of the computer system.
  • System programs control the operation of the various hardware parts & make them available to the user. They also enable users make efficient use of the computing facilities in order to solve their problems.
  • System programs manage the computer resources such as Printers, Memory, disks, etc, automate its operations & make easier the writing, testing and debugging of users’ programs.
  • They also control the various application programs that we use to achieve a particular kind of work.


  • System software are developed & installed by the manufacturer of the computer hardware. This is because to write them, a programmer needs in-depth knowledge of the hardware details of the specific computer.
  • Some of the system software are supposed to put initial ‘life’ into the computer hardware and are therefore, held permanently in the ROM.
  • Program routines that are permanently maintained in the computer’s memory are called Resident software/ routines.
  • System programs dictate how the programs relate to the hardware, and are therefore said to be Hardware-oriented.

System programs consist of Operating Systems, Language translators (Assemblers, Compilers), System utilities, and Device drivers.

System software is further sub-classified as:

(a). Operating system.

(b). System utilities.


(a). FIRMWARE (or Microprogram).

  • It refers to a series of special program instructions.
  • The Microprogram is held in the Control Unit (CU), and is used to interpret the external Instruction set of a computer.
  • The Instruction set is the list of instructions available to the programmer that can be used to give direct orders to the computer.
  • Firmware is fixed into the ROM, and cannot be changed.
  • Firmware is usually a combination of hardware and software. It deals with very low-level machine operations, such as moving data, making comparison, etc, and thus acts as an essential substitute for additional hardware.


  • An Operating System is a set of programs designed to ensure the smooth running of the computer system.
  • They are developed to manage all parts of the basic computer hardware & provide a more hospitable interface to users and their programs.
  • It controls the way the way the software uses the hardware. This control ensures that the computer system operates in a systematic, reliable & efficient manner as intended by the user.
  • OS are supplied by the computer manufacturer. They are designed to reduce the amount of time that the computer is idle, and also the amount of programming required to use a computer.

(c). UTILITY SOFTWARE (Service programs).

  • Modern OS does a lot more than manage the hardware efficiently. It normally provides the user with facilities that make the job of developing programs or doing something useful on the computer much easier.
  • A Utility program is a program, which performs a generally useful task.
  • Utility programs are used by end-users to perform many of the routine functions & operations such as, sorting, merging, program debugging, manage computer files, diagnose and repair computer problems that occur, etc. They are normally supplied the manufacturers to enable the computer to run more smoothly & efficiently.
  • Most OS have many of the Utility programs needed to assist with the upkeep of the computer. For example, DOS 6.x includes utilities for managing memory, protecting a system of viruses, backing up files, restoring accidentally deleted files, etc.
  • Some of the common Utility programs are those concerned with: -


  • They help to search for a file from one or more specified records. For example, in a Sales record, the Search facility assists in finding the salesperson with the highest sales.
  • Moving data from one medium to another.
  • For example, from tape to disk & vice versa, or from a floppy disk to hard disk.
  • Spell-checking of words.
  • After a document is typed, the words in the document are checked against those in a ‘custom dictionary’ in secondary storage. If any word used is not found in the dictionary, a warning is given indicating a possible spelling error.

Formatting programs.

  • Before a floppy disk can be used, it must be ‘initialized’ or formatted. This means that, the system must put certain information on the disk, which helps with the storing and retrieving user’s programs & data at a later time.
  • Therefore, a computer system that uses disks would have a utility program for initializing or formatting these disks.
  • Debugging (removing program errors).
  • The programming process usually includes debugging (removing errors from) a program. Statements of the program are studied to determine the cause of an error. Again, useful information can be obtained by studying the contents of memory at the time the program failed.

Examples of the common Service programs.

(i). Text Editors.

(ii). Language Translators.

(iii). Diagnostic Tools/ Programs.

(iv). Sort utility.

(v). Merge utility.

(vi). Copy utility.

(vii). Core/ Dump utility.

(viii). Linker.

(ix). Loader.

(x). Library Program.

(xi). Database management system (DBMS) – a utility program that manages data contents.

Text Editor.

  • This is a utility program that enables/ allows users to create files in which they can store any textual information they desire using the computer.
  • Once the files are created, the Text editor provides facilities which allow the user modify (make changes to) the files; such as adding, deleting, or changing information in the file.
  • Data can be copied from one file to another. When a file is no longer needed, it can be deleted from the system.
  • The operations of the Text editor are controlled by an interactive OS that provides a ‘dialogue’ between the user and the Operating system.
  • The Text editors are used to create, e.g. program statements through the Keyboard connected to the computer. Editing can then be carried out using the Edit keys on the Keyboard or by using a sequence of commands.

There are 3 major classes of Text editors:

(i). Character text editors – deals with 1 character at a time.

(ii). Line text editors – deals with a whole line at a time.

(iii). Page text editors - deals with a whole screen full of text at a time.

Note. The Text Editor is probably the most often used utility program of an OS.

Sort utility.

  • The Sort utility is used to arrange the records within a file according to some predetermined sequence. The arrangement can either be in Ascending or Descending order of the alphabets or numerals.
  • For example, a user may wish to sort data into some desired sequence, such as; sort a student file into ascending order by name or into descending order by average grade or sort a mailing list by postal code, etc.

Merge utility.

  • Merging is the process by which the records in two or more sorted files are brought together into one larger file in such a way that, the resulting file is also sorted.
  • The Merge utility is used to influence the combining of the contents of 2 or more input files to produce one output file.

Copy utility.

  • It is usually advisable to maintain duplicate copies of the operational files so that in case something goes wrong with the original files, then their contents can be recreated from the duplicate/ backup copy or copies.
  • The duplication process, i.e. copying the contents of one file to another is done through the influence of the Copy utility. The copying can be from one media to a different media or from one media to another media of the same make, e.g. from diskette to hard disk or from a diskette to another diskette.

Dump utility.

The term Dumping is used to describe the copying of the contents of the main memory. The Dump utility is therefore, used to transfer (copy) the contents of the computer’s internal memory into a storage media, e.g. the disk or through the Printer (to get a Hard copy output). The result of dumping is that the main memory ‘image’ is reflected by the stored or the printed contents.

Language Translator.

  • Programs written in high-level languages have to be translated into binary code (Machine language), before the computer can run these programs.
  • A Translator is a utility program written & supplied by the computer manufacturers, used to convert the Source Codes (the program statements written in any of the computer programming languages) to Object Codes (their computer language equivalents).
  • Each language needs its own translator. Most OS provide users with Compilers or Interpreters for the common high-level languages. In addition, an Assembler is usually available for those wishing to write programs in the Assembly language of the particular machine.

Note. These translators are not part of the OS, but they are designed to be used under the operating system & are accessible to it.


  • Computer programs are usually developed in Modules or Subroutines (i.e. program segments meant to carry out the specific relevant tasks).
  • During the program translation into their machine code, these modules are translated separately into their object code equivalents.
  • The Linker is a utility software that accepts the separately translated program modules as its input and logically combines them into one logical module, known as the Load Module that has got all the required bits & pieces for the translated program to be obeyed by the computer hardware.


  • The Loader is a utility program that transfers the load module (i.e. the linker output) into the computer memory, ready for it to be executed by the computer hardware.
  • The transfer process is from the backing store, e.g. magnetic disk into the computer’s main memory. This is because some systems generate object codes for the program, but instead of being obeyed straight away, they store them into the media.

Diagnostic Tools (Programs).

  • Diagnostic tools/programs usually come with the translators and are used to detect & correct system faults –both hardware and software.
  • They provide facilities which help users to debug (remove errors from) their programs more easily.
  • E.g., Dr.Watson is a diagnostic tool from Microsoft that takes a snapshot/ photograph of your system whenever a system fault occurs. It intercepts software faults, identifies the software that faulted, and offers a detailed description of the cause & how to repair the fault.
  • Other diagnostic tools for detecting hardware faults are, Norton Utilities, PC Tools, QAPlus, etc.


  • A computer usually ‘works’ by executing a series of instructions called the Program. A Computer Program is simply a sequence of numeric codes (‘0’s & ‘1’s). Each of these codes can be converted directly by the hardware into simple instructions.
  • The set of instructions that the computer can recognize is referred to as the Instruction Set.
  • A Computer program can be written in a variety of programming languages.
  • A Programming language is a language used in writing a computer program. The languages must be understood by the computer for it to execute.

The languages are broadly classified into 5 categories: -

(i). Machine (computer) language.

(ii). Low-level programming language (also referred to as Assembly language).

(iii). High-level programming languages.

(iv). 4th Generation languages (4GL’s).

(v). 5th Generation languages (5 GL’s).

1. Machine language (1ST Generation Computer language).

  • This is the language that is readily understood by the computer.
  • Machine language uses machine codes (binary digits) that consist of 0’s & 1’s.

2. Low-level languages/ Assembly language (2ND Generation languages).

  • Assembly language is very close to the vocabulary of the machine language.
  • It uses many English-like acronyms (Mnemonic codes or labels). Words like ADD, SUM could be used in programs, and a program called an Assembler translates these words into Machine language.
  • It was developed (in early 1950’s) to speed up programming.
  • The Assembly language instructions are Symbolic representations of the machine code (computer language) instructions.
  • Comments can be incorporated into the program statements to make them easier to be understood by the human programmers.

3. High-level languages (3RD Generation languages)

  • These are languages developed to solve the problems encountered in low-level programming languages.
  • The grammar of High-level languages is very close to the human being’s natural languages vocabulary, hence easy for the human beings to understand and use.
  • They allow a problem solution to be specified in a human & problem- oriented manner.
  • The programs are able to run in any family of computers provided the relevant translator is installed.
  • Programs written in high-level languages are shorter than their low-level equivalents, since one statement translates into several machine code instructions.


* COBOL (COmmon Business Oriented Language).

* FORTRAN (FORmula TRANslation).

* BASIC (Beginners All-purpose Symbolic Instruction Code).


* C.

* C++ (Object C).

* LISP (LISt Processing).



* RPG (Report Program Generator).

* SNOBOL (String Oriented Symbolic Language).

//Register as a member to attempt questions. click here to learn more on membership

system software