크기 고정
text 섹션: 실행 코드
data: 전역변수
동적으로 크기 변경
heap: 프로그램 실행중 동적으로 할당되는 메모리
stack: 함수를 호출할 때 임시 데이터 저장 장소(함수 매개변수, 복귀 주소 및 지역 변수)
어떤 함수는 여러 프로그램에서 쓸 만큼 유용한 경우가 존재한다.
이런 함수를 프로그램 만들 때마다 매번 새로 작성하기 보다는 관련 함수를 한데 모아서
라이브러리로 만들면 프로그램 작성시 편하다.
또한 프로그램을 전부 한 파일에 저장하기 보다는 여러 파일로 나누는 것이
동시개발을 가능하게 해줘 편하다.
링커: 여러 조각으로 나눠진 프로그램 조각들을 하나로 엮는 프로그램.
정적 링크: 라이브러리를 파일로 간주하여 프로그램에서 함수를 사용할때마다
각자 직접 연결해 실행파일을 만드는 링크방식.
이러한 정적링크 방식은 같은 라이브러리 코드가 여러 실행 파일(프로그램)에 반복적으로
들어가서 귀중한 메모리를 낭비한다는 단점이 존재한다.
동적 링크: 공유 라이브러리를 사용하는 링크방식으로 MMU(메모리 관리 장치)가
여러 프로그램이 같은 라이브러리를 공유할 수 있도록 한다.