
들어가며리눅스에서 프로그램을 실행한다는 것은 단순히 저장장치에 있는 바이너리 파일을 읽어 들이는 것만을 의미하지 않습니다. 커널은 ELF 포맷의 실행 파일을 해석해, 필요한 부분만 골라 메모리에 올리고, 프로그램이 안전하게 돌아갈 수 있도록 다양한 초기화 작업을 수행하죠. 이번 글에서는 “실행 가능(executable) 상태”가 되기 위해 반드시 충족해야 하는 세 가지 핵심 조건을 짚어 보고, 링킹과 실행의 전체 흐름을 함께 살펴보겠습니다.링킹과 실행: 전체 흐름 요약아래 흐름도는 소스코드 작성 → 컴파일·어셈블 → 링킹 → ELF 파일 구조 정리 → 실행 시 로딩의 전 과정을 한눈에 보여줍니다.1. 소스코드 작성 (e.g. main.c, sum.c) • C 언어로 프로그램을 작성 • 고급 언어 ..