생성 파일 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 이다.
받은 트랙백이 없고,
댓글이 없습니다.


글
댓글을 달아 주세요
댓글 RSS 주소 : http://www.cipher.pe.kr/tt/cipher/rss/comment/11댓글 ATOM 주소 : http://www.cipher.pe.kr/tt/cipher/atom/comment/11