SlideShare a Scribd company logo
1 of 40
Asaad alnour
Seead alameen
Abdalwahab alnour
09-06-2015 1
๏‚ž Linking
๏‚ž Linker
๏‚ž Historical Perspective
๏‚ž Linker vs Loader
๏‚ž Linking Process
๏‚ก Two pass Linking
๏‚ž Object Code Libraries
๏‚ž Relocation and Code modification
๏‚ž Linking an Example
09-06-2015 2
09-06-2015 3
๏‚ž When developing large programs, different people
working at the same time can develop separate
modules of functionality. These modules can then be
"linkedรข๏ฟฝ๏ฟฝ to form a single module that can be
loaded and executed. The modularity of programs, that
the linking step in assembly language makes possible,
provides the same convenience as it does in higher-
level languages; namely abstraction and separation of
concerns. Once the functionality of a module has been
verified for correctness, it can be re-used in any
number of other modules. The programmer can focus
on other parts of the program. This is the so-called
"modular" approach, or the "top-down" approach
09-06-2015 4
๏‚ž Also called link editor and binder, a linker is
a program that combines object modules to form
an executable program. Many programming
languages allow you to write different pieces
of code, called modules, separately. This simplifies
the programming task because you can break a
large program into small, more manageable pieces.
Eventually, though, you need to put all the
modules together. This is the job of the linker
09-06-2015 5
09-06-2015 6
Definition:
Linking is a process of binding an external
reference to the correct link time address
09-06-2015 7
๏‚ž A System Software that Combines two or more
separate object programs and supplies the
information needed to allow references
between them
09-06-2015 8
๏‚ž Compiler :it is a system software which correct the
error of programs,object file ,messages etc
๏‚ž Linker:it is a system software which combines One
or more objectfiles and possible some library code
into either some exicutable some library or a list of
error
09-06-2015 9
๏‚ž At the time of Programs became larger than
available memory
๏‚ก Overlays, A technique that let programmers arrange for
different parts of a program to share the same memory,
with each overlay loaded on demand when another part
of the program called into it.
๏‚ก Popular in 1960 but faded after the advent of Virtual
Memory on PCs at 1990s
09-06-2015 10
๏‚ž Two Types
๏‚ก Dynamic Linking
๏‚ก Static Linking
๏‚ž Static Linking:
๏‚ž Static linking is the result of the linker copying all
library routines used in the program into the
executable image. This may require more disk
space and memory than dynamic linking, but is
more portable, since it does not require the
presence of the library on the system where it is
run.
09-06-2015 11
๏‚ž Dynamic Linking:
๏‚ก Programs can bind to libraries as the programs are
running, loading libraries in the middle of program
execution.
๏‚ก This provides a powerful and high-performance way to
extend the function of programs
๏‚ก MS Windows extensively uses DLL (Dynamic Linked
Libraries)
09-06-2015 12
๏‚ž Linker is a program that takes one or more
objects generated by a compiler and combines
them into a single executable program.
๏‚ž Loader is the part of an operating system that is
responsible for loading programs from
executables (i.e., executable files) into
memory, preparing them for execution and then
executing them.
๏‚ž Linkers are the system softwares that are used
to link the functions,resources to their
respective references.
EX-
source code(.c) is compiled and converted into
object code(.obj) in C.
After this Linker comes into the act, linker
resolve all the references in .obj file via linking
them to their respectives codes and
resources.In short linker performs the final step
to convert .obj into executable or machine
readable file(.exe).
๏‚ž eg:
#include<stdio.h>
int main()
{
printf("ashwin");
return 0;
}
here,compiler first searches the declaration for
"printf()" function,finds it in
"#include<stdio.h>" and creates a (.obj) file
successfully.
๏‚ž A symbol table is created in (.obj) file which
contains all the references to be
resolved,linkers resolves them by providing
respective code or resource,
here code referred by "printf" also gets
executed after successful creation of( .exe) file
by linker.
๏‚ž LOADERS:
Loaders are the programs that are used to load
the resources like files from secondary or main
memory,i.e.
Loader loads the referred resource or file after
being Linked to referrer via a Linker during the
execution of program.
๏ƒ˜ Object code library:
set of object files.
โ€ข Object File:-
๏ƒ˜ header information (size, creation date, ...) ,object code
๏ƒ˜ relocation information (list of places to relocate)
๏ƒ˜ symbols: global symbols defined and symbols imported.
๏ƒ˜ debugging information (source file, line numbers, local symbols, data
structures)
๏ƒ˜ A library is little more than a set of object code files.
09-06-2015 18
๏ƒผ All linkers support object code libraries in one form or
another, with most also providing support for various
kinds of shared libraries.
๏ƒผ After the linker processes all of the regular input files,
if any imported names remain undefined
๏ƒ˜ it runs through the library/libraries
๏ƒ˜ links in any of the files in the library that export one or more
undefined names.
09-06-2015 19
09-06-2015 20
๏ƒ˜ Shared libraries complicate this task a little by moving
some of the work from link time to load time.
๏ƒ˜ The linker identifies the shared libraries that
resolve the undefined names in a linker run, but rather
than linking anything into the program, the linker notes in
the output file the names of the libraries in which the
symbols were found, so that the shared library can be bound
in when the program is loaded.
09-06-2015 21
๏ƒ˜ The linker relocates these sections by
๏ƒ˜ associating a memory location with each symbol definition
๏ƒ˜ modifying all of the references to those symbols so that they
point to this memory location.
๏ƒผ Relocation might happen more than once
๏ƒ˜ linking several object files into a library
๏ƒ˜ loading the library
09-06-2015 22
๏ƒ˜ The heart of a linker or loaderโ€™s actions is relocation and
code modification.
๏ƒ˜ When a compiler or assembler generates an object file, it
generates the code using the unrelocated addresses of
code and data defined within the file, and usually zeros
for code and data defined elsewhere.
๏ƒ˜ As part of the linking process, the linker modifies the
object code to reflect the actual addresses assigned.
09-06-2015 23
๏ƒ˜ Code that moves the contents of variable a to variable b
using the eax register.
mov a,%eax
mov %eax,b
๏ƒ˜ If a is defined in the same file at location 1234 hex and b is
imported from somewhere else, the generated object code
will be:
A1 34 12 00 00 mov a,%eax
A3 00 00 00 00 mov %eax,b
09-06-2015 24
๏‚ž The linker links this code so that the section in which a is located is
relocated by hex 10000 bytes, and b turns out to be at hex 9A12.
๏‚ž The linker modifies the code to be:
Relocated code
A1 34 12 01 00 mov a,%eax
A3 12 9A 00 00 mov %eax,b
๏‚ž That is, it adds 10000 to the address in the first instruction so now it
refers to aโ€™s relocated address which is 11234, and it patches in the
address for b. These adjustments affect instructions, but any pointers
in the data part of an object file have to be adjusted as well.
09-06-2015 25
๏‚ž Linker modifies code to reflect assigned addresses depends on
hardware architecture
๏‚ž On older computers with small address spaces and direct addressing
there are only one or two address formats that a linker has to
handle.
๏‚ž Modern computers(RISC) require considerably more complex code
modification because it constructs addresses by several instructions.
๏‚ž No single instruction contains enough bits to hold a direct address,
so the compiler and linker have to use complicated addressing tricks
to handle data at arbitrary addresses.
09-06-2015 26
๏‚ž In some cases, itโ€™s possible to calculate an address using two or three
instructions, each of which contains part of the address, and use bit
manipulation to combine the parts into a full address.
๏‚ž In this case, the linker has to be prepared to modify each of the
instructions, inserting some of the bits of the address into each
instruction.
๏‚ž In other cases, all of the addresses used by a routine or group of
routines are placed in an array used as an โ€˜โ€˜address poolโ€™โ€™, initialization
code sets one of the machine registers to point to that array, and code
loads pointers out of the address pool as needed using that register as a
base register.
09-06-2015 27
๏‚ž The linker may have to create the array from all of the addresses
used in a program, then modify instructions that so that they refer to
the respective address pool entry.
๏‚ž Code might be required to be position independent (PIC)
๏‚ก works regardless where library is loaded
๏‚ก same library used at different addresses by processes
๏‚ž Linkers generally have to provide extra tricks to support that,
separating out the parts of the program that canโ€™t be made position
independent, and arranging for the two parts to communicate.
09-06-2015 28
๏‚ž Every linker has some sort of command
language to control the linking process.
๏‚ž The linker needs the list of object files and
libraries to link.
๏‚ž In linkers that support multiple code and data
segments, a linker command language can
specify the order in which segments are to be
linked.
09-06-2015 29
๏‚ž There are common techniques to pass commands to a
linker,
Command Line:
๏‚ž It is used to direct the linker to read commands from a
file.
Embedded in object files:
๏‚ž Linker commands to be embedded inside object files.
๏‚ž This permits a compiler to pass any options needed to
link an object file in the file itself.
09-06-2015 30
Separate configuration language:
๏‚ž The linkers have a full fledged configuration
language to control linking.
๏‚ž The GNU linker, which can handle an
enormous range of object file formats, machine
architectures, and address space conventions
09-06-2015 31
๏‚ž A pair of C language source files, m.c with a main
program that calls a routine named a, and a.c that
contains the routine with a call to the library routines
strlen and printf.
๏‚ž When the source file compiles at the time the object
file create.
๏‚ž Each object file contain atleast one symbol table.
09-06-2015 32
Linker (ld)
Compiler
m.c
m.o
Compiler
a.c
a.o
p
Separately compiled
relocatable object files
Executable object file (contains code and
data for all functions defined in m.c and a.c)
09-06-2015 33
Source file m.c Source file a.c
extern void a(char *);
int main(int ac, char
**av)
{
static char string[] =
"Hello, world!n";
a(string);
}
#include <stdio.h>
#include <string.h>
void a(char *s)
{
printf(โ€œ%dโ€,strlen(s));
}
09-06-2015 34
Idx Name Size VMA LMA File off Algn
0 . text 00000010 00000000 00000000 00000020 2**3
1 . data 00000010 00000010 00000010 00000030 2**3
๏‚ž 00000000 <_main>:
๏‚ž 0: 55 pushl %ebp
๏‚ž 1: 89 e5 movl %esp,%ebp
๏‚ž 3: 68 10 00 00 00 pushl $0x10
๏‚ž 4: 32 .data
๏‚ž 8: e8 f3 ff ff ff call 0
๏‚ž 9: DISP32 _a
๏‚ž d: c9 leave
๏‚ž e: c3 ret
๏‚ž ...
09-06-2015 35
๏‚ž In that object file "text" segment containing the read
only program code, and "data" segment containing the
string.
There are two relocation entries,
๏‚ž That marks the pushl instruction that puts the address
of the string on the stack in preparation for the call to
a.
๏‚ž one that marks the call instruction that transfers
control to a.
09-06-2015 36
๏‚ž The symbol table exports the definition of
_main, imports _a.
๏‚ž The object file of the subprogram a.c also
contain data and text segments.
Two relocation entries,
๏‚ž mark the calls to strlen and printf, and the
symbol table exports _a and imports _strlen
and _printf.
09-06-2015 37
09-06-2015 38
int e=7;
int main() {
int r = a();
exit(0);
}
m.c a.c
extern int e;
int *ep=&e;
int x=15;
int y;
int a() {
return *ep+x+y;
}
09-06-2015 39
main()
m.o
int *ep = &e
a()
a.o
int e = 7
headers
main()
a()
0system code
int *ep = &e
int e = 7
system data
more system code
int x = 15
int y
system data
int x = 15
Relocatable Object Files Executable Object File
.text
.text
.data
.text
.data
.text
.data
.bss
.symtab
.debug
.data
uninitialized data .bss
system code
๏‚ž www.slideshare.com
๏‚ž www.stackoverflow.com
09-06-2015 40

More Related Content

What's hot

Lecture 01 introduction to compiler
Lecture 01 introduction to compilerLecture 01 introduction to compiler
Lecture 01 introduction to compilerIffat Anjum
ย 
Compiler Design(NANTHU NOTES)
Compiler Design(NANTHU NOTES)Compiler Design(NANTHU NOTES)
Compiler Design(NANTHU NOTES)guest251d9a
ย 
Introduction to compiler
Introduction to compilerIntroduction to compiler
Introduction to compilerAbha Damani
ย 
Symbol Table, Error Handler & Code Generation
Symbol Table, Error Handler & Code GenerationSymbol Table, Error Handler & Code Generation
Symbol Table, Error Handler & Code GenerationAkhil Kaushik
ย 
Compiler Design
Compiler DesignCompiler Design
Compiler DesignMir Majid
ย 
Advanced c programming in Linux
Advanced c programming in Linux Advanced c programming in Linux
Advanced c programming in Linux Mohammad Golyani
ย 
GCC compiler
GCC compilerGCC compiler
GCC compilerAnil Pokhrel
ย 
Introduction to Compiler design
Introduction to Compiler design Introduction to Compiler design
Introduction to Compiler design Dr. C.V. Suresh Babu
ย 
Compiler Design Lecture Notes
Compiler Design Lecture NotesCompiler Design Lecture Notes
Compiler Design Lecture NotesFellowBuddy.com
ย 
Chapter 1 1
Chapter 1 1Chapter 1 1
Chapter 1 1bolovv
ย 
Something About Dynamic Linking
Something About Dynamic LinkingSomething About Dynamic Linking
Something About Dynamic LinkingWang Hsiangkai
ย 
Spr ch-05-compilers
Spr ch-05-compilersSpr ch-05-compilers
Spr ch-05-compilersVasim Pathan
ย 
Mini Project final report on " LEAKY BUCKET ALGORITHM "
Mini Project final report on " LEAKY BUCKET ALGORITHM "Mini Project final report on " LEAKY BUCKET ALGORITHM "
Mini Project final report on " LEAKY BUCKET ALGORITHM "Nikhil Jain
ย 
Phases of Compiler
Phases of CompilerPhases of Compiler
Phases of CompilerTanzeela_Hussain
ย 
System software
System softwareSystem software
System softwareSenthil Kanth
ย 
what is compiler and five phases of compiler
what is compiler and five phases of compilerwhat is compiler and five phases of compiler
what is compiler and five phases of compileradilmehmood93
ย 
loaders and linkers
 loaders and linkers loaders and linkers
loaders and linkersTemesgen Molla
ย 

What's hot (20)

Lecture 01 introduction to compiler
Lecture 01 introduction to compilerLecture 01 introduction to compiler
Lecture 01 introduction to compiler
ย 
Compiler Design(NANTHU NOTES)
Compiler Design(NANTHU NOTES)Compiler Design(NANTHU NOTES)
Compiler Design(NANTHU NOTES)
ย 
Introduction to compiler
Introduction to compilerIntroduction to compiler
Introduction to compiler
ย 
Symbol Table, Error Handler & Code Generation
Symbol Table, Error Handler & Code GenerationSymbol Table, Error Handler & Code Generation
Symbol Table, Error Handler & Code Generation
ย 
Compiler Design
Compiler DesignCompiler Design
Compiler Design
ย 
Advanced c programming in Linux
Advanced c programming in Linux Advanced c programming in Linux
Advanced c programming in Linux
ย 
GCC compiler
GCC compilerGCC compiler
GCC compiler
ย 
Single Pass Assembler
Single Pass AssemblerSingle Pass Assembler
Single Pass Assembler
ย 
Introduction to Compiler design
Introduction to Compiler design Introduction to Compiler design
Introduction to Compiler design
ย 
Compiler Design Lecture Notes
Compiler Design Lecture NotesCompiler Design Lecture Notes
Compiler Design Lecture Notes
ย 
Chapter 1 1
Chapter 1 1Chapter 1 1
Chapter 1 1
ย 
Loaders
LoadersLoaders
Loaders
ย 
Something About Dynamic Linking
Something About Dynamic LinkingSomething About Dynamic Linking
Something About Dynamic Linking
ย 
Spr ch-05-compilers
Spr ch-05-compilersSpr ch-05-compilers
Spr ch-05-compilers
ย 
Mini Project final report on " LEAKY BUCKET ALGORITHM "
Mini Project final report on " LEAKY BUCKET ALGORITHM "Mini Project final report on " LEAKY BUCKET ALGORITHM "
Mini Project final report on " LEAKY BUCKET ALGORITHM "
ย 
Phases of Compiler
Phases of CompilerPhases of Compiler
Phases of Compiler
ย 
System software
System softwareSystem software
System software
ย 
what is compiler and five phases of compiler
what is compiler and five phases of compilerwhat is compiler and five phases of compiler
what is compiler and five phases of compiler
ย 
ELF
ELFELF
ELF
ย 
loaders and linkers
 loaders and linkers loaders and linkers
loaders and linkers
ย 

Viewers also liked

Linkers
LinkersLinkers
LinkersTech_MX
ย 
Embedded systems and programming (including my work at Eyantra (IIT Bombay))
Embedded systems and programming (including my work at Eyantra (IIT Bombay))Embedded systems and programming (including my work at Eyantra (IIT Bombay))
Embedded systems and programming (including my work at Eyantra (IIT Bombay))AkashDeep Singh
ย 
HES2011 - James Oakley and Sergey bratus-Exploiting-the-Hard-Working-DWARF
HES2011 - James Oakley and Sergey bratus-Exploiting-the-Hard-Working-DWARFHES2011 - James Oakley and Sergey bratus-Exploiting-the-Hard-Working-DWARF
HES2011 - James Oakley and Sergey bratus-Exploiting-the-Hard-Working-DWARFHackito Ergo Sum
ย 
Intro reverse engineering
Intro reverse engineeringIntro reverse engineering
Intro reverse engineeringNitin kumar Gupta
ย 
Symbolic Debugging with DWARF
Symbolic Debugging with DWARFSymbolic Debugging with DWARF
Symbolic Debugging with DWARFSamy Bahra
ย 
The Enclave Dream Team 2016
The Enclave Dream Team 2016The Enclave Dream Team 2016
The Enclave Dream Team 2016Emarkable
ย 
Giochi Accessibili | L'Idea (ITA)
Giochi Accessibili | L'Idea (ITA)Giochi Accessibili | L'Idea (ITA)
Giochi Accessibili | L'Idea (ITA)Nazzareno Giannelli
ย 
ะ ะฐะทั€ะฐะฑะพั‚ะบะฐ ะธัะฟะพะปะฝะธะผั‹ั… ะฑะธะทะฝะตั-ะฟั€ะพั†ะตััะพะฒ ะบะฐะบ ะฝะพะฒะฐั ะฟะฐั€ะฐะดะธะณะผะฐ ะฟั€ะพะณั€ะฐะผะผะธั€ะพะฒะฐะฝะธั
ะ ะฐะทั€ะฐะฑะพั‚ะบะฐ ะธัะฟะพะปะฝะธะผั‹ั… ะฑะธะทะฝะตั-ะฟั€ะพั†ะตััะพะฒ ะบะฐะบ ะฝะพะฒะฐั ะฟะฐั€ะฐะดะธะณะผะฐ ะฟั€ะพะณั€ะฐะผะผะธั€ะพะฒะฐะฝะธัะ ะฐะทั€ะฐะฑะพั‚ะบะฐ ะธัะฟะพะปะฝะธะผั‹ั… ะฑะธะทะฝะตั-ะฟั€ะพั†ะตััะพะฒ ะบะฐะบ ะฝะพะฒะฐั ะฟะฐั€ะฐะดะธะณะผะฐ ะฟั€ะพะณั€ะฐะผะผะธั€ะพะฒะฐะฝะธั
ะ ะฐะทั€ะฐะฑะพั‚ะบะฐ ะธัะฟะพะปะฝะธะผั‹ั… ะฑะธะทะฝะตั-ะฟั€ะพั†ะตััะพะฒ ะบะฐะบ ะฝะพะฒะฐั ะฟะฐั€ะฐะดะธะณะผะฐ ะฟั€ะพะณั€ะฐะผะผะธั€ะพะฒะฐะฝะธัABPMP Russian Chapter
ย 
ะขั€ะฐะฝัั„ะพั€ะผะฐั†ะธั ะฟั€ะพั†ะตััะพะฒ ะบะฐะบ ะบะปัŽั‡ ะบ ั‚ั€ะฐะฝัั„ะพั€ะผะฐั†ะธะธ ะฑะธะทะฝะตัะฐ
ะขั€ะฐะฝัั„ะพั€ะผะฐั†ะธั ะฟั€ะพั†ะตััะพะฒ ะบะฐะบ ะบะปัŽั‡ ะบ ั‚ั€ะฐะฝัั„ะพั€ะผะฐั†ะธะธ ะฑะธะทะฝะตัะฐะขั€ะฐะฝัั„ะพั€ะผะฐั†ะธั ะฟั€ะพั†ะตััะพะฒ ะบะฐะบ ะบะปัŽั‡ ะบ ั‚ั€ะฐะฝัั„ะพั€ะผะฐั†ะธะธ ะฑะธะทะฝะตัะฐ
ะขั€ะฐะฝัั„ะพั€ะผะฐั†ะธั ะฟั€ะพั†ะตััะพะฒ ะบะฐะบ ะบะปัŽั‡ ะบ ั‚ั€ะฐะฝัั„ะพั€ะผะฐั†ะธะธ ะฑะธะทะฝะตัะฐABPMP Russian Chapter
ย 
ะ’ะธั€ั‚ัƒะฐะปัŒะฝั‹ะน ะฃะฝะธะฒะตั€ัะธั‚ะตั‚ BPM
ะ’ะธั€ั‚ัƒะฐะปัŒะฝั‹ะน ะฃะฝะธะฒะตั€ัะธั‚ะตั‚ BPMะ’ะธั€ั‚ัƒะฐะปัŒะฝั‹ะน ะฃะฝะธะฒะตั€ัะธั‚ะตั‚ BPM
ะ’ะธั€ั‚ัƒะฐะปัŒะฝั‹ะน ะฃะฝะธะฒะตั€ัะธั‚ะตั‚ BPMABPMP Russian Chapter
ย 
ะั€ั…ะธั‚ะตะบั‚ัƒั€ะฐ ัƒะฟั€ะฐะฒะปะตะฝะธั ะฑะธะทะฝะตัะพะผ
ะั€ั…ะธั‚ะตะบั‚ัƒั€ะฐ ัƒะฟั€ะฐะฒะปะตะฝะธั ะฑะธะทะฝะตัะพะผะั€ั…ะธั‚ะตะบั‚ัƒั€ะฐ ัƒะฟั€ะฐะฒะปะตะฝะธั ะฑะธะทะฝะตัะพะผ
ะั€ั…ะธั‚ะตะบั‚ัƒั€ะฐ ัƒะฟั€ะฐะฒะปะตะฝะธั ะฑะธะทะฝะตัะพะผABPMP Russian Chapter
ย 
Diamond jubilee slides
Diamond jubilee slidesDiamond jubilee slides
Diamond jubilee slidesEmarkable
ย 
ะ”ะตะฝัŒ ั€ะพะถะดะตะฝะธั ABPMP Russian Chapter
ะ”ะตะฝัŒ ั€ะพะถะดะตะฝะธั ABPMP Russian Chapterะ”ะตะฝัŒ ั€ะพะถะดะตะฝะธั ABPMP Russian Chapter
ะ”ะตะฝัŒ ั€ะพะถะดะตะฝะธั ABPMP Russian ChapterABPMP Russian Chapter
ย 
BPM: ะŸะพั‡ะตะผัƒ ะฝะฐะดะพ ะณะพะฒะพั€ะธั‚ัŒ ะพ ัะธัั‚ะตะผะต ะบัƒั€ัะพะฒ ะดะปั ะฒัะตั… ะทะฐะธะฝั‚ะตั€ะตัะพะฒะฐะฝะฝั‹ั… ะปะธั† ะพั€ะณะฐ...
BPM: ะŸะพั‡ะตะผัƒ ะฝะฐะดะพ ะณะพะฒะพั€ะธั‚ัŒ ะพ ัะธัั‚ะตะผะต ะบัƒั€ัะพะฒ ะดะปั ะฒัะตั… ะทะฐะธะฝั‚ะตั€ะตัะพะฒะฐะฝะฝั‹ั… ะปะธั† ะพั€ะณะฐ...BPM: ะŸะพั‡ะตะผัƒ ะฝะฐะดะพ ะณะพะฒะพั€ะธั‚ัŒ ะพ ัะธัั‚ะตะผะต ะบัƒั€ัะพะฒ ะดะปั ะฒัะตั… ะทะฐะธะฝั‚ะตั€ะตัะพะฒะฐะฝะฝั‹ั… ะปะธั† ะพั€ะณะฐ...
BPM: ะŸะพั‡ะตะผัƒ ะฝะฐะดะพ ะณะพะฒะพั€ะธั‚ัŒ ะพ ัะธัั‚ะตะผะต ะบัƒั€ัะพะฒ ะดะปั ะฒัะตั… ะทะฐะธะฝั‚ะตั€ะตัะพะฒะฐะฝะฝั‹ั… ะปะธั† ะพั€ะณะฐ...ABPMP Russian Chapter
ย 

Viewers also liked (19)

Linkers
LinkersLinkers
Linkers
ย 
Embedded systems and programming (including my work at Eyantra (IIT Bombay))
Embedded systems and programming (including my work at Eyantra (IIT Bombay))Embedded systems and programming (including my work at Eyantra (IIT Bombay))
Embedded systems and programming (including my work at Eyantra (IIT Bombay))
ย 
ELF 101
ELF 101ELF 101
ELF 101
ย 
HES2011 - James Oakley and Sergey bratus-Exploiting-the-Hard-Working-DWARF
HES2011 - James Oakley and Sergey bratus-Exploiting-the-Hard-Working-DWARFHES2011 - James Oakley and Sergey bratus-Exploiting-the-Hard-Working-DWARF
HES2011 - James Oakley and Sergey bratus-Exploiting-the-Hard-Working-DWARF
ย 
Intro reverse engineering
Intro reverse engineeringIntro reverse engineering
Intro reverse engineering
ย 
Symbolic Debugging with DWARF
Symbolic Debugging with DWARFSymbolic Debugging with DWARF
Symbolic Debugging with DWARF
ย 
The Enclave Dream Team 2016
The Enclave Dream Team 2016The Enclave Dream Team 2016
The Enclave Dream Team 2016
ย 
Giochi Accessibili | L'Idea (ITA)
Giochi Accessibili | L'Idea (ITA)Giochi Accessibili | L'Idea (ITA)
Giochi Accessibili | L'Idea (ITA)
ย 
ะ ะฐะทั€ะฐะฑะพั‚ะบะฐ ะธัะฟะพะปะฝะธะผั‹ั… ะฑะธะทะฝะตั-ะฟั€ะพั†ะตััะพะฒ ะบะฐะบ ะฝะพะฒะฐั ะฟะฐั€ะฐะดะธะณะผะฐ ะฟั€ะพะณั€ะฐะผะผะธั€ะพะฒะฐะฝะธั
ะ ะฐะทั€ะฐะฑะพั‚ะบะฐ ะธัะฟะพะปะฝะธะผั‹ั… ะฑะธะทะฝะตั-ะฟั€ะพั†ะตััะพะฒ ะบะฐะบ ะฝะพะฒะฐั ะฟะฐั€ะฐะดะธะณะผะฐ ะฟั€ะพะณั€ะฐะผะผะธั€ะพะฒะฐะฝะธัะ ะฐะทั€ะฐะฑะพั‚ะบะฐ ะธัะฟะพะปะฝะธะผั‹ั… ะฑะธะทะฝะตั-ะฟั€ะพั†ะตััะพะฒ ะบะฐะบ ะฝะพะฒะฐั ะฟะฐั€ะฐะดะธะณะผะฐ ะฟั€ะพะณั€ะฐะผะผะธั€ะพะฒะฐะฝะธั
ะ ะฐะทั€ะฐะฑะพั‚ะบะฐ ะธัะฟะพะปะฝะธะผั‹ั… ะฑะธะทะฝะตั-ะฟั€ะพั†ะตััะพะฒ ะบะฐะบ ะฝะพะฒะฐั ะฟะฐั€ะฐะดะธะณะผะฐ ะฟั€ะพะณั€ะฐะผะผะธั€ะพะฒะฐะฝะธั
ย 
Ipad
IpadIpad
Ipad
ย 
Iwtt bulgaria per a.c.c.
Iwtt bulgaria per a.c.c.Iwtt bulgaria per a.c.c.
Iwtt bulgaria per a.c.c.
ย 
ะขั€ะฐะฝัั„ะพั€ะผะฐั†ะธั ะฟั€ะพั†ะตััะพะฒ ะบะฐะบ ะบะปัŽั‡ ะบ ั‚ั€ะฐะฝัั„ะพั€ะผะฐั†ะธะธ ะฑะธะทะฝะตัะฐ
ะขั€ะฐะฝัั„ะพั€ะผะฐั†ะธั ะฟั€ะพั†ะตััะพะฒ ะบะฐะบ ะบะปัŽั‡ ะบ ั‚ั€ะฐะฝัั„ะพั€ะผะฐั†ะธะธ ะฑะธะทะฝะตัะฐะขั€ะฐะฝัั„ะพั€ะผะฐั†ะธั ะฟั€ะพั†ะตััะพะฒ ะบะฐะบ ะบะปัŽั‡ ะบ ั‚ั€ะฐะฝัั„ะพั€ะผะฐั†ะธะธ ะฑะธะทะฝะตัะฐ
ะขั€ะฐะฝัั„ะพั€ะผะฐั†ะธั ะฟั€ะพั†ะตััะพะฒ ะบะฐะบ ะบะปัŽั‡ ะบ ั‚ั€ะฐะฝัั„ะพั€ะผะฐั†ะธะธ ะฑะธะทะฝะตัะฐ
ย 
ะ’ะธั€ั‚ัƒะฐะปัŒะฝั‹ะน ะฃะฝะธะฒะตั€ัะธั‚ะตั‚ BPM
ะ’ะธั€ั‚ัƒะฐะปัŒะฝั‹ะน ะฃะฝะธะฒะตั€ัะธั‚ะตั‚ BPMะ’ะธั€ั‚ัƒะฐะปัŒะฝั‹ะน ะฃะฝะธะฒะตั€ัะธั‚ะตั‚ BPM
ะ’ะธั€ั‚ัƒะฐะปัŒะฝั‹ะน ะฃะฝะธะฒะตั€ัะธั‚ะตั‚ BPM
ย 
PLN
PLNPLN
PLN
ย 
ะั€ั…ะธั‚ะตะบั‚ัƒั€ะฐ ัƒะฟั€ะฐะฒะปะตะฝะธั ะฑะธะทะฝะตัะพะผ
ะั€ั…ะธั‚ะตะบั‚ัƒั€ะฐ ัƒะฟั€ะฐะฒะปะตะฝะธั ะฑะธะทะฝะตัะพะผะั€ั…ะธั‚ะตะบั‚ัƒั€ะฐ ัƒะฟั€ะฐะฒะปะตะฝะธั ะฑะธะทะฝะตัะพะผ
ะั€ั…ะธั‚ะตะบั‚ัƒั€ะฐ ัƒะฟั€ะฐะฒะปะตะฝะธั ะฑะธะทะฝะตัะพะผ
ย 
Diamond jubilee slides
Diamond jubilee slidesDiamond jubilee slides
Diamond jubilee slides
ย 
ะ”ะตะฝัŒ ั€ะพะถะดะตะฝะธั ABPMP Russian Chapter
ะ”ะตะฝัŒ ั€ะพะถะดะตะฝะธั ABPMP Russian Chapterะ”ะตะฝัŒ ั€ะพะถะดะตะฝะธั ABPMP Russian Chapter
ะ”ะตะฝัŒ ั€ะพะถะดะตะฝะธั ABPMP Russian Chapter
ย 
BPM: ะŸะพั‡ะตะผัƒ ะฝะฐะดะพ ะณะพะฒะพั€ะธั‚ัŒ ะพ ัะธัั‚ะตะผะต ะบัƒั€ัะพะฒ ะดะปั ะฒัะตั… ะทะฐะธะฝั‚ะตั€ะตัะพะฒะฐะฝะฝั‹ั… ะปะธั† ะพั€ะณะฐ...
BPM: ะŸะพั‡ะตะผัƒ ะฝะฐะดะพ ะณะพะฒะพั€ะธั‚ัŒ ะพ ัะธัั‚ะตะผะต ะบัƒั€ัะพะฒ ะดะปั ะฒัะตั… ะทะฐะธะฝั‚ะตั€ะตัะพะฒะฐะฝะฝั‹ั… ะปะธั† ะพั€ะณะฐ...BPM: ะŸะพั‡ะตะผัƒ ะฝะฐะดะพ ะณะพะฒะพั€ะธั‚ัŒ ะพ ัะธัั‚ะตะผะต ะบัƒั€ัะพะฒ ะดะปั ะฒัะตั… ะทะฐะธะฝั‚ะตั€ะตัะพะฒะฐะฝะฝั‹ั… ะปะธั† ะพั€ะณะฐ...
BPM: ะŸะพั‡ะตะผัƒ ะฝะฐะดะพ ะณะพะฒะพั€ะธั‚ัŒ ะพ ัะธัั‚ะตะผะต ะบัƒั€ัะพะฒ ะดะปั ะฒัะตั… ะทะฐะธะฝั‚ะตั€ะตัะพะฒะฐะฝะฝั‹ั… ะปะธั† ะพั€ะณะฐ...
ย 
Reaktiopeli
ReaktiopeliReaktiopeli
Reaktiopeli
ย 

Similar to Linkers in compiler

Loaders and Linkers
Loaders and LinkersLoaders and Linkers
Loaders and Linkerskunj desai
ย 
Linking in MS-Dos System
Linking in MS-Dos SystemLinking in MS-Dos System
Linking in MS-Dos SystemSatyamevjayte Haxor
ย 
Hm system programming class 1
Hm system programming class 1Hm system programming class 1
Hm system programming class 1Hitesh Mohapatra
ย 
Ch 4 linker loader
Ch 4 linker loaderCh 4 linker loader
Ch 4 linker loaderMalek Sumaiya
ย 
Distributed system architecture
Distributed system architectureDistributed system architecture
Distributed system architectureYisal Khan
ย 
Introduction To C++ programming and its basic concepts
Introduction To C++ programming and its basic conceptsIntroduction To C++ programming and its basic concepts
Introduction To C++ programming and its basic conceptsssuserf86fba
ย 
Address Binding Scheme
Address Binding SchemeAddress Binding Scheme
Address Binding SchemeRajesh Piryani
ย 
C++ shared libraries and loading
C++ shared libraries and loadingC++ shared libraries and loading
C++ shared libraries and loadingRahul Jamwal
ย 
Build process ppt.pptx
Build process ppt.pptxBuild process ppt.pptx
Build process ppt.pptxSHIVANISRECECE
ย 
Consuming and Creating Libraries in C++
Consuming and Creating Libraries in C++Consuming and Creating Libraries in C++
Consuming and Creating Libraries in C++Richard Thomson
ย 
linker & loader presentation in Compiler Design
linker & loader presentation in Compiler Designlinker & loader presentation in Compiler Design
linker & loader presentation in Compiler DesignAbhishekKumar117405
ย 
How to write shared libraries!
How to write shared libraries!How to write shared libraries!
How to write shared libraries!Stanley Ho
ย 
CS8251_QB_answers.pdf
CS8251_QB_answers.pdfCS8251_QB_answers.pdf
CS8251_QB_answers.pdfvino108206
ย 
Dot net interview questions and asnwers
Dot net interview questions and asnwersDot net interview questions and asnwers
Dot net interview questions and asnwerskavinilavuG
ย 
Lightning web components
Lightning web components Lightning web components
Lightning web components Cloud Analogy
ย 
Docker Announces Open Source Compose for AWS ECS & Microsoft ACI
Docker Announces Open Source Compose for AWS ECS & Microsoft ACIDocker Announces Open Source Compose for AWS ECS & Microsoft ACI
Docker Announces Open Source Compose for AWS ECS & Microsoft ACI9 series
ย 
Building Killer RESTful APIs with NodeJs
Building Killer RESTful APIs with NodeJsBuilding Killer RESTful APIs with NodeJs
Building Killer RESTful APIs with NodeJsSrdjan Strbanovic
ย 

Similar to Linkers in compiler (20)

Loaders and Linkers
Loaders and LinkersLoaders and Linkers
Loaders and Linkers
ย 
Linking in MS-Dos System
Linking in MS-Dos SystemLinking in MS-Dos System
Linking in MS-Dos System
ย 
Module-4 Program Design and Anyalysis.pdf
Module-4 Program Design and Anyalysis.pdfModule-4 Program Design and Anyalysis.pdf
Module-4 Program Design and Anyalysis.pdf
ย 
Hm system programming class 1
Hm system programming class 1Hm system programming class 1
Hm system programming class 1
ย 
Linkers
LinkersLinkers
Linkers
ย 
Ch 4 linker loader
Ch 4 linker loaderCh 4 linker loader
Ch 4 linker loader
ย 
Microsoft data access components
Microsoft data access componentsMicrosoft data access components
Microsoft data access components
ย 
Distributed system architecture
Distributed system architectureDistributed system architecture
Distributed system architecture
ย 
Introduction To C++ programming and its basic concepts
Introduction To C++ programming and its basic conceptsIntroduction To C++ programming and its basic concepts
Introduction To C++ programming and its basic concepts
ย 
Address Binding Scheme
Address Binding SchemeAddress Binding Scheme
Address Binding Scheme
ย 
C++ shared libraries and loading
C++ shared libraries and loadingC++ shared libraries and loading
C++ shared libraries and loading
ย 
Build process ppt.pptx
Build process ppt.pptxBuild process ppt.pptx
Build process ppt.pptx
ย 
Consuming and Creating Libraries in C++
Consuming and Creating Libraries in C++Consuming and Creating Libraries in C++
Consuming and Creating Libraries in C++
ย 
linker & loader presentation in Compiler Design
linker & loader presentation in Compiler Designlinker & loader presentation in Compiler Design
linker & loader presentation in Compiler Design
ย 
How to write shared libraries!
How to write shared libraries!How to write shared libraries!
How to write shared libraries!
ย 
CS8251_QB_answers.pdf
CS8251_QB_answers.pdfCS8251_QB_answers.pdf
CS8251_QB_answers.pdf
ย 
Dot net interview questions and asnwers
Dot net interview questions and asnwersDot net interview questions and asnwers
Dot net interview questions and asnwers
ย 
Lightning web components
Lightning web components Lightning web components
Lightning web components
ย 
Docker Announces Open Source Compose for AWS ECS & Microsoft ACI
Docker Announces Open Source Compose for AWS ECS & Microsoft ACIDocker Announces Open Source Compose for AWS ECS & Microsoft ACI
Docker Announces Open Source Compose for AWS ECS & Microsoft ACI
ย 
Building Killer RESTful APIs with NodeJs
Building Killer RESTful APIs with NodeJsBuilding Killer RESTful APIs with NodeJs
Building Killer RESTful APIs with NodeJs
ย 

Recently uploaded

Enjoy NightโšกCall Girls Dlf City Phase 3 Gurgaon >เผ’8448380779 Escort Service
Enjoy NightโšกCall Girls Dlf City Phase 3 Gurgaon >เผ’8448380779 Escort ServiceEnjoy NightโšกCall Girls Dlf City Phase 3 Gurgaon >เผ’8448380779 Escort Service
Enjoy NightโšกCall Girls Dlf City Phase 3 Gurgaon >เผ’8448380779 Escort ServiceDelhi Call girls
ย 
โ‚น5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] ๐Ÿ”|97111...
โ‚น5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] ๐Ÿ”|97111...โ‚น5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] ๐Ÿ”|97111...
โ‚น5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] ๐Ÿ”|97111...Diya Sharma
ย 
Dubai Call Girls Milky O525547819 Call Girls Dubai Soft Dating
Dubai Call Girls Milky O525547819 Call Girls Dubai Soft DatingDubai Call Girls Milky O525547819 Call Girls Dubai Soft Dating
Dubai Call Girls Milky O525547819 Call Girls Dubai Soft Datingkojalkojal131
ย 
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...Escorts Call Girls
ย 
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...SUHANI PANDEY
ย 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableSeo
ย 
( Pune ) VIP Baner Call Girls ๐ŸŽ—๏ธ 9352988975 Sizzling | Escorts | Girls Are Re...
( Pune ) VIP Baner Call Girls ๐ŸŽ—๏ธ 9352988975 Sizzling | Escorts | Girls Are Re...( Pune ) VIP Baner Call Girls ๐ŸŽ—๏ธ 9352988975 Sizzling | Escorts | Girls Are Re...
( Pune ) VIP Baner Call Girls ๐ŸŽ—๏ธ 9352988975 Sizzling | Escorts | Girls Are Re...nilamkumrai
ย 
Enjoy NightโšกCall Girls Samalka Delhi >เผ’8448380779 Escort Service
Enjoy NightโšกCall Girls Samalka Delhi >เผ’8448380779 Escort ServiceEnjoy NightโšกCall Girls Samalka Delhi >เผ’8448380779 Escort Service
Enjoy NightโšกCall Girls Samalka Delhi >เผ’8448380779 Escort ServiceDelhi Call girls
ย 
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
ย 
VVIP Pune Call Girls Mohammadwadi WhatSapp Number 8005736733 With Elite Staff...
VVIP Pune Call Girls Mohammadwadi WhatSapp Number 8005736733 With Elite Staff...VVIP Pune Call Girls Mohammadwadi WhatSapp Number 8005736733 With Elite Staff...
VVIP Pune Call Girls Mohammadwadi WhatSapp Number 8005736733 With Elite Staff...SUHANI PANDEY
ย 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtrahman018755
ย 
VVVIP Call Girls In Connaught Place โžก๏ธ Delhi โžก๏ธ 9999965857 ๐Ÿš€ No Advance 24HRS...
VVVIP Call Girls In Connaught Place โžก๏ธ Delhi โžก๏ธ 9999965857 ๐Ÿš€ No Advance 24HRS...VVVIP Call Girls In Connaught Place โžก๏ธ Delhi โžก๏ธ 9999965857 ๐Ÿš€ No Advance 24HRS...
VVVIP Call Girls In Connaught Place โžก๏ธ Delhi โžก๏ธ 9999965857 ๐Ÿš€ No Advance 24HRS...Call Girls In Delhi Whatsup 9873940964 Enjoy Unlimited Pleasure
ย 
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...SUHANI PANDEY
ย 
Call Now โ˜Ž 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now โ˜Ž 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.Call Now โ˜Ž 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now โ˜Ž 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.soniya singh
ย 
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...SUHANI PANDEY
ย 
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...tanu pandey
ย 
Call Girls in Prashant Vihar, Delhi ๐Ÿ’ฏ Call Us ๐Ÿ”9953056974 ๐Ÿ” Escort Service
Call Girls in Prashant Vihar, Delhi ๐Ÿ’ฏ Call Us ๐Ÿ”9953056974 ๐Ÿ” Escort ServiceCall Girls in Prashant Vihar, Delhi ๐Ÿ’ฏ Call Us ๐Ÿ”9953056974 ๐Ÿ” Escort Service
Call Girls in Prashant Vihar, Delhi ๐Ÿ’ฏ Call Us ๐Ÿ”9953056974 ๐Ÿ” Escort Service9953056974 Low Rate Call Girls In Saket, Delhi NCR
ย 
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...SUHANI PANDEY
ย 

Recently uploaded (20)

Enjoy NightโšกCall Girls Dlf City Phase 3 Gurgaon >เผ’8448380779 Escort Service
Enjoy NightโšกCall Girls Dlf City Phase 3 Gurgaon >เผ’8448380779 Escort ServiceEnjoy NightโšกCall Girls Dlf City Phase 3 Gurgaon >เผ’8448380779 Escort Service
Enjoy NightโšกCall Girls Dlf City Phase 3 Gurgaon >เผ’8448380779 Escort Service
ย 
โ‚น5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] ๐Ÿ”|97111...
โ‚น5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] ๐Ÿ”|97111...โ‚น5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] ๐Ÿ”|97111...
โ‚น5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] ๐Ÿ”|97111...
ย 
Dubai Call Girls Milky O525547819 Call Girls Dubai Soft Dating
Dubai Call Girls Milky O525547819 Call Girls Dubai Soft DatingDubai Call Girls Milky O525547819 Call Girls Dubai Soft Dating
Dubai Call Girls Milky O525547819 Call Girls Dubai Soft Dating
ย 
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
ย 
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
ย 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
ย 
( Pune ) VIP Baner Call Girls ๐ŸŽ—๏ธ 9352988975 Sizzling | Escorts | Girls Are Re...
( Pune ) VIP Baner Call Girls ๐ŸŽ—๏ธ 9352988975 Sizzling | Escorts | Girls Are Re...( Pune ) VIP Baner Call Girls ๐ŸŽ—๏ธ 9352988975 Sizzling | Escorts | Girls Are Re...
( Pune ) VIP Baner Call Girls ๐ŸŽ—๏ธ 9352988975 Sizzling | Escorts | Girls Are Re...
ย 
Enjoy NightโšกCall Girls Samalka Delhi >เผ’8448380779 Escort Service
Enjoy NightโšกCall Girls Samalka Delhi >เผ’8448380779 Escort ServiceEnjoy NightโšกCall Girls Samalka Delhi >เผ’8448380779 Escort Service
Enjoy NightโšกCall Girls Samalka Delhi >เผ’8448380779 Escort Service
ย 
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Himatnagar 7001035870 Whatsapp Number, 24/07 Booking
ย 
VVIP Pune Call Girls Mohammadwadi WhatSapp Number 8005736733 With Elite Staff...
VVIP Pune Call Girls Mohammadwadi WhatSapp Number 8005736733 With Elite Staff...VVIP Pune Call Girls Mohammadwadi WhatSapp Number 8005736733 With Elite Staff...
VVIP Pune Call Girls Mohammadwadi WhatSapp Number 8005736733 With Elite Staff...
ย 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirt
ย 
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
Russian Call Girls in %(+971524965298  )#  Call Girls in DubaiRussian Call Girls in %(+971524965298  )#  Call Girls in Dubai
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
ย 
VVVIP Call Girls In Connaught Place โžก๏ธ Delhi โžก๏ธ 9999965857 ๐Ÿš€ No Advance 24HRS...
VVVIP Call Girls In Connaught Place โžก๏ธ Delhi โžก๏ธ 9999965857 ๐Ÿš€ No Advance 24HRS...VVVIP Call Girls In Connaught Place โžก๏ธ Delhi โžก๏ธ 9999965857 ๐Ÿš€ No Advance 24HRS...
VVVIP Call Girls In Connaught Place โžก๏ธ Delhi โžก๏ธ 9999965857 ๐Ÿš€ No Advance 24HRS...
ย 
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
ย 
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
ย 
Call Now โ˜Ž 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now โ˜Ž 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.Call Now โ˜Ž 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now โ˜Ž 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
ย 
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
ย 
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...
ย 
Call Girls in Prashant Vihar, Delhi ๐Ÿ’ฏ Call Us ๐Ÿ”9953056974 ๐Ÿ” Escort Service
Call Girls in Prashant Vihar, Delhi ๐Ÿ’ฏ Call Us ๐Ÿ”9953056974 ๐Ÿ” Escort ServiceCall Girls in Prashant Vihar, Delhi ๐Ÿ’ฏ Call Us ๐Ÿ”9953056974 ๐Ÿ” Escort Service
Call Girls in Prashant Vihar, Delhi ๐Ÿ’ฏ Call Us ๐Ÿ”9953056974 ๐Ÿ” Escort Service
ย 
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
ย 

Linkers in compiler

  • 2. ๏‚ž Linking ๏‚ž Linker ๏‚ž Historical Perspective ๏‚ž Linker vs Loader ๏‚ž Linking Process ๏‚ก Two pass Linking ๏‚ž Object Code Libraries ๏‚ž Relocation and Code modification ๏‚ž Linking an Example 09-06-2015 2
  • 4. ๏‚ž When developing large programs, different people working at the same time can develop separate modules of functionality. These modules can then be "linkedรข๏ฟฝ๏ฟฝ to form a single module that can be loaded and executed. The modularity of programs, that the linking step in assembly language makes possible, provides the same convenience as it does in higher- level languages; namely abstraction and separation of concerns. Once the functionality of a module has been verified for correctness, it can be re-used in any number of other modules. The programmer can focus on other parts of the program. This is the so-called "modular" approach, or the "top-down" approach 09-06-2015 4
  • 5. ๏‚ž Also called link editor and binder, a linker is a program that combines object modules to form an executable program. Many programming languages allow you to write different pieces of code, called modules, separately. This simplifies the programming task because you can break a large program into small, more manageable pieces. Eventually, though, you need to put all the modules together. This is the job of the linker 09-06-2015 5
  • 7. Definition: Linking is a process of binding an external reference to the correct link time address 09-06-2015 7
  • 8. ๏‚ž A System Software that Combines two or more separate object programs and supplies the information needed to allow references between them 09-06-2015 8
  • 9. ๏‚ž Compiler :it is a system software which correct the error of programs,object file ,messages etc ๏‚ž Linker:it is a system software which combines One or more objectfiles and possible some library code into either some exicutable some library or a list of error 09-06-2015 9
  • 10. ๏‚ž At the time of Programs became larger than available memory ๏‚ก Overlays, A technique that let programmers arrange for different parts of a program to share the same memory, with each overlay loaded on demand when another part of the program called into it. ๏‚ก Popular in 1960 but faded after the advent of Virtual Memory on PCs at 1990s 09-06-2015 10
  • 11. ๏‚ž Two Types ๏‚ก Dynamic Linking ๏‚ก Static Linking ๏‚ž Static Linking: ๏‚ž Static linking is the result of the linker copying all library routines used in the program into the executable image. This may require more disk space and memory than dynamic linking, but is more portable, since it does not require the presence of the library on the system where it is run. 09-06-2015 11
  • 12. ๏‚ž Dynamic Linking: ๏‚ก Programs can bind to libraries as the programs are running, loading libraries in the middle of program execution. ๏‚ก This provides a powerful and high-performance way to extend the function of programs ๏‚ก MS Windows extensively uses DLL (Dynamic Linked Libraries) 09-06-2015 12
  • 13. ๏‚ž Linker is a program that takes one or more objects generated by a compiler and combines them into a single executable program. ๏‚ž Loader is the part of an operating system that is responsible for loading programs from executables (i.e., executable files) into memory, preparing them for execution and then executing them.
  • 14. ๏‚ž Linkers are the system softwares that are used to link the functions,resources to their respective references. EX- source code(.c) is compiled and converted into object code(.obj) in C. After this Linker comes into the act, linker resolve all the references in .obj file via linking them to their respectives codes and resources.In short linker performs the final step to convert .obj into executable or machine readable file(.exe).
  • 15. ๏‚ž eg: #include<stdio.h> int main() { printf("ashwin"); return 0; } here,compiler first searches the declaration for "printf()" function,finds it in "#include<stdio.h>" and creates a (.obj) file successfully.
  • 16. ๏‚ž A symbol table is created in (.obj) file which contains all the references to be resolved,linkers resolves them by providing respective code or resource, here code referred by "printf" also gets executed after successful creation of( .exe) file by linker.
  • 17. ๏‚ž LOADERS: Loaders are the programs that are used to load the resources like files from secondary or main memory,i.e. Loader loads the referred resource or file after being Linked to referrer via a Linker during the execution of program.
  • 18. ๏ƒ˜ Object code library: set of object files. โ€ข Object File:- ๏ƒ˜ header information (size, creation date, ...) ,object code ๏ƒ˜ relocation information (list of places to relocate) ๏ƒ˜ symbols: global symbols defined and symbols imported. ๏ƒ˜ debugging information (source file, line numbers, local symbols, data structures) ๏ƒ˜ A library is little more than a set of object code files. 09-06-2015 18
  • 19. ๏ƒผ All linkers support object code libraries in one form or another, with most also providing support for various kinds of shared libraries. ๏ƒผ After the linker processes all of the regular input files, if any imported names remain undefined ๏ƒ˜ it runs through the library/libraries ๏ƒ˜ links in any of the files in the library that export one or more undefined names. 09-06-2015 19
  • 21. ๏ƒ˜ Shared libraries complicate this task a little by moving some of the work from link time to load time. ๏ƒ˜ The linker identifies the shared libraries that resolve the undefined names in a linker run, but rather than linking anything into the program, the linker notes in the output file the names of the libraries in which the symbols were found, so that the shared library can be bound in when the program is loaded. 09-06-2015 21
  • 22. ๏ƒ˜ The linker relocates these sections by ๏ƒ˜ associating a memory location with each symbol definition ๏ƒ˜ modifying all of the references to those symbols so that they point to this memory location. ๏ƒผ Relocation might happen more than once ๏ƒ˜ linking several object files into a library ๏ƒ˜ loading the library 09-06-2015 22
  • 23. ๏ƒ˜ The heart of a linker or loaderโ€™s actions is relocation and code modification. ๏ƒ˜ When a compiler or assembler generates an object file, it generates the code using the unrelocated addresses of code and data defined within the file, and usually zeros for code and data defined elsewhere. ๏ƒ˜ As part of the linking process, the linker modifies the object code to reflect the actual addresses assigned. 09-06-2015 23
  • 24. ๏ƒ˜ Code that moves the contents of variable a to variable b using the eax register. mov a,%eax mov %eax,b ๏ƒ˜ If a is defined in the same file at location 1234 hex and b is imported from somewhere else, the generated object code will be: A1 34 12 00 00 mov a,%eax A3 00 00 00 00 mov %eax,b 09-06-2015 24
  • 25. ๏‚ž The linker links this code so that the section in which a is located is relocated by hex 10000 bytes, and b turns out to be at hex 9A12. ๏‚ž The linker modifies the code to be: Relocated code A1 34 12 01 00 mov a,%eax A3 12 9A 00 00 mov %eax,b ๏‚ž That is, it adds 10000 to the address in the first instruction so now it refers to aโ€™s relocated address which is 11234, and it patches in the address for b. These adjustments affect instructions, but any pointers in the data part of an object file have to be adjusted as well. 09-06-2015 25
  • 26. ๏‚ž Linker modifies code to reflect assigned addresses depends on hardware architecture ๏‚ž On older computers with small address spaces and direct addressing there are only one or two address formats that a linker has to handle. ๏‚ž Modern computers(RISC) require considerably more complex code modification because it constructs addresses by several instructions. ๏‚ž No single instruction contains enough bits to hold a direct address, so the compiler and linker have to use complicated addressing tricks to handle data at arbitrary addresses. 09-06-2015 26
  • 27. ๏‚ž In some cases, itโ€™s possible to calculate an address using two or three instructions, each of which contains part of the address, and use bit manipulation to combine the parts into a full address. ๏‚ž In this case, the linker has to be prepared to modify each of the instructions, inserting some of the bits of the address into each instruction. ๏‚ž In other cases, all of the addresses used by a routine or group of routines are placed in an array used as an โ€˜โ€˜address poolโ€™โ€™, initialization code sets one of the machine registers to point to that array, and code loads pointers out of the address pool as needed using that register as a base register. 09-06-2015 27
  • 28. ๏‚ž The linker may have to create the array from all of the addresses used in a program, then modify instructions that so that they refer to the respective address pool entry. ๏‚ž Code might be required to be position independent (PIC) ๏‚ก works regardless where library is loaded ๏‚ก same library used at different addresses by processes ๏‚ž Linkers generally have to provide extra tricks to support that, separating out the parts of the program that canโ€™t be made position independent, and arranging for the two parts to communicate. 09-06-2015 28
  • 29. ๏‚ž Every linker has some sort of command language to control the linking process. ๏‚ž The linker needs the list of object files and libraries to link. ๏‚ž In linkers that support multiple code and data segments, a linker command language can specify the order in which segments are to be linked. 09-06-2015 29
  • 30. ๏‚ž There are common techniques to pass commands to a linker, Command Line: ๏‚ž It is used to direct the linker to read commands from a file. Embedded in object files: ๏‚ž Linker commands to be embedded inside object files. ๏‚ž This permits a compiler to pass any options needed to link an object file in the file itself. 09-06-2015 30
  • 31. Separate configuration language: ๏‚ž The linkers have a full fledged configuration language to control linking. ๏‚ž The GNU linker, which can handle an enormous range of object file formats, machine architectures, and address space conventions 09-06-2015 31
  • 32. ๏‚ž A pair of C language source files, m.c with a main program that calls a routine named a, and a.c that contains the routine with a call to the library routines strlen and printf. ๏‚ž When the source file compiles at the time the object file create. ๏‚ž Each object file contain atleast one symbol table. 09-06-2015 32
  • 33. Linker (ld) Compiler m.c m.o Compiler a.c a.o p Separately compiled relocatable object files Executable object file (contains code and data for all functions defined in m.c and a.c) 09-06-2015 33
  • 34. Source file m.c Source file a.c extern void a(char *); int main(int ac, char **av) { static char string[] = "Hello, world!n"; a(string); } #include <stdio.h> #include <string.h> void a(char *s) { printf(โ€œ%dโ€,strlen(s)); } 09-06-2015 34
  • 35. Idx Name Size VMA LMA File off Algn 0 . text 00000010 00000000 00000000 00000020 2**3 1 . data 00000010 00000010 00000010 00000030 2**3 ๏‚ž 00000000 <_main>: ๏‚ž 0: 55 pushl %ebp ๏‚ž 1: 89 e5 movl %esp,%ebp ๏‚ž 3: 68 10 00 00 00 pushl $0x10 ๏‚ž 4: 32 .data ๏‚ž 8: e8 f3 ff ff ff call 0 ๏‚ž 9: DISP32 _a ๏‚ž d: c9 leave ๏‚ž e: c3 ret ๏‚ž ... 09-06-2015 35
  • 36. ๏‚ž In that object file "text" segment containing the read only program code, and "data" segment containing the string. There are two relocation entries, ๏‚ž That marks the pushl instruction that puts the address of the string on the stack in preparation for the call to a. ๏‚ž one that marks the call instruction that transfers control to a. 09-06-2015 36
  • 37. ๏‚ž The symbol table exports the definition of _main, imports _a. ๏‚ž The object file of the subprogram a.c also contain data and text segments. Two relocation entries, ๏‚ž mark the calls to strlen and printf, and the symbol table exports _a and imports _strlen and _printf. 09-06-2015 37
  • 38. 09-06-2015 38 int e=7; int main() { int r = a(); exit(0); } m.c a.c extern int e; int *ep=&e; int x=15; int y; int a() { return *ep+x+y; }
  • 39. 09-06-2015 39 main() m.o int *ep = &e a() a.o int e = 7 headers main() a() 0system code int *ep = &e int e = 7 system data more system code int x = 15 int y system data int x = 15 Relocatable Object Files Executable Object File .text .text .data .text .data .text .data .bss .symtab .debug .data uninitialized data .bss system code