Free Study Material
Earlier in this unit, you saw the two broad software categories in brief. This chapter returns to software in full depth, starting with a more complete breakdown of the types within each category.
Utility Software is easy to mistake for either System or Application Software, because it sits conceptually between them: like system software, it exists to keep the computer healthy rather than to perform a user-facing task directly; but like application software, a user consciously chooses to run it (scanning for viruses, compressing a file) rather than it running silently and invisibly the way an OS does.
Note: A Device Driver is System Software, not a Language Processor — it lets the OS talk to hardware; it does not translate code at all.
Software splits into System Software (Operating System, Language Processors, Device Drivers — keeps the computer itself running), Application Software (General Purpose or Specific/Customized — performs a user-facing task), and Utility Software (maintenance tools like antivirus and disk defragmenters, sitting conceptually between the other two).
Hardware alone is just a collection of physical parts (circuits, metal, plastic). Software is the set of instructions that tells that hardware exactly what to do. Without software, a computer is like a car without a driver.
In the IP syllabus, we classify software based on its intended purpose. Is it there to manage the machine, or to help the user perform a task?
System Software provides the platform where other software can run. It is divided into several types:
The master program. It manages memory, processes, and all hardware.
Ex: Windows, Android, macOS.
Maintenance tools that help optimize or secure the system.
Ex: Antivirus, Disk Defragmenter, Compression tools.
The last topic named the Operating System and Language Processors as two key kinds of system software. This topic covers what each one actually does.
The OS manages a computer's core resources:
Human-written code (source code) needs to be translated into machine-executable form before it can run. Three kinds of translator:
Compiler vs. Interpreter is a genuine trade-off, not just two names for the same thing: a compiler catches every error across the whole program before anything runs at all, and the resulting translated program then runs fast on its own; an interpreter starts running immediately, line by line, and stops the instant it hits an error — catching mistakes later, but letting you test code sooner. Python, which you may already know, is interpreter-based — exactly why a Python program can run partway before hitting an error, rather than refusing to run at all.
Note: An Assembler is a specific, narrower translator — it only ever translates assembly language, never a high-level language like Python or C++ directly.
The Operating System manages the processor, memory, devices, and files — the resources every running program depends on. Language Processors translate source code into machine-executable form: a Compiler translates the whole program upfront, an Interpreter translates and runs line by line, and an Assembler translates assembly language specifically.
The Operating System is the most important program that runs on a computer. It acts as an interface between the user and the computer hardware. Without an OS, you would have to write code just to move the mouse!
The OS works as a resource manager. Its main responsibilities include:
Humans write programs in High-Level Languages (like Python, Java). However, the CPU only understands Machine Language (0s and 1s). Language processors are the "Translators" that bridge this gap.
This closing topic returns to the General Purpose vs. Specific Purpose split named earlier in this chapter, and covers exactly what separates them.
The real distinguishing question is "who was this built for?" — Generic software is built once, for an unknown, general audience, and profits from being sold to as many buyers as possible; Customized software is commissioned by one specific organization, for that organization's own exact process, and is often not sold onward to anyone else at all. A spreadsheet program is generic because a student, an accountant, and a scientist can all genuinely use the exact same product for their own different purposes.
Note: "Customized" doesn't mean "modified generic software" — it specifically means software built from the ground up for one organization's own requirement, even though everyday language sometimes uses "customize" more loosely.
Generic software is built for a wide, general audience and sold off the shelf (a word processor, a spreadsheet); Specific Purpose (Customized) software is built for one particular organization's exact need, and generally isn't useful outside that one context — the distinguishing question is always who the software was originally built for.
Also known as General Purpose or Off-the-shelf software, these are programs developed for the general public to satisfy common needs. They are ready-to-use and mass-produced.
Also known as Customized or Tailor-made software, these are developed specifically to meet the unique requirements of a particular organization, business, or individual.