Chapter 4
Computer Software
A computer program is a set of instructions that tell a computer what to do. Think of it as a recipe
for the computer to follow. These instructions are written in a programming language, which is a
specialized, human-readable language designed for this purpose.
Software = set of instructions given to the computer to perform a task.
Software
A computer system consists of hardware and software. The computer hardware cannot perform
any task on its own. It needs to be instructed about the tasks to be performed. Software is a set
of programs that instructs the computer about the tasks to be performed. Software tells the
computer how the tasks are to be performed; hardware carries out these tasks.
Example:
A user can use the same computer hardware for writing a report or for running a payroll program.
The components like monitor, keyboard, processor, and mouse, constitute the hardware.
Software Hierarchy
This diagram shows the relationship and interaction between the different parts of a computer system —
starting from the innermost core (hardware) and moving outward to the user.
How to understand this diagram:
Circle Layer Meaning
Hardware (inner The physical parts of the computer (CPU, keyboard, mouse, printer, etc.) — cannot work
core) on its own.
Controls and manages the hardware so it can work properly (e.g., Operating System,
System Software
Drivers).
Application Software Programs used by the user to do specific tasks (e.g., MS Word, Browser, Photoshop).
Users (outermost) Humans who use the computer and its software to get work done.
How they depend on each other:
• User uses → Application Software
• Application Software runs with the help of → System Software
• System Software controls → Hardware
So, each outer layer cannot work without the layer inside it.
example:
You (User) want to type a letter → you open MS Word (Application Software) → MS Word runs using
Windows (System Software) → Windows controls keyboard & monitor (Hardware).
Types of Software
System Software
System software provides basic functionality to the computer. System software is required for the
working of computer itself. The user of computer does not need to be aware about the functioning
of system software, while using the computer. For example, when you buy a computer, the system
software would also include different device drivers. When you request for using any of the
devices, the corresponding device driver software interacts with the hardware device to perform
the specified request. If the appropriate device driver for any device, say a particular model of a
printer, is installed on the computer, the user does not need to know about the device driver, while
printing on this printer. • Works in the background..
• Needed for the computer to even start and run.
• Users don’t work with these directly
Examples:
• Operating System (OS): Windows, Linux — manages CPU, memory, files.
• Device Driver: Printer driver, sound driver — helps hardware work.
• Utility Programs: Antivirus, file compression.
• Translator Software: Convert programming code into machine code.
The purposes of system software are:
• To provide basic functionality to computer
• To control computer hardware
• To act as an interface between user, application software and computer hardware
On the basis of their functionality, system software may be broadly divided into two categories-
• System software for the management and functionality of computer relates to the
functioning of different components of the computer, like, processor, input and output
devices etc.
• System software for the development of application software provides services required
for the development and execution of application software. System software provides the
software tools required for the development of application software.
Operating System
It provides an environment in which users and application software can do work. It manages
different resources of the computer like the CPU time, memory space, file storage, I/O devices
etc. During the use of computer by other programs or users, operating system manages various
resources and allocates them whenever required, efficiently.
Device Driver
A device driver acts as a translator between the hardware and the software that uses the devices.
In other words, it intermediates between the device and the software, in order to use the device.
Some devices that are commonly connected to the computer are—keyboard, mouse, hard disk,
printer, speakers, microphone, joystick, webcam, scanner, digital camera, and monitor. For
proper working of a device, its corresponding device driver must be installed on the computer.
For example, when we give a command to read data from the hard disk, the command is sent to
the hard disk driver and is translated to a form that the hard disk can understand. The device
driver software is typically supplied by the respective device manufacturers.
• A translator software between the hardware device and the operating system/application.
• Allows the OS to communicate with hardware in a language it understands.
• Every hardware (printer, mouse, webcam, sound card, etc.) needs its own driver.
Example:
When you click “Print” in MS Word:
MS Word → talks to Printer Driver → Printer hardware.
Without the correct driver, the printer won’t understand the print command.
System Utilities
System utility software is required for the maintenance of computer. System utilities are used for
supporting and enhancing the programs and the data in computer.
• Anti-virus utility to scan computer for viruses
• Data Compression utility to compress the files.
• Cryptographic utility to encrypt and decrypt files.
Programming Language
A Programming Language consists of a set of vocabulary and grammatical rules, to express the
computations and tasks that the computer has to perform. Programming Language usually refers
to high-level languages like COBOL, BASIC, FORTRAN, C, C++, Java etc. Programming
languages fall into three categories.
Translator Software
Translator software is used to convert a program written in high-level language and assembly
language to a form that the computer can understand. Translator software converts a program
written in assembly language, and high-level language to a machine-level language program. The
translated program is called the object code.
There are three different kind of translator software:
• Assembler
• Compiler
• Interpreter
❖ Assembler converts a program written in assembly language to machine language.
Compiler and interpreter convert a program written in high-level language to machine
language.
❖ Compiler is the software that translates the program written in a high-level language to
machine language.
❖ Interpreter reads the source code line-by-line, converts it into machine understandable
form, executes the line, and then proceeds to the next line. Some languages that use an
interpreter are BASIC and Python.
Linker
Linker is a program that links several object modules and libraries to a single executable program.
A source code of a program is often very large consisting of several hundred or more lines.
Linker – “Joiner”
• When a program is written in a high-level language (like C, C++, Java), it is first
converted into small parts called object files (modules).
• A linker is a software tool that joins these pieces together, along with any library files,
to make one complete executable program (.exe).
Think of it like:
You wrote a book in different chapters and saved them separately → The linker acts like the
bookbinder who puts all chapters together into one single book.
Loader
The loader software is used to load and re-locate the executable program in the main memory.
Software has to be loaded into the main memory during execution. Loader assigns storage space
to the program in the main memory for execution.
Loader – “Loader into Memory”
• After the linker creates the final executable, the job of the loader is to bring that
executable into main memory (RAM).
• Only when the program is loaded into RAM, the CPU can run/execute it.
• The loader also allocates space in memory for the program to run.
Think of it like:
You have a book (program) on your shelf (disk) → When you want to read it, you place it on
your study table (main memory) → The loader is the person who takes the book from the
shelf and places it on the table, so you can read it (execute it).
Application Software
• Made for specific tasks by the user.
• Runs on top of system software.
• Easy to see and use.
Application software refers to software that is written to perform a particular function of general
utility. While the software is of course run on a computer, the function it performs is not particularly
computer related. For example, a word processor is a typical example of application software. It
helps users to create text documents. App is an abbreviated form of the word application. An
application is a software program that's designed to perform a specific function directly for the
user or, in some cases, for another software program.
Examples:
• MS Word – writing.
• Excel – calculations.
• PowerPoint – presentations.
• Browser – internet.
• Games, media players, accounting software, etc.
Some examples of application software packages:
System Software vs Application Software
Point of Difference System Software Application Software
Manages computer hardware & system
Purpose Helps user perform particular tasks
operations
User Interaction Works mostly in the background Directly used by the user
Installation Time Installed when OS is installed Installed as per user’s needs
Hardware Less dependent – works after system
Highly hardware dependent
Dependency software
Speed of Operation Fast (close to the machine level) Comparatively slower
OS, Device Drivers, Utility Programs, MS Word, VLC Player, Browser,
Examples
Compiler, Loader Games
Number per
Only one major system software (OS) Can install many application software
Computer
Control Controls entire system Cannot run without system software
Based on the discussion, try to identify and list some other kinds of differences.