SlideShare a Scribd company logo
ABSOLUTE LOADER
Advantage
Simple and efficient
Disadvantage
need for programmer to specify the actual address difficult to
use subroutine libraries
Loading: brings the Object Program into memory for
execution
Relocating: modifies the Object Program so that it can be
loaded at an address different form the location originally
specified.
Linking: combines two or more separate Object Programs
BOOTSRAP LOADER
Bootstrap Loader
◦When a computer is first turned 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
Algorithm for an absolute loader
*Machine Dependent Loader Features
RelocatingLoaders.
Motivation
◦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
Two methods for specifying relocation
◦modification record (For SIC/XE)
◦relocation bit (For SIC)
◦each instruction is associated with one relocation bit
◦these relocation bits in a Text record is gathered into bit
masks
ProgramLinking
Linking is the process of collecting and combining various
pieces of code and data into a single file that can be loaded
(copied) into memory and executed
LinkingLoader
DataStructures
ALGORITHM LINKING LOADER
“Pass 1:
begin
get PROGADDR from operating system
set CSADDR to PROGADDR {for first control section}
while not end of input do
begin
read next input record {Header record for control section)
set CSLTH to control section length
search ESTAB for control section name
if found then
set error flag {duplicate external symbol)
else
enter control section name into ESTAB with value CSADDR
while record type ¥ ‘E’ do
begin
read next input record
if record type = ‘D’ then
for each symbol in the record do
begin
search ESTAB for symbol name
if found then
set error flag (duplicate external symbol)
else
enter symbol into ESTAB with value
(CSADDR + indicated address)
end {for}
end {while ¥ ‘E’}
add CSLTH to CSADDR {starting address for next control
section}
end {while not EOF)
end (Pass 1)
Pass 2:
begin
set CSADDR to PROGADDR
set EXECADDR to PROGADDR
while not end of input do
begin
read next input record {Header record}
set CSLTH to control section length
while record type # ‘E’ do
begin
read next input record
if record type = ‘'T’ then
begin
{if object code is in character form, convert
into internal representation)
move object code from record to location
(CSADDR + specified address)
end (if ‘T’)
else if record type = ‘M’ then
begin
search ESTAB for modifying symbol name
if found then
add or subtract symbol value at location
(CSADDR + specified address)
else
set error flag (undefined external symbol)
end (if ‘M’)
end (while # ‘E’}
if an address is specified {in End record) then
set EXECADDR to (CSADDR + specified address)
add CSLTH to CSADDR
end (while not EOF)
jump to location given by EXECADDR (to start
execution of loaded program)
end (Pass 2}
Machine-Independent Loader Features
Automaticlibrarysearchforhandlingexternal
references
—allowsaprogrammertousestandardsubroutines
whichareautomaticallyretrievedfromalibraryas
theyareneededduringlinking
*Optionsoflinkingandloading
—Specifyingalternativesourcesofinput
—Changingordeletingexternalreferences
—Controllingtheautomaticprocessingofexternal
references
*Specifytheexternalreferencenamearetoremainunresolved.
Linkage Editors
A linking loader performs
◦All linking and relocation operations
◦Automatic library search
◦Loads the linked program directly into memory for
execution
A linkage editor◦Produces a linked version of program
(often called a load module or an
executable image), which is written to a
file or library for later execution
◦A simple relocating loader can be used to load the
linked version of program into memory
Linkage editors can perform many useful functions
1. The linkage editor can be used to replace the
subroutines in the linked version
2. Linkage editors can also be used to build packages of
subroutines or other control sections that are
generally used together
3.Linkage editors often allow the user to specify that
external references are not to be resolved by automatic
library search
Dynamic Linking
Postpone the linking function until execution time
◦A subroutine is loaded and linked to the rest of the program
when it is first called
◦Dynamic linking, dynamic loading, or load on call
Allow several executing programs to share one copy of a
subroutine or library
In object-oriented system, it allows the implementation of
the object and its methods to be determined at the time the
program is run
Dynamic linking provides the ability to load the routines only
when they are needed

More Related Content

Similar to module 4.docx

C++ Functions
C++ FunctionsC++ Functions
C++ Functions
Jari Abbas
 
loaders-and-linkers.pdfhhhhhccftyghgfggy
loaders-and-linkers.pdfhhhhhccftyghgfggyloaders-and-linkers.pdfhhhhhccftyghgfggy
loaders-and-linkers.pdfhhhhhccftyghgfggy
rahulyadav957181
 
SPOS UNIT1 PPTS (1).pptx
SPOS UNIT1 PPTS (1).pptxSPOS UNIT1 PPTS (1).pptx
SPOS UNIT1 PPTS (1).pptx
RavishankarBhaganaga
 
Mp lab manual
Mp lab manualMp lab manual
Mp lab manual
Pradeep Kumar
 
bh-europe-01-clowes
bh-europe-01-clowesbh-europe-01-clowes
bh-europe-01-clowes
guest3e5046
 
Assembly Language for as level computer science
Assembly Language for as level computer scienceAssembly Language for as level computer science
Assembly Language for as level computer science
variedongz
 
Loaders ( system programming )
Loaders ( system programming ) Loaders ( system programming )
Loaders ( system programming )
Adarsh Patel
 
Lec 04 intro assembly
Lec 04 intro assemblyLec 04 intro assembly
Lec 04 intro assembly
Abdul Khan
 
Two pass Assembler
Two pass AssemblerTwo pass Assembler
Two pass Assembler
Satyamevjayte Haxor
 
Os7 2
Os7 2Os7 2
Os7 2
issbp
 
Assembler
AssemblerAssembler
Assembler
Temesgen Molla
 
CoreOS, or How I Learned to Stop Worrying and Love Systemd
CoreOS, or How I Learned to Stop Worrying and Love SystemdCoreOS, or How I Learned to Stop Worrying and Love Systemd
CoreOS, or How I Learned to Stop Worrying and Love Systemd
Richard Lister
 
Loader and linker.pptx
Loader and linker.pptxLoader and linker.pptx
Loader and linker.pptx
DrTThendralCompSci
 
Arduino IDE
Arduino IDE Arduino IDE
Arduino IDE
Mrunal Deshkar
 
Assembly level language
Assembly level languageAssembly level language
Assembly level language
PDFSHARE
 
loader.ppt
loader.pptloader.ppt
Qe Reference
Qe ReferenceQe Reference
Qe Reference
Susan Gold
 
System programmin practical file
System programmin practical fileSystem programmin practical file
System programmin practical file
Ankit Dixit
 
Embedded C programming session10
Embedded C programming  session10Embedded C programming  session10
Embedded C programming session10
Keroles karam khalil
 
C programming session10
C programming  session10C programming  session10
C programming session10
Keroles karam khalil
 

Similar to module 4.docx (20)

C++ Functions
C++ FunctionsC++ Functions
C++ Functions
 
loaders-and-linkers.pdfhhhhhccftyghgfggy
loaders-and-linkers.pdfhhhhhccftyghgfggyloaders-and-linkers.pdfhhhhhccftyghgfggy
loaders-and-linkers.pdfhhhhhccftyghgfggy
 
SPOS UNIT1 PPTS (1).pptx
SPOS UNIT1 PPTS (1).pptxSPOS UNIT1 PPTS (1).pptx
SPOS UNIT1 PPTS (1).pptx
 
Mp lab manual
Mp lab manualMp lab manual
Mp lab manual
 
bh-europe-01-clowes
bh-europe-01-clowesbh-europe-01-clowes
bh-europe-01-clowes
 
Assembly Language for as level computer science
Assembly Language for as level computer scienceAssembly Language for as level computer science
Assembly Language for as level computer science
 
Loaders ( system programming )
Loaders ( system programming ) Loaders ( system programming )
Loaders ( system programming )
 
Lec 04 intro assembly
Lec 04 intro assemblyLec 04 intro assembly
Lec 04 intro assembly
 
Two pass Assembler
Two pass AssemblerTwo pass Assembler
Two pass Assembler
 
Os7 2
Os7 2Os7 2
Os7 2
 
Assembler
AssemblerAssembler
Assembler
 
CoreOS, or How I Learned to Stop Worrying and Love Systemd
CoreOS, or How I Learned to Stop Worrying and Love SystemdCoreOS, or How I Learned to Stop Worrying and Love Systemd
CoreOS, or How I Learned to Stop Worrying and Love Systemd
 
Loader and linker.pptx
Loader and linker.pptxLoader and linker.pptx
Loader and linker.pptx
 
Arduino IDE
Arduino IDE Arduino IDE
Arduino IDE
 
Assembly level language
Assembly level languageAssembly level language
Assembly level language
 
loader.ppt
loader.pptloader.ppt
loader.ppt
 
Qe Reference
Qe ReferenceQe Reference
Qe Reference
 
System programmin practical file
System programmin practical fileSystem programmin practical file
System programmin practical file
 
Embedded C programming session10
Embedded C programming  session10Embedded C programming  session10
Embedded C programming session10
 
C programming session10
C programming  session10C programming  session10
C programming session10
 

Recently uploaded

Senior Engineering Sample EM DOE - Sheet1.pdf
Senior Engineering Sample EM DOE  - Sheet1.pdfSenior Engineering Sample EM DOE  - Sheet1.pdf
Senior Engineering Sample EM DOE - Sheet1.pdf
Vineet
 
一比一原版澳洲西澳大学毕业证(uwa毕业证书)如何办理
一比一原版澳洲西澳大学毕业证(uwa毕业证书)如何办理一比一原版澳洲西澳大学毕业证(uwa毕业证书)如何办理
一比一原版澳洲西澳大学毕业证(uwa毕业证书)如何办理
aguty
 
一比一原版英国赫特福德大学毕业证(hertfordshire毕业证书)如何办理
一比一原版英国赫特福德大学毕业证(hertfordshire毕业证书)如何办理一比一原版英国赫特福德大学毕业证(hertfordshire毕业证书)如何办理
一比一原版英国赫特福德大学毕业证(hertfordshire毕业证书)如何办理
nyvan3
 
一比一原版(lbs毕业证书)伦敦商学院毕业证如何办理
一比一原版(lbs毕业证书)伦敦商学院毕业证如何办理一比一原版(lbs毕业证书)伦敦商学院毕业证如何办理
一比一原版(lbs毕业证书)伦敦商学院毕业证如何办理
ywqeos
 
PyData London 2024: Mistakes were made (Dr. Rebecca Bilbro)
PyData London 2024: Mistakes were made (Dr. Rebecca Bilbro)PyData London 2024: Mistakes were made (Dr. Rebecca Bilbro)
PyData London 2024: Mistakes were made (Dr. Rebecca Bilbro)
Rebecca Bilbro
 
一比一原版马来西亚博特拉大学毕业证(upm毕业证)如何办理
一比一原版马来西亚博特拉大学毕业证(upm毕业证)如何办理一比一原版马来西亚博特拉大学毕业证(upm毕业证)如何办理
一比一原版马来西亚博特拉大学毕业证(upm毕业证)如何办理
eudsoh
 
一比一原版多伦多大学毕业证(UofT毕业证书)学历如何办理
一比一原版多伦多大学毕业证(UofT毕业证书)学历如何办理一比一原版多伦多大学毕业证(UofT毕业证书)学历如何办理
一比一原版多伦多大学毕业证(UofT毕业证书)学历如何办理
eoxhsaa
 
Sample Devops SRE Product Companies .pdf
Sample Devops SRE  Product Companies .pdfSample Devops SRE  Product Companies .pdf
Sample Devops SRE Product Companies .pdf
Vineet
 
一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理
一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理
一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理
uevausa
 
一比一原版加拿大麦吉尔大学毕业证(mcgill毕业证书)如何办理
一比一原版加拿大麦吉尔大学毕业证(mcgill毕业证书)如何办理一比一原版加拿大麦吉尔大学毕业证(mcgill毕业证书)如何办理
一比一原版加拿大麦吉尔大学毕业证(mcgill毕业证书)如何办理
agdhot
 
Q4FY24 Investor-Presentation.pdf bank slide
Q4FY24 Investor-Presentation.pdf bank slideQ4FY24 Investor-Presentation.pdf bank slide
Q4FY24 Investor-Presentation.pdf bank slide
mukulupadhayay1
 
Discovering Digital Process Twins for What-if Analysis: a Process Mining Appr...
Discovering Digital Process Twins for What-if Analysis: a Process Mining Appr...Discovering Digital Process Twins for What-if Analysis: a Process Mining Appr...
Discovering Digital Process Twins for What-if Analysis: a Process Mining Appr...
Marlon Dumas
 
一比一原版南昆士兰大学毕业证如何办理
一比一原版南昆士兰大学毕业证如何办理一比一原版南昆士兰大学毕业证如何办理
一比一原版南昆士兰大学毕业证如何办理
ugydym
 
A gentle exploration of Retrieval Augmented Generation
A gentle exploration of Retrieval Augmented GenerationA gentle exploration of Retrieval Augmented Generation
A gentle exploration of Retrieval Augmented Generation
dataschool1
 
一比一原版(UO毕业证)渥太华大学毕业证如何办理
一比一原版(UO毕业证)渥太华大学毕业证如何办理一比一原版(UO毕业证)渥太华大学毕业证如何办理
一比一原版(UO毕业证)渥太华大学毕业证如何办理
bmucuha
 
一比一原版斯威本理工大学毕业证(swinburne毕业证)如何办理
一比一原版斯威本理工大学毕业证(swinburne毕业证)如何办理一比一原版斯威本理工大学毕业证(swinburne毕业证)如何办理
一比一原版斯威本理工大学毕业证(swinburne毕业证)如何办理
actyx
 
Do People Really Know Their Fertility Intentions? Correspondence between Sel...
Do People Really Know Their Fertility Intentions?  Correspondence between Sel...Do People Really Know Their Fertility Intentions?  Correspondence between Sel...
Do People Really Know Their Fertility Intentions? Correspondence between Sel...
Xiao Xu
 
一比一原版爱尔兰都柏林大学毕业证(本硕)ucd学位证书如何办理
一比一原版爱尔兰都柏林大学毕业证(本硕)ucd学位证书如何办理一比一原版爱尔兰都柏林大学毕业证(本硕)ucd学位证书如何办理
一比一原版爱尔兰都柏林大学毕业证(本硕)ucd学位证书如何办理
hqfek
 
Template xxxxxxxx ssssssssssss Sertifikat.pptx
Template xxxxxxxx ssssssssssss Sertifikat.pptxTemplate xxxxxxxx ssssssssssss Sertifikat.pptx
Template xxxxxxxx ssssssssssss Sertifikat.pptx
TeukuEriSyahputra
 
Call Girls Hyderabad (india) ☎️ +91-7426014248 Hyderabad Call Girl
Call Girls Hyderabad  (india) ☎️ +91-7426014248 Hyderabad  Call GirlCall Girls Hyderabad  (india) ☎️ +91-7426014248 Hyderabad  Call Girl
Call Girls Hyderabad (india) ☎️ +91-7426014248 Hyderabad Call Girl
sapna sharmap11
 

Recently uploaded (20)

Senior Engineering Sample EM DOE - Sheet1.pdf
Senior Engineering Sample EM DOE  - Sheet1.pdfSenior Engineering Sample EM DOE  - Sheet1.pdf
Senior Engineering Sample EM DOE - Sheet1.pdf
 
一比一原版澳洲西澳大学毕业证(uwa毕业证书)如何办理
一比一原版澳洲西澳大学毕业证(uwa毕业证书)如何办理一比一原版澳洲西澳大学毕业证(uwa毕业证书)如何办理
一比一原版澳洲西澳大学毕业证(uwa毕业证书)如何办理
 
一比一原版英国赫特福德大学毕业证(hertfordshire毕业证书)如何办理
一比一原版英国赫特福德大学毕业证(hertfordshire毕业证书)如何办理一比一原版英国赫特福德大学毕业证(hertfordshire毕业证书)如何办理
一比一原版英国赫特福德大学毕业证(hertfordshire毕业证书)如何办理
 
一比一原版(lbs毕业证书)伦敦商学院毕业证如何办理
一比一原版(lbs毕业证书)伦敦商学院毕业证如何办理一比一原版(lbs毕业证书)伦敦商学院毕业证如何办理
一比一原版(lbs毕业证书)伦敦商学院毕业证如何办理
 
PyData London 2024: Mistakes were made (Dr. Rebecca Bilbro)
PyData London 2024: Mistakes were made (Dr. Rebecca Bilbro)PyData London 2024: Mistakes were made (Dr. Rebecca Bilbro)
PyData London 2024: Mistakes were made (Dr. Rebecca Bilbro)
 
一比一原版马来西亚博特拉大学毕业证(upm毕业证)如何办理
一比一原版马来西亚博特拉大学毕业证(upm毕业证)如何办理一比一原版马来西亚博特拉大学毕业证(upm毕业证)如何办理
一比一原版马来西亚博特拉大学毕业证(upm毕业证)如何办理
 
一比一原版多伦多大学毕业证(UofT毕业证书)学历如何办理
一比一原版多伦多大学毕业证(UofT毕业证书)学历如何办理一比一原版多伦多大学毕业证(UofT毕业证书)学历如何办理
一比一原版多伦多大学毕业证(UofT毕业证书)学历如何办理
 
Sample Devops SRE Product Companies .pdf
Sample Devops SRE  Product Companies .pdfSample Devops SRE  Product Companies .pdf
Sample Devops SRE Product Companies .pdf
 
一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理
一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理
一比一原版加拿大渥太华大学毕业证(uottawa毕业证书)如何办理
 
一比一原版加拿大麦吉尔大学毕业证(mcgill毕业证书)如何办理
一比一原版加拿大麦吉尔大学毕业证(mcgill毕业证书)如何办理一比一原版加拿大麦吉尔大学毕业证(mcgill毕业证书)如何办理
一比一原版加拿大麦吉尔大学毕业证(mcgill毕业证书)如何办理
 
Q4FY24 Investor-Presentation.pdf bank slide
Q4FY24 Investor-Presentation.pdf bank slideQ4FY24 Investor-Presentation.pdf bank slide
Q4FY24 Investor-Presentation.pdf bank slide
 
Discovering Digital Process Twins for What-if Analysis: a Process Mining Appr...
Discovering Digital Process Twins for What-if Analysis: a Process Mining Appr...Discovering Digital Process Twins for What-if Analysis: a Process Mining Appr...
Discovering Digital Process Twins for What-if Analysis: a Process Mining Appr...
 
一比一原版南昆士兰大学毕业证如何办理
一比一原版南昆士兰大学毕业证如何办理一比一原版南昆士兰大学毕业证如何办理
一比一原版南昆士兰大学毕业证如何办理
 
A gentle exploration of Retrieval Augmented Generation
A gentle exploration of Retrieval Augmented GenerationA gentle exploration of Retrieval Augmented Generation
A gentle exploration of Retrieval Augmented Generation
 
一比一原版(UO毕业证)渥太华大学毕业证如何办理
一比一原版(UO毕业证)渥太华大学毕业证如何办理一比一原版(UO毕业证)渥太华大学毕业证如何办理
一比一原版(UO毕业证)渥太华大学毕业证如何办理
 
一比一原版斯威本理工大学毕业证(swinburne毕业证)如何办理
一比一原版斯威本理工大学毕业证(swinburne毕业证)如何办理一比一原版斯威本理工大学毕业证(swinburne毕业证)如何办理
一比一原版斯威本理工大学毕业证(swinburne毕业证)如何办理
 
Do People Really Know Their Fertility Intentions? Correspondence between Sel...
Do People Really Know Their Fertility Intentions?  Correspondence between Sel...Do People Really Know Their Fertility Intentions?  Correspondence between Sel...
Do People Really Know Their Fertility Intentions? Correspondence between Sel...
 
一比一原版爱尔兰都柏林大学毕业证(本硕)ucd学位证书如何办理
一比一原版爱尔兰都柏林大学毕业证(本硕)ucd学位证书如何办理一比一原版爱尔兰都柏林大学毕业证(本硕)ucd学位证书如何办理
一比一原版爱尔兰都柏林大学毕业证(本硕)ucd学位证书如何办理
 
Template xxxxxxxx ssssssssssss Sertifikat.pptx
Template xxxxxxxx ssssssssssss Sertifikat.pptxTemplate xxxxxxxx ssssssssssss Sertifikat.pptx
Template xxxxxxxx ssssssssssss Sertifikat.pptx
 
Call Girls Hyderabad (india) ☎️ +91-7426014248 Hyderabad Call Girl
Call Girls Hyderabad  (india) ☎️ +91-7426014248 Hyderabad  Call GirlCall Girls Hyderabad  (india) ☎️ +91-7426014248 Hyderabad  Call Girl
Call Girls Hyderabad (india) ☎️ +91-7426014248 Hyderabad Call Girl
 

module 4.docx

  • 1. ABSOLUTE LOADER Advantage Simple and efficient Disadvantage need for programmer to specify the actual address difficult to use subroutine libraries Loading: brings the Object Program into memory for execution Relocating: modifies the Object Program so that it can be loaded at an address different form the location originally specified. Linking: combines two or more separate Object Programs BOOTSRAP LOADER Bootstrap Loader ◦When a computer is first turned 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 Algorithm for an absolute loader *Machine Dependent Loader Features RelocatingLoaders. Motivation ◦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 Two methods for specifying relocation ◦modification record (For SIC/XE) ◦relocation bit (For SIC) ◦each instruction is associated with one relocation bit ◦these relocation bits in a Text record is gathered into bit masks ProgramLinking Linking is the process of collecting and combining various pieces of code and data into a single file that can be loaded (copied) into memory and executed LinkingLoader DataStructures ALGORITHM LINKING LOADER “Pass 1: begin get PROGADDR from operating system set CSADDR to PROGADDR {for first control section} while not end of input do begin read next input record {Header record for control section) set CSLTH to control section length search ESTAB for control section name if found then set error flag {duplicate external symbol) else enter control section name into ESTAB with value CSADDR while record type ¥ ‘E’ do begin read next input record if record type = ‘D’ then for each symbol in the record do begin search ESTAB for symbol name if found then set error flag (duplicate external symbol) else enter symbol into ESTAB with value (CSADDR + indicated address) end {for} end {while ¥ ‘E’} add CSLTH to CSADDR {starting address for next control section} end {while not EOF) end (Pass 1) Pass 2: begin set CSADDR to PROGADDR set EXECADDR to PROGADDR while not end of input do begin read next input record {Header record} set CSLTH to control section length while record type # ‘E’ do begin read next input record if record type = ‘'T’ then begin {if object code is in character form, convert into internal representation) move object code from record to location (CSADDR + specified address) end (if ‘T’) else if record type = ‘M’ then begin search ESTAB for modifying symbol name if found then add or subtract symbol value at location (CSADDR + specified address) else set error flag (undefined external symbol) end (if ‘M’) end (while # ‘E’} if an address is specified {in End record) then set EXECADDR to (CSADDR + specified address) add CSLTH to CSADDR end (while not EOF) jump to location given by EXECADDR (to start execution of loaded program) end (Pass 2} Machine-Independent Loader Features Automaticlibrarysearchforhandlingexternal references —allowsaprogrammertousestandardsubroutines whichareautomaticallyretrievedfromalibraryas theyareneededduringlinking *Optionsoflinkingandloading —Specifyingalternativesourcesofinput —Changingordeletingexternalreferences —Controllingtheautomaticprocessingofexternal references *Specifytheexternalreferencenamearetoremainunresolved. Linkage Editors A linking loader performs ◦All linking and relocation operations ◦Automatic library search ◦Loads the linked program directly into memory for execution A linkage editor◦Produces a linked version of program (often called a load module or an executable image), which is written to a file or library for later execution ◦A simple relocating loader can be used to load the linked version of program into memory Linkage editors can perform many useful functions 1. The linkage editor can be used to replace the subroutines in the linked version 2. Linkage editors can also be used to build packages of subroutines or other control sections that are generally used together 3.Linkage editors often allow the user to specify that external references are not to be resolved by automatic library search Dynamic Linking Postpone the linking function until execution time ◦A subroutine is loaded and linked to the rest of the program when it is first called ◦Dynamic linking, dynamic loading, or load on call Allow several executing programs to share one copy of a subroutine or library In object-oriented system, it allows the implementation of the object and its methods to be determined at the time the program is run Dynamic linking provides the ability to load the routines only when they are needed