생성 파일     file format
Application          실행 파일        ELF                     
Device Driver       목적 파일        ELF          


                  Application                                      Device Driver
생성 파일      실행 파일                                     목적 파일
file format            ELF                                               ELF
                 독립적인 프로그램                        Kernel의 일부분(재연결)   
                0~3GB 고정적인 주소                   Kernel에 의존적
                (Symbol이 고정)                         (Symbol의 주소가 결정되어 있지 않음)


Boot loader   ---> binary
Kernel ---> zImage(binary)
D/D ---> 목적 파일(ELF)
Application ---> 실행 파일(ELF)

ELF는 header + binary 로 존재. 여기서 말하는 binary는 cpu dependent한 부분만 있음. 즉 loader가 없다. 즉 boot loader와 kernel의 경우 따로 loader가 있어야 한다. header를 loader가 사용한다. header에 Symbol에 대한 정보가 있음.

Symbol 이란 함수명과 전역 변수(유저 관점)를 일컽는다. 주소로 mapping(CPU 관점) 된다.
   

file system에서 source 파일이 compile 되어 실행 파일로 바뀐다.
Memory 상에서 각 함수명과 전역 변수들이 어디에 들어 갈지 Memory의 적절한 위치에 적재 된다. 이 정보는 Symbol이 들어 있는 header로 부터 얻어 낸다.
실행은 CPU에서 SP가 Stack을 가리키고 PC가 적절한 위치를 가리키는 경우 CPU가 그 명령을 수행한다.

ELF 포맷을 좀 더 자세하게 공부하는게 도움이 된다.(목적 파일과 실행 파일의 차이)

리눅스에서 모든 커널의 리소스는 파일로 생각한다. 즉 일반적인 Application에서 D/D를 사용하기 위해서는 그 D/D와 관련된 장치 파일을 만들어서 그 파일을 통해서 D/D를 사용한다.
모든 장치 파일은 /dev/ 밑에 항상 있다.

Linux상에서 디바이스와 관련된 자료구조는 Kernel의 task_struct 이다.


크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기
받은 트랙백이 없고, 댓글이 없습니다.

댓글+트랙백 RSS :: http://www.cipher.pe.kr/tt/cipher/rss/response/11

댓글+트랙백 ATOM :: http://www.cipher.pe.kr/tt/cipher/atom/response/11

트랙백 주소 :: http://www.cipher.pe.kr/tt/cipher/trackback/11

트랙백 RSS :: http://www.cipher.pe.kr/tt/cipher/rss/trackback/11

트랙백 ATOM :: http://www.cipher.pe.kr/tt/cipher/atom/trackback/11

댓글을 달아 주세요

댓글 RSS 주소 : http://www.cipher.pe.kr/tt/cipher/rss/comment/11
댓글 ATOM 주소 : http://www.cipher.pe.kr/tt/cipher/atom/comment/11
[로그인][오픈아이디란?]