Skip to main content
Objectives Understanding the meaning of a system software. Understanding the concept of loaders Knowledge of different types loaders.
System Software
System Software The subject introduces the design and implementation of system software System software consists of a variety of programs that support the operation of a computer operating system, compiler, assembler, macro processor, loader or linker, debugger, text editor, database management systems, software engineering tools, ….
Loaders and Linkers
Role of Loader Source Program Translator Object Program Loader Object program ready for execution Memory Translator – Assembler/Compiler
Role of Loader Source Program Assembler Object Program Loader Object program ready for execution Memory
Role of Loader and Linker Source Program Assembler Object Program Linker Executable  Code Loader Object program ready for execution Memory
We know… Source Program – Assembly Language Object Program  - From assembler - Contains translated instructions and data values from the source program Executable Code  -  From Linker Loader  - Loads the executable code to the specified memory locations and code gets executed.
We need… three   processes Loading - which allocates memory location and brings the object program into memory for execution  -  Loader  Linking- which combines two or more separate object programs and supplies the information needed to allow references between them  -  Linker Relocation - which modifies the object program so that it can be loaded at an address different from the location originally specified  -  Linking Loader
Basic Loader Functions A Loader is a system program that performs the loading function It brings object program into memory and starts its execution
Type of Loaders absolute loader  bootstrap loader relocating loader (relative loader)
Absolute Loader Operation is very simple The object code is loaded to specified locations in the memory At the end the loader jumps to the specified address to begin execution of the loaded program
Role of Absolute Loader Object Program Absolute Loader Object program ready for execution Memory 1000 2000
Absolute Loader Advantage - Simple and efficient Disadvantage - the need for programmer to specify the actual address - difficult to use subroutine libraries We have algorithm – next slide
Object Program
Format-1(a) (in PowerPoint) Space for  2 inch x 2 inch  size Picture Space for  2 inch x 2 inch  size Picture
Object Code Representation Each byte of assembled code is given using its hexadecimal representation in character form Easy to read by human beings Each byte of object code is stored as a single byte  Most machine store object programs in a binary form We must be sure that our file and device conventions do not cause some of the program bytes to be interpreted as control characters
A Simple Bootstrap Loader When a computer is first tuned on or restarted, a special type of absolute loader, called bootstrap loader is executed This bootstrap loads the first program to be run by the computer -- usually an operating system
Example (SIC bootstrap loader) The bootstrap itself begins at address 0  It loads the OS starting address 0x80 No header record or control information, the object code is consecutive bytes of memory
Machine-Dependent Loader Features Absolute Loader – Simple and efficient Disadvantage is – programmer has to specify the starting address One program to run – no problem – not for several Difficult to use subroutine libraries efficiently
Relocation Execution of the object program using any part of the available and sufficient memory The object program is loaded into memory wherever there is room for it The actual starting address of the object program is not known until load time
Relocating Loaders Efficient sharing of the machine with larger memory and when several independent programs are to be run together Support the use of subroutine libraries efficiently