2005년 5월 10일 화요일

Linker와 Loader

http://wiki.kldp.org/wiki.php/DocbookSgml/LinkerLoader-TRANS
http://www.linuxjournal.com/article.php?sid=6463
http://www.iecc.com/linker/

Preprocessor(전처리기) : 매크로를 적용
Compile : 코드를 Assembly Code로 번역
Assembler : Assembly code로 object file 생성
Linker : Object file을 모아 Binary로 만듬
         Symbol Resolution(심볼해석), Relocation
Loader : Binary를 Memory에 올리고 수행함, Relocation

Loading 시점
Compile time : Compiler가 결정
Load time : Loader가 결정
Run time : Application이 부름

Object File
Relocatable Object File
Executable Object File
Shared Object File

cpp : The C Preprocessor
gcc : GNU Compile
as : GNU Assembler
ld : GNU Linker

ar : create, modify, and extract from archives, 정적 라이브러리를 만듬
objdump : display information from object files
strings : print  the  strings of printable characters in file
nm : list symbols from object files
ldd : 공유 라이브러리의 의존성을 출력한다.
strip : Discard symbols from object files


$ ldd /bin/ls
        libtermcap.so.2 => /lib/libtermcap.so.2 (0x4001e000)
        libc.so.6 => /lib/libc.so.6 (0x40022000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
$ objdump -d /bin/ls
$ strings /bin/ls

댓글 없음:

댓글 쓰기