우리가 터미널에서 프로그램을 실행하거나 버튼을 클릭해 애플리케이션을 실행할 때, 단순히 “프로그램이 켜졌다”라고 생각하기 쉽습니다.하지만 그 이면에서는 운영체제가 프로그램을 메모리에 올리고, 실행 단위를 생성하며, CPU가 작업을 처리할 수 있도록 여러 과정을 거치게 됩니다. 이때 중요한 개념이 바로 프로세스입니다.리눅스에서는 이 프로세스가 fork와 exec이라는 과정을 통해 생성되고 실행됩니다. 이번 글에서는 프로그램이 실행될 때 내부에서 어떤 일이 일어나는지 흐름 중심으로 살펴보겠습니다. 프로그램프로그램은 프로세스를 실행하는 데 사용하는 설계도라고 생각하면 됩니다.기본적으로 프로그래밍 언어로 작성된 명령어의 집합이며, 이 명령어는 CPU가 실행할 수 있도록 기계어로 변환됩니다. 하지만 프로그..