Computer Software
Operating Systems, Languages & Applications
Types of Software
System software vs Application software
System Software
Manages and controls computer hardware, provides a platform for application software to run. Users rarely interact with it directly.
Operating System (OS) — core manager
Language Translators — compiler, assembler
Device Drivers — hardware interfaces
Utility Software — disk cleanup, antivirus
Firmware — BIOS/UEFI (embedded in hardware)
Application Software
Designed for end users to perform specific tasks. Runs on top of system software.
General Purpose — MS Word, Excel, browser
Special Purpose — payroll, billing, inventory
Custom Software — tailored for one organization
Open Source Apps — LibreOffice, GIMP, Firefox (not Linux — that is an OS)
Proprietary — Adobe, Microsoft Office (paid license)
Operating Systems
The master program that manages everything
An Operating System (OS) is system software that acts as an intermediary between hardware and application software. Without an OS, a user would need to program the hardware directly in machine code for every task.
6 Core Functions of an OS
Process Management
Creates, schedules, and terminates processes. Allocates CPU time using scheduling algorithms (FCFS, Round Robin, Priority).
Memory Management
Allocates RAM to processes, manages virtual memory (using disk as extended RAM), prevents processes from interfering with each other.
File Management
Organizes files in directories, controls read/write permissions, manages file creation, deletion, and storage allocation.
Device Management
Manages I/O devices through device drivers. Queues I/O requests, handles interrupts, provides uniform interface regardless of device type.
Security & Access Control
User authentication (login), file permissions, process isolation. Prevents unauthorized access to data and system resources.
User Interface
Provides CLI (command line) or GUI (graphical) interface for users to interact with the system. Examples: Windows shell, UNIX terminal.
Types of Operating Systems
| Type | Description | Examples |
|---|---|---|
| Batch OS | Jobs submitted together without user interaction; processed in batches. Oldest type. | Payroll systems, early mainframes |
| Multi-programming OS | Multiple programs in memory simultaneously; CPU switches between them. | UNIX, Linux |
| Time-sharing OS | Multiple users share CPU simultaneously; each gets a time slice. | UNIX with multiple terminals |
| Real-time OS (RTOS) | Responds to events within guaranteed time limit. Used in critical systems. | VxWorks, FreeRTOS, medical devices |
| Network OS | Manages network resources, shared files, printers over a network. | Windows Server, Novell NetWare |
| Distributed OS | Manages a group of computers as a single system. | Google Android cluster, Hadoop |
| Mobile OS | Optimized for touchscreen devices with limited battery and memory. | Android, iOS |
Programming Languages (1GL–5GL)
The evolution from binary to natural language
| Generation | Name | Characteristics | Example |
|---|---|---|---|
| 1GL | Machine Language | Pure binary (0s and 1s). CPU-specific. No translation needed. Extremely difficult for humans. | 10110000 01100001 |
| 2GL | Assembly Language | Mnemonics replace binary codes (ADD, MOV, SUB). Converted by assembler. Architecture-specific. | MOV AX, 01H |
| 3GL | High-level Language | English-like syntax. Platform-independent. Converted by compiler or interpreter. | C, Java, Python, BASIC |
| 4GL | Very High-level / Query | Focused on WHAT to do, not HOW. Non-procedural. Results in less code. | SQL, MATLAB, R |
| 5GL | AI/Constraint Language | Define problem + constraints; system finds solution. Based on logic. | Prolog, LISP, Mercury |
High-level = Portable
Write C code once, compile on Windows, Linux, and Mac. Machine language is CPU-specific and not portable.
Python is 3GL
Despite being "modern", Python is a 3rd generation language. It's just a very well-designed 3GL with rich libraries.
SQL is 4GL
SELECT * FROM students WHERE grade = "A" — you describe WHAT data you want, not HOW the database retrieves it.
Language Translators
Converting human-written code to machine code
Compiler
Translates the ENTIRE high-level source program into machine code (an executable file) at once. Errors reported after full scan. Resulting program runs fast.
✓ Fast execution, distributable binary
✗ Slow compilation; all errors before you can run
eg: GCC (C/C++), javac (Java), rustc
Interpreter
Translates and executes the source program LINE BY LINE. Stops at first error. No separate executable file created.
✓ Easy debugging; immediate feedback; platform-independent
✗ Slower execution (re-translates each run)
eg: Python interpreter, JavaScript V8, Ruby
Assembler
Converts assembly language (mnemonics) into machine code. One-to-one mapping: each assembly instruction → one machine instruction.
✓ Direct hardware control; efficient code
✗ Architecture-specific; not portable
eg: NASM, MASM, GAS (GNU Assembler)
Key distinction: A compiler processes the whole program and creates an executable file you can run repeatedly without the compiler. An interpreter never creates an executable — each run requires the interpreter present. That is why Python scripts need Python installed to run, but a compiled C program is standalone.
Application & Utility Software
Software that serves end users and maintains systems
Word Processing
MS Word, LibreOffice Writer
Create, edit, format, and print text documents. Features: spell check, templates, mail merge.
Spreadsheet
MS Excel, Google Sheets
Tabular data with formulas, charts, pivot tables. Used for financial modelling, analysis.
Presentation
PowerPoint, Impress
Slide-based visual presentations with animations, graphics, transitions.
Database Management
MS Access, MySQL, Oracle
Store, organize, query large datasets. Structured Query Language (SQL).
Web Browser
Chrome, Firefox, Edge
Fetches and renders web pages. Handles HTML, CSS, JavaScript.
Image/Video Editing
Photoshop, Premiere
Create, edit, enhance digital photos and videos. Professional creative tools.
Utility Software
Antivirus
Detects and removes malware. eg: Avast, Norton, Windows Defender
Disk Defragmenter
Reorganizes fragmented disk data for faster HDD access. (Not needed for SSDs)
Backup Software
Creates copies of data to protect against loss. eg: Time Machine, Backup & Restore
Disk Cleanup
Removes temporary files, cache, and unused data to free space.
Compression Tool
Reduces file sizes. eg: WinZIP, 7-Zip, WinRAR (.zip, .rar, .7z formats)
Screen Capture
Captures screenshots or screen recordings. eg: Snipping Tool, OBS Studio
Analytical Questions
Exam-style questions with model answers
Unit 3 Summary
Core topics and important exam questions
Core Topics Covered
Definition of software and program
System software vs Application software (with correct examples)
Operating System — definition, functions, types
Programming languages — 1GL to 5GL
Language translators: Compiler, Interpreter, Assembler
Utility software examples (antivirus, defragmenter, backup)
Open source vs proprietary software
Application software categories (word processor, spreadsheet, etc.)
Important Exam Questions
Differentiate between system software and application software with examples. (5 marks)
What is an operating system? Explain its functions. (5 marks)
Differentiate between compiler and interpreter with examples. (5 marks)
Explain the generations of programming languages (1GL–5GL). (10 marks)
What is utility software? Give four examples with brief descriptions. (5 marks)
Describe the types of operating systems with examples. (10 marks)
Syllabus Coverage Checklist
Introduction to software and program
Types of software: system and application
Operating system — functions and types
Utility software
Virus and antivirus software
Programming languages (1GL–5GL)
Types of language translator
Linux correctly classified as system software (OS)
How to Remember This Unit
Mnemonics for software concepts
Translator comparison: "CIA"
Compiler=whole program at once · Interpreter=line by line · Assembler=assembly language only
OS functions: "PMFDS"
P=Process · M=Memory · F=File · D=Device · S=Security management
Language generations: "M-A-H-Q-AI"
1=Machine · 2=Assembly · 3=High-level · 4=Query/4GL · 5=AI/Constraint
System vs Application
System software is the FOUNDATION (OS, drivers) — runs the machine. Application software USES the foundation to serve users.
Unit 3 Quiz
1. Which of the following is an example of system software?
2. A compiler differs from an interpreter in that a compiler:
3. Assembly language uses _____ instead of binary codes.
4. Which OS function manages when and for how long each process uses the CPU?
5. A 5GL (5th Generation Language) is characterized by: