Systems Software

An operating system (OS) is a collection of programs that control all the activities in the computer. When the computer is turned on, a hardware setup makes it 'look for' an OS. Without an OS the computer can neither interact with the user nor do anything useful. Once it starts executing, the OS provides a command language interface so that users (or other programs) can give it commands about the operations of the computer. Operations like copying files from one place to another, checking if the person who wants to use the computer knows the required password, passing control to another program that the user wants to be executed, and getting control back when that program is finished or interrupted for some reason are among the responsibilities of the OS.

Various operating systems for different brands of computers (and CPU's) exist. The system used by a typical IBM-compatible PC is called MS-DOS. Computers of the Apple Macintosh line use an OS named Macintosh System Software.

The central component of the OS is a program called the supervisor. It is the supervisor's duty to order and execute other programs. The command language translator translates user commands to machine-language instructions. In MS-DOS and many other systems, the user has to learn the command language of that particular OS in order to be able to use it. For instance, you have to know that the command

dir

causes a listing of the files and subdirectories in your current directory when using MS-DOS. Similarly, the command

del filename

causes the file whose name has been given to be removed from your current directory.

On the other hand, in OS's which provide graphical interfaces, like in the Apple computers, one does not have to learn this new language. The contents of a directory are displayed on the screen as little icons in a folder representing the directory. Various commands are implemented so that they correspond to easily memorized 'actions' on the icons on the screen. For instance, to remove an item, you simply move it (making use of the mouse) on the screen onto a trashcan icon. After the popularity of such interfaces became evident, many old-fashioned language based systems (like MS-DOS) were augmented with newer programs called operating environments which, when run on such an OS, handle the screen to give the impression of a graphical interface. Microsoft Windows is such a program.

On bigger computers which are connected to many terminals and hence have to serve many users at the same time with a single CPU, the OS has to be able to handle multiprogramming, i.e. it has to run many programs concurrently. This is achieved by running the first program for some time, interrupting it when it needs to make use of an I/O device, running the second program until it needs to access a device,... and so on. Multiprogramming is feasible because disks and I/O devices operate very slowly compared to the CPU, so when a program starts to use such a device (for printing a message on the screen, for example), the CPU can immediately be taken over by another program without any negative effect on the execution time of the first program. When a single-user computer allows multiprogramming, (with two or more programs belonging to the same user being executed concurrently) this is called multitasking. In the time-sharing technique, each program is given a fixed slice of time (say, 0.01 seconds) in the CPU and interrupted and replaced by the next program in the queue at the end of its slice.Multiprocessing is the simultaneous execution of two or more program sequences by multiple computers operating under a common control. The most sophisticated and fastest type of multiprocessing is called parallel processing which involves full-fledged general purpose CPUs. Here, the CPUs are tightly integrated so that they can work on a job by sharing memory.

UNIX is a multiuser, multitasking operating system, originally developed for minicomputers. Since most of it is written in a high-level programming language called C, as opposed to assembly language, it is highly portable (easily transferable between different brands of computer,) and thus has gained great popularity among relatively sophisticated users and programmers.

Apart from the OS, compilers (which translate high-level language programs entirely into machine language before they are executed,) interpreters (which translate and execute high-level language programs one step at a time,) disk utility programs (which help users to do things like 'un-erasing' mistakenly erased files) and 'vaccine' programs against computer viruses are useful pieces of systems software which help the computer to have a better overall performance. (Viruses are little programs, written by bad people, which make copies of themselves on all the disks that they can access, and also do certain things, like printing a funny message, darkening the screen, erasing all other files, etc. from time to time. They usually 'embed' themselves into other, seemingly harmless programs, so that when the user executes that program, the virus also gets executed.)