메뉴얼을 보니 ELF가 원래 UNIX에서 사용하기 위해 개발된걸로 알고 있는데 리눅스 실행파일 구조가 ELF를 따르잖아요... UNIX에서도 실행파일 구조가 ELF형식인지 궁금합니다.
다른 메뉴얼을 보니 COFF라고도 하는데... 어떤게 확실한지 모르겠네요... 두 메뉴얼 말대로라면 COFF와 ELF 둘다 UNIX의 실행파일 구존데... 한 OS에서 2개의 구조를 가진다는 말인가요?
다른 UNIX들도 최근들어 ELF를 지원합니다. 모두 지원하는 것은아닙니다.
대표적으로 Solaris는 elf를 지원하지요.
execve 시스템콜에서 여러개의 실행 오브젝트 포맷을 지원합니다.
http://www.iglu.org.il/lxr/source/include/linux/personality.h
이 내용이 참고가 되었으면 합니다.
---http://coolengineer.com
초기 UNIX에서는 고전적인 a.out 방식의 실행파일 방식이 사용되었습니다.
후에 COFF(Common Object File Format) 방식이 도입되어 쓰이기 시작했는데, 그리 오래 사용되지는 못하고 현재 주류로 사용되는 ELF(Executable and Linkable Format)로 대체되었습니다.
현재 LINUX에서 주로 쓰이는 실행파일 형식 역시 ELF입니다. (물론 커널 컴파일시 a.out과 COFF에 대해 지원할 것인지 결정할 수 있으며 지원하도록 컴파일하면 각 형식의 실행파일도 실행 가능합니다)
하지만 아직 특정 아키텍처에서는 고적적인 a.out 방식이나 COFF를 사용하는 경우가 종종 있습니다. 그 아키텍처에서 사용하는 gcc가 coff 만을 생성한다던지.. 하는 이유에서이죠.
ps. 참고로 각 파일이 어떤 파일인지 알기 위해서는 file 이라는 명령을 사용하면 편리합니다.
My Passion for the Vision!
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
다른 UNIX들도 최근들어 ELF를 지원합니다. 모두 지원하는 것은아닙니
다른 UNIX들도 최근들어 ELF를 지원합니다. 모두 지원하는 것은아닙니다.
대표적으로 Solaris는 elf를 지원하지요.
execve 시스템콜에서 여러개의 실행 오브젝트 포맷을 지원합니다.
http://www.iglu.org.il/lxr/source/include/linux/personality.h
이 내용이 참고가 되었으면 합니다.
---
http://coolengineer.com
초기 UNIX에서는 고전적인 a.out 방식의 실행파일 방식이 사용되었습
초기 UNIX에서는 고전적인 a.out 방식의 실행파일 방식이 사용되었습니다.
후에 COFF(Common Object File Format) 방식이 도입되어 쓰이기 시작했는데, 그리 오래 사용되지는 못하고 현재 주류로 사용되는 ELF(Executable and Linkable Format)로 대체되었습니다.
현재 LINUX에서 주로 쓰이는 실행파일 형식 역시 ELF입니다. (물론 커널 컴파일시 a.out과 COFF에 대해 지원할 것인지 결정할 수 있으며 지원하도록 컴파일하면 각 형식의 실행파일도 실행 가능합니다)
하지만 아직 특정 아키텍처에서는 고적적인 a.out 방식이나 COFF를 사용하는 경우가 종종 있습니다. 그 아키텍처에서 사용하는 gcc가 coff 만을 생성한다던지.. 하는 이유에서이죠.
ps. 참고로 각 파일이 어떤 파일인지 알기 위해서는 file 이라는 명령을 사용하면 편리합니다.
My Passion for the Vision!
댓글 달기