티스토리 뷰

반응형

※ 본 포스팅은 개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있음을 밝힙니다.


예전에 이것과 관련된 내용을 IT 포럼에서 발표하기 위해 만들어 놓은 prezi가 있다.

함께 참고하면 좋을 듯.

http://prezi.com/obkhqdxaz3zx/programming-compile-loading-for-korean/


우선 개발자가 c언어로 코딩을 한다는 가정하에 이때 개발자는 *.c 혹은 *.cpp이 될 수도 있는 파일을 작성(Cording)하게 된다. 그리고 소스파일을 빌드(Build)하게 되는데 이때 고급언어인 C언어를 보다 낮은 언어인 어셈블리어로 변환하며 그 후에 다시 어셈블리어를 기계어로 바꿔주는 역할을 컴파일러(Compiler)가 수행한다. 대부분 흔히 고급언어에서 기계어로 변환하는 것을 컴파일(Compile) 이라고 칭한다. 이 과정에서 오브젝트 파일(*.obj) 파일을 생성하게 된다. 그 후 생성된 오브젝트 파일과 사용된 함수가 포함된 함수 라이브러리를 묶어주는 작업을 실행하는데 이 과정을 링킹(Linking)이라 하며 링커(Linker)가 담당한다. 링킹의 결과로써 실행 파일(흔히 *.exe 혹은 *.com)이 만들어지게 되는데 이 파일을 로더(Loader)가 메모리에 올려야(Load) 비로서 프로그램이 실행이 된다. 우리는 그냥 Ctrl+F7, Ctrl+F5를 눌렀지만 컴퓨터 내부에서는 이런 치열한 일들이 벌어지고 있었던 것이다.

반응형
프로필사진

Yowu (Yu Yongwoo)

흔한 Node.js/Java 백엔드 개발자입니다
Ubuntu와 MacOS 데스크탑 개발 환경을 선호합니다
최근에는 vscode와 IntelliJ를 사용하고 있습니다
vscode에는 neovim, IntelliJ는 ideaVim
개발용 키보드는 역시 HHKB Pro 2 무각입니다
락 밴드에서 드럼을 쳤습니다

최근에 올라온 글
최근에 달린 댓글
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함
Total
Today
Yesterday