IGCSE 0478 – Software: How Hardware, Firmware and an Operating System Enable Applications
Learning objective
Explain why hardware, firmware and an operating system (OS) must all be present before any application software can run, and describe the role of interrupts in this hierarchy.
Key terms (linked to assessment objectives)
Term
Definition (AO1)
Relevance to exam questions (AO2)
Hardware
Physical components that execute instructions and store data – CPU, RAM, motherboard, storage, input & output devices.
Identify or label parts of a computer system; explain why a program cannot run without them.
Firmware
Low‑level software permanently stored in non‑volatile memory (ROM/flash). It runs immediately after power‑on, performs the Power‑On Self‑Test (POST), and loads the bootloader which starts the OS.
Describe the purpose of BIOS/UEFI, POST, and the hand‑over to the OS; explain why firmware is needed before any other software can run.
Operating system (OS)
System software that abstracts the hardware, manages resources, provides services (APIs) to applications and offers a user interface.
List and explain OS functions required by the syllabus – file‑system handling, memory (including virtual memory) management, process scheduling, multitasking, security/user accounts, device‑driver management, and interrupt handling.
Application software
Programs that perform specific tasks for the user, e.g. word processors, web browsers, games.
Explain how an application relies on OS services such as file I/O, memory allocation, and device drivers.
Interrupt
A signal that temporarily halts the CPU’s current instruction stream so that a more urgent task can be serviced. Two types exist:
• Hardware interrupt – generated by an external device (keyboard, mouse, network card).
• Software interrupt – generated by a program (system call) to request an OS service.
Distinguish hardware vs. software interrupts, describe the interrupt‑service‑routine (ISR) cycle, and give examples such as a key‑press or a request to open a file.
Layered view of a computer system
Each layer depends on the one below it. The diagram (see placeholder at the end) shows the flow of control from power‑on to an application.
Layer (top → bottom)
Purpose
Typical examples
Application software
Performs user‑oriented tasks using OS services.
Word processor, spreadsheet, web browser, video game.
Operating‑system functions required by the syllabus
File‑system management – create, open, read, write, rename and delete files; organise them in directories.
Memory management
Allocate and free RAM for each process.
Virtual memory (paging or swapping) to extend usable memory.
Process management & multitasking
Create, schedule, pause, resume and terminate processes.
Time‑slicing and priority‑based scheduling.
Security & user‑account management
Authentication (login passwords, PINs).
Permissions and access control (read, write, execute).
Device‑driver management – provide a uniform software interface to keyboards, mice, displays, storage, printers, network cards, etc.
Interrupt handling
Detect hardware and software interrupts.
Save the current CPU state, run the appropriate Interrupt Service Routine (ISR), then restore the saved state.
Interrupts – detailed cycle
Interrupt request (IRQ) is generated by a device or by a software instruction.
The CPU finishes the current instruction, then switches from user mode to kernel (privileged) mode.
The OS saves the current context (registers, program counter) on a stack.
The appropriate Interrupt Service Routine (ISR) is executed:
For a hardware interrupt – e.g., keyboard controller reads the scancode.
For a software interrupt – e.g., a system call to open a file.
After the ISR finishes, the OS restores the saved context and returns to the interrupted task.
Example: Pressing a key generates a hardware interrupt. The OS ISR reads the scancode, translates it to a character, places it in the keyboard buffer, and the active application later reads the character from that buffer.
Boot process – step‑by‑step (including firmware actions)
Power‑on – the power supply activates the motherboard and the CPU starts executing from a fixed address.
Firmware POST – BIOS/UEFI performs a Power‑On Self‑Test, checking CPU, RAM, video, and essential peripherals.
Firmware diagnostics – any errors are reported via beep codes or on‑screen messages.
Boot device selection – the firmware scans the list of bootable devices (HDD, SSD, USB, network) according to its boot order.
Bootloader loading – the firmware reads the first sector (MBR or EFI System Partition) of the selected device and loads a bootloader (e.g., GRUB, Windows Boot Manager) into RAM.
Kernel start‑up – the bootloader hands control to the OS kernel, which initialises core services, sets up memory management, and loads essential device drivers.
OS services become available – system processes are created, file systems are mounted, and a user interface (GUI or command line) is presented.
Application launch – the user (or the OS) starts an application; the OS allocates memory, opens required files, and schedules the program’s processes.
Why each layer is essential
Hardware – the only part that can actually perform calculations, store data and move signals to/from the external world.
Firmware – prepares the hardware, performs diagnostics (POST) and provides a reliable entry point for the OS by loading a bootloader.
Operating system – abstracts hardware details, manages resources, handles interrupts, and supplies the services (file I/O, memory allocation, process scheduling, security, device drivers) that applications need.
Application software – relies on OS services to interact with files, memory, devices and the user; without the OS it could not run on different hardware.
Illustrative scenario: Running a word processor
User double‑clicks the word‑processor icon.
OS creates a new process, allocates RAM, and loads the executable from the SSD using the file‑system service.
Device drivers (managed by the OS) initialise the keyboard, mouse and display so the user can type and see text.
The application calls the OS API open("mydoc.txt"); the OS checks user permissions, locates the file on the file system, and returns a file handle.
When the user presses a key, the keyboard controller raises a hardware interrupt. The OS ISR reads the scancode, translates it to a character, places it in the keyboard buffer, and the word processor reads the character from that buffer.
If the user saves the document, the application issues a write() system call. The OS translates this into a series of disk‑write commands, uses virtual memory if needed, and updates the file system.
All actions ultimately depend on the CPU executing instructions and the RAM holding temporary data – the hardware layer.
OS as a runtime environment for development tools
The OS also provides the environment required by IDEs, compilers and interpreters:
File‑system for storing source files and compiled binaries.
Memory management for loading large development programs.
Process scheduling so multiple tools (editor, compiler, debugger) can run simultaneously.
Device‑driver support for keyboards, displays and external storage used during development.
Suggested diagram (placeholder)
Layered stack diagram – Hardware at the base, then Firmware, then Operating System, and Application Software at the top. Arrows illustrate the boot sequence (power‑on → POST → bootloader → kernel) and the direction of service requests from applications upward to hardware.
Key points to remember
Software cannot function without hardware; hardware is useless without software.
Firmware is permanent low‑level software that prepares the hardware and loads the OS.
The OS provides a common platform for all applications, handling resource allocation, device communication and interrupt processing.
Specific OS functions required by the syllabus: file‑system handling, memory (including virtual memory) management, process creation & multitasking, security/user‑account control, device‑driver management, and interrupt handling.
Understanding the hierarchy helps diagnose problems – a crash may stem from faulty hardware, a firmware error, an OS issue, or a bug in the application.
Your generous donation helps us continue providing free Cambridge IGCSE & A-Level resources,
past papers, syllabus notes, revision questions, and high-quality online tutoring to students across Kenya.