실행파일 제작 과정..?;;;
글쓴이: jenix / 작성시간: 목, 2004/12/30 - 10:00오전
안녕하세요.
이전 부터 궁금하던 점인데요,
리눅스용 실행파일들이나 윈도우용 실행파일들
생성원리(?) 혹은 동작원리(?) 가 궁금해서 그러는데,
어떤 서적들을 참고하면 될까요?
컴파일러 소스를 헤집는건 쥐 잡으려고 집에 불사르는거 같구요 ^^;
간단한 인터프리터를 만들었는데, 이걸 실행파일로 만들어 보고 싶어서요 :oops:
컴퓨터 오거니제이션 & 디자인 책은 대략(?) 봐서..
C 코드 -> 어셈변환 -> 심볼테이블 만들고 -> 이진으로 변환
이정도 과정은 이해하고 있거든요..
조언 부탁드립니다 :oops:
Forums:
간단한 인터프리터를 만드는데 실행파일을 못만들다니..ㅡ,.ㅡ;;실행파
간단한 인터프리터를 만드는데 실행파일을 못만들다니..ㅡ,.ㅡ;;
실행파일은 MS윈도우에서는 확장자에 따르고 유닉스에서는 퍼미션.. 즉, 해당x권한을 따릅니다.
----------------------------------------------------------------------------
[quote="ㅡ,.ㅡ;;"]간단한 인터프리터를 만드는데 실행파일을 못만
jenix님은 실행가능한 머신코드를 이야기하시는것 같은데...
알고서도 농담하시는건지 ^^;
[quote="Bini"]...알고서도 농담하시는건지 ^^;[/q
농담은 아는 사람 사이에 하는 것이라고 보오. :twisted:
ㅡ,.ㅡ;; 님은 그래서 좋소이다.
머신코드를 만드는 작업은 보통 노가다 중에서도 아주 생노가다라고 할 수 있소이다. 해봤냐고 물어보면 해봤다고 할 수 밖에는 없소이다.
....
... 컴파일러등의 제작자는 인터미디어트 코드(Assembly code)까지를 주로 그 목적으로 한다고 생각하오.
제안을 한다면, 타켓 머신용 어셈블리 언어로 변환하는 것 까지를 만드는 것이 유용하리라고 생각하오.
그리고, 해당 시스템에 존재하는 어셈블러를 사용하여 코드를 만드는것이 나을 듯 하외다.
....
질문을 잘못한건지요,.
bini 님 말씀처럼 머쉰코드 생성에 대해 알고 싶어서 질문했습니다.
기존의 어셈블러를 이용한다면,
뭣하러 공부하겠습니까;;;[/b]
---------------------------------------------------------------------------
http://jinhyung.org -- 방문해 보세요!! Jenix 의 블로그입니다! :D
덧붙여..
컴파일러 제작의 목적이라기 보다는
머쉰코드 작동 원리를 파헤쳐보고 싶은 겁니다 :oops:
---------------------------------------------------------------------------
http://jinhyung.org -- 방문해 보세요!! Jenix 의 블로그입니다! :D
Re: 실행파일 제작 과정..?;;;
우선 OS의 C 라이브러리와 링크를 시켜보세요.
어떤 플랫폼이던지, C library의 구현이 존재하고, 그 플랫폼에 맞는 실행파일을 링커를 통해 링크하는 과정을 통해서 연습하면됩니다. c runtime object인 crt1.o 같은 파일을 링크하면 OS에 서 구동시키는 startup 코드를 탑재하게 됩니다.
---
http://coolengineer.com
뜻이 그러하시다면,컴퓨터 아키텍쳐(모리스 마노의 책으로 공부했었던 기
뜻이 그러하시다면,
컴퓨터 아키텍쳐(모리스 마노의 책으로 공부했었던 기억이... 간단한 컴퓨터를 설계하고, 머신코드를 생성하는 원리가 기술되어 있었습니다. 고급 어쩌구 하는 책들은 머신코드보다는 고수준의 기술에 대한 언급이 많으므로, 선정에 유의하도록 하시길.)
x86 어셈블리언어( 쉽게 접할수 있는 머신이지요. 어드레싱모드 등에 대해 상세히 나오는 책으로 선택하셔야 하고자 하는 바를 성취하는데 보탬이 될듯합니다. 타켓으로 생각하는 컴퓨터의 어셈블리 언어에 능통해야 합니다.)
nasm 오픈 소스 어셈블러입니다. 때로는 코드로 보는게 보탬이 되기도 합니다.
예전에 가장 작은 실행 파일 만들기 에 관련된 문서가 있었는데어디에
예전에 가장 작은 실행 파일 만들기 에 관련된 문서가 있었는데
어디에 있는지 못찾겠네요.
http://wiki.kldp.org/wiki.php/DocbookSgml/LinkerLoader-TRANS
이건 링커 로더에 관한 문서..
그리고 밑에 링크는 제가 예전에 만든 어셈블러입니다
무지 허접한 거니까 분석하기엔 좋지 않을까 하는 생각이 ㅡ.ㅡ;
http://mu.kunsan.ac.kr/zero/download.php?id=V_M&page=1&page_num=12&category=&sn=off&ss=off&sc=off&keyword=&prev_no=&select_arrange=headnum&desc=asc&no=3&filenum=1
-- 아쉬운 하루 되세요 --
댓글 달기